Ja ich habe eine Idee, so wie Oubyi schon geschrieben hat in VBA.

Das Problem ist nur das du diese Variante dann nicht als Googletabelle benutzen kannst, denn bei Google wird die Überwachung beim Hochladen nicht mit übernommen. Nur eine bedignte Formatierung der Spalte V, Datum älter als 2 Tage würde gehen. Google benutzt für seine Tabllen nicht das VBA sondern Javascript und das ist nicht mein Gebiet :))

Hier jetzt aber mal die VBA Lösung und die bedingte Formatierung für Spalte V in Excel:

-----

Unten im Reiter auf Tabellenblatt1 gehen und mit der rechten Maustaste auf Code anzeigen, in das sich öffnende Fenster folgenden Code eintragen:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, tmpRng As Range
Set rng = Intersect(Range("B3:U34"), Target)
If Not rng Is Nothing Then
Application.EnableEvents = False
For Each tmpRng In rng.Areas
For Each rng In tmpRng.Columns(1).Cells
Cells(rng.Row, 22) = Date
Next rng
Next tmpRng
Application.EnableEvents = True
End If
End Sub

Hier wird jetzt das Tabellenblatt bei jeder Änderung im Bereich von B3:U34 in Spalte V das Datum der Änderung eintragen.

Das ganze noch Speichern, weil du wahrscheinlich bis jetzt nur eine xlsx Datei hast wirst du beim speichern eine Meldung erhalten. Die Meldung mit Nein beantworten und deine Datei als xlsm Datei (Excel-Arbeitsmappe mit Makros) speichern.

------

Jetzt die bedingte Formatierung:

Als erstes markierst du deinen Bereich (V3:V34) und gehst dann oben im Reiter auf Start und dann auf bedingte Formatierung. Jetzt auf neue Regel und ganz unten auf "Formel zur Ermittlung...", dort schreibst du folgendes rein:

=V3<HEUTE()-2

Jetzt noch auf Formatieren um das rote Ausfüllen zu wählen.

Das ganze mit OK abschliessen und das Thema sollte erledigt sein.

-------

Ich habe deine Tabelle mal nachgebaut, wie das ganze dann geht kannst du hier ja mal testen:

http://workupload.com/file/wHSuN4e

Und das was du gesucht hast?

...zur Antwort

Hey, nim mal diese Formel dort wo die Zahl dann hin soll:

{=VERWEIS(9^9;--TEIL(A1;MIN(WENN(ISTZAHL(--TEIL(A1;SPALTE(1:1);1));SPALTE(1:1)));SPALTE(1:1)))}

Das ist eine Matrixformel.
Das bedeutet: Die geschweiften Klammern
{} NICHT mit eingeben, sondern die Eingabe der Formel NICHT mit ENTER
abschließen, sondern mit:
STRG & SHIFT & ENTER (alle drei gleichzeitig).
DAS erzeugt die { } und macht die Formel zu einer Matrixformel.

Sollte klappen oder?

...zur Antwort

Bevor du von uns einen passenden Code bekommen könntest der dann auch letztendlich bei dir laufen würde sind aber noch einige Daten wichtig zu Wissen. Ich nenne die beiden Reiter jetzt mal Tabelle1 und Tabelle2.

1. Welchen Bereich willst du in Tabelle1 filtern und nach welchem Kriterium, hast du da einen festen oder soll der variabel sein?

2. Wo willst du die Daten in Tabelle2 einfügen, also wo soll nach der ersten freien Zeile gesucht werden?

3. Sollen eventuell Doppelt vorkommende Einträge nach dem Einfügen in Tabelle2 wieder gelöscht werden?

4. Wie soll das ganze ausgelöst werden: Automatisch nach Änderung in Tabelle1 oder auf ein Klick auf eine Schaltfläche?


Wie du siehst sind noch einige Angaben die für eine für dich einigermaßen hilfreiche Antwort wichtig. Ich glaube nicht das du da später alles von alleine umbauen kannst oder willst.

Wenn du eine Musterdatei für uns hättest wäre das auch sehr einfach für uns. Diese könntest du wenn du eine hast einfach mal hier hochladen und dann den Link hier Posten:

http://workupload.com/

...zur Antwort

Gehe mal oben auf den Reiter Ansicht, dort kannst du links normal einstellen. Dann werden die anderen Seiten auch nicht mehr mit angezeigt.Wahrscheinlich ist es bei dir jetzt was anderes als normal deswegen werden die leeren Seiten mit angezeigt, einfach auf normal und alles andere ist weg.

Hilft dir das weiter?

...zur Antwort

Also wenn du in deinem gesamten Tabellenblatt alle Datümer die 2015 haben in 2016 ersetzen willst kannst du das ganz einfach oben über den Reiter Start machen.

Dort gehst du ganz rechts auf Suchen und auswählen und da dann ersetzen auswählen.

Du kannst auch einfach STRG+F drücken und da oben den Reiter ersetzen anklicken.

Jetzt gibst du bei suchen nach 2015 und bei ersetzen durch 2016 ein, jetzt noch einmal auf Alle ersetzen und alles was 2015 war ist jetzt 2016.

Klappt es?

...zur Antwort

Ich habe jetzt zwar kein Rechner mehr an aber warum zeichnet du die nicht einfach ein Makro mit der Sortierung der Tabelle erst nach Spalte F und dann nach Spalte D auf. Diesen Code kannst du dann gleich an deinen Button zum eintragen in die Tabelle in der Userform mit ausführen lassen. Damit wird die Tabelle beim eintragen gleich sortiert :) Reicht dir das so? Sonst schaue ich morgen früh mal falls du da was anderes brauchst.

...zur Antwort
Wie kann, durch Eingabe eines Namens in einer Excel Zelle, ein gleichnamiger Ordner erstellt werden?

Ich möchte in Excel eine Liste mit Namen erstellen und diese mit gleichnamigen Ordnern verknüpfen. Natürlich kann ich die Namen in Excel eintragen und dann ganz normal Ordner erstellen und sie dann mit einem Hyperlink verknüpfen,, aber das müsste duch eine Funktion doch schneller gehen (weil ich das für über 100 Namen machen will...)

Ich bin schon so weit gekommen, dass ich das über dieses "VBA" mache, indem ich Alt+F11 drücke, dann gebe ich dort diesen Code ein:

Sub Ordner_anlegen () 'prüfen ob ein Ordner vorhanden ist und falls nicht 'fragen ob Ordner erstellt werden soll Dim Ord As String Dim Antwort As Integer

Ord = "F:\Kundenkartei\"

If Dir(Ord, vbDirectory) <> "" Then MsgBox "Ordner ist schon vorhanden" Else Antwort = MsgBox("Der Ordner " & Ord & " ist nicht vorhanden." _ & vbNewLine _ & "soll der Ordner angelegt werden?!", vbYesNo) If Antwort = vbYes Then 'Falls kein LW angegeben ist, erstellt die MkDir-Anweisung 'den neuen Ordner auf dem aktuelle LW. 'LW wurde durch "F:\Kundenkartei\" festgelegt MkDir Ord MsgBox "Ordner " & Ord & "angelegt" Else MsgBox "es wurden keine Änderungen vorgenommen" Exit Sub End If End If End Sub

Wenn ich nach "Ord = "F:\Kundenkartei\" z.B. Mustermann eingebe und dann F5 drücke, wird ein Unterordner auf dem USB Stick mit dem Namen Mustermann erstellt (wenn "Mustermann" noch nicht vorhanden ist), aber wie könnte ich diesen Code abändern, sodass ich beispielsweise nur noch "Mustermann" in die Zelle A25 eintragen muss und dann der gleichnamige Ordner, am Besten noch mit der Zelle A 25 verknüpft, in dem Ordner "Kundenkartei" eangelegt wird? Und wie kann ich das dann auf alle Zeilen in der Spalte A anwenden?

Vielen Dank für eure Antworten!

Ich habe mittlerweile schon hunderte Codes(oder Makros?), die ich in den Foren gefunden habe, ausprobiert, aber irgendwie mache ich etwas falsch und ich bin langsam wirklich am verzweifeln :/

Hoffentlich könnt Ihr mir weiterhelfen :) Danke!!!

...zur Frage

Also nur für Zelle A25 könntest du das auch so machen, da wird bei jeder Änderung in Zelle A25 automatisch das Makro gestartet und der Inhalt aus Zelle A25 als Odrner angelegt:

Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$A$25" Then
Ord = "F:\Kundenkartei\" & Range("A25")
If Dir(Ord, vbDirectory) <> "" Then
MsgBox "Ordner ist schon vorhanden"ElseAntwort = MsgBox("Der Ordner " & Ord & " ist nicht vorhanden." _
& vbNewLine _
& "soll der Ordner angelegt werden?!", vbYesNo)
If Antwort = vbYes Then 'Falls kein LW angegeben ist, erstellt die MkDir-Anweisung 'den neuen Ordner auf dem aktuelle LW. 'LW wurde durch "F:\Kundenkartei\" festgelegt
MkDir Ord
MsgBox "Ordner " & Ord & "angelegt"
Else
MsgBox "es wurden keine Änderungen vorgenommen"
Exit Sub
End If
End If
End If
End Sub
...zur Antwort

Hey, also um in dein Makro die nächste freie Zeile im anderen Tabellenblatt zu suchen, kannst du diesen Code in dein Makro mit einbauen:

Eigentlich müsste in deinem Code jetzt irgendwo folgendes stehen:

Selection.Copy

Sheets("deine Tabelle wo es rein soll").Select

Danach folgen Code einfügen:

leereZeile = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row + 1        
Range("A" & leereZeile & ":A" & leereZeile).Select

Dann sollte bei dir wieder folgendes kommen:

ActiveSheet.Paste

Das ganze bewirkt das in deiner Tabelle wo die Daten rein sollen, in Spalte A die nächste freie Zeile gesucht wird und diese dann makiert wird. Alles andere passiert durch dein Makro.



Zum zweiten Teil deiner Frage:
Du kannst mit einer Wenn Abfrage kein Makro direkt starten, dazu musst du den Umweg über eine Funktion gehen.

Dafür musst du aber erstmal eine Funktion anlegen welche sich wenn die Bedingung erfüllt diese auslöst und dann steht in dieser Funktion dein Makroname.

Also zum Beispiel, wenn in A1 Nein steht soll das Makro mit dem Namen Test ausgeführt werden, dann ist folgendes zu machen.

Gehe mit ALT+F11 in den VBA Modus und lege ein neues Modul an (Falls dein Makro nicht schon in einem Modul liegt), dort kommt erstmal folgender Code rein:

Function makro1_start()
'** Prozedur aufrufen
test
End Function


Sub test()
MsgBox "Makro test wurde gestartet"
End Sub

Um das jetzt zu Prüfen, nehmen wir in irgendeiner Zelle folgende Wenn Formel:

=WENN(A1="Nein";Makro1_start();"nichts")

Wenn alles geht sollte sich wenn in Zelle A1 Nein steht ein Meldungsfenster öffnen welches dir das auch bestätigt.

Das MsgBox "Makro 1 wurde gestartet" musst du dann mit deinem Makrocode ersetzen.

Ich hoffe ich konnte dir damit ein wenig weiter helfen, kommst du damit klar?

Hoffentlich habe ich nichts vergessen :)))

...zur Antwort

Ok ich gehe jetzt mal davon aus das die Felder sich im Bereich A1:B10 befinden. Darauf ist jetzt meine Formel die in die Zelle kommt die das Ergebnis ausgeben soll aufgebaut. Also sagen wir mal in Zelle C1 kommt.

Nein anders, erstmal gehst du mit ALT+F11 in den VBA Editor und legst dort ein Modul an in den du folgenden Code schreibst:

Function Farbsumme(Bereich As Range, Farbe As Integer)
Dim Zelle As Range
Application.Volatile
For Each Zelle In Bereich
If Zelle.Interior.ColorIndex = Farbe Then
Farbsumme = Farbsumme + Zelle
End If
Next
End Function

Das bitte speichern und dann in Zelle C1 folgende Formel:

=farbsumme(A1:B10;3)

Jetzt wird dir in C1 die Summe der Felder angezeigt die rot eingefärbt sind.

Vorraussetzung dafür ist aber das die Zellen nicht durch eine Bedingte Formatierung eingefärbt sind.

...zur Antwort

Mich würde mal Interessieren ob du nur immer neue Tabellen in die Zusammenfassung übernehmen willst oder ob du auch in alten Tabellen Daten änderst und die dann auch neu einspielen willst. Dann woher kommen die Tabellen, legst du die immer selbst an? Wenn ja hätte ich eine Makro Lösung für dich, dafür würde ich mir dann eine Vorlage mit Schaltfläche machen und wenn du die Daten drin hast brauchst du nur einmal auf die Schaltfläche drücken und er überträgt in das Tabellenblatt Zusammenfassung automatisch die Daten aus Spalte A der neuen Tabelle.

Ich habe meine Musterdatei mal hier hochgeladen, eventuell kannst du ja schon was damit anfangen.

http://workupload.com/file/v1mIqjxS

...zur Antwort

Das geht eigentlich ganz einfach :))

Nur wenn du die Daten in einer Zelle hast macht das Gruppieren keinen Sinn.

Also in deiner Beispieldatei gehe mal wie folgt vor:

Markiere mal Spalte A und dann mit Rechtsklick auf Zellen einfügen, jetzt hast du eine neue Spalte A die auch noch markiert ist. Nun oben im Reiter Start bei Ausrichtung auf Zeilenumbruch. Jetzt beginnen deine Daten erst ab Spalte B und du gibst in Zelle A2 folgenden Code ein:

=B2&ZEICHEN(10)&C2&ZEICHEN(10)&D2&ZEICHEN(10)&E2&ZEICHEN(10)&F2&ZEICHEN(10)&G2

Jetzt steht in Zelle A2 nur die erste Zahl drin, also markieren wir die Zelle A2 und kopieren diese mit der Tastenkombination STRG+C. Jetzt markierst du den Bereich A3 bis A821 und fügst mit STRG+V die Formel in alle Zellen der Spalte A ein.

Jetzt steht überall das gleiche drin, also noch einmal auf F9 und oh Wunder die Daten sind jetzt richtig.

Wenn du die anderen Daten nicht mehr brauchst kannst du jetzt die Spalten B bis G ausblenden. Bitte nicht löschen weil sonst alles weg ist :))

Oder du musst nochmal die Spalte A markieren und dann diese Kopieren und als Werte wieder einfügen, dann kannst du auch die Spalten B bis G danach löschen.

Hier ist deine Beispieldatei, wo ich das gemacht habe:

http://workupload.com/file/u2rfMtvG

Kommst du so damit klar?

...zur Antwort

Nicht das ich wüsste, aber da kannst du mit dem Verweis arbeiten. Das sieht dann so aus:

=VERWEIS(2;1/($A$1:$A$100&$B$1:$B$100=F1&G1);$C$1:$C$100)

Erklärung:

Hier befinden sich die Suchfelder in F1 & G1, F1 wird im angegebenen Bereich (A1 - A100) Spalte A und G1 im angegebenen Bereich (B1 - B100) Spalte B gesucht und es wird bei auffinden das Ergebnis aus Spalte C wiedergegeben.

Wenn Spalte A B und C immer gleich nur die Daten enthalten kannst du auch gleich auf die ganzen Spalten gehen. Dann sieht die Formel so aus:

=VERWEIS(2;1/(A:A&B:B=F1&G1);C:C)

Hilft dir das weiter?

Rückmeldung wäre schön :-))

...zur Antwort

OK, gehe mal bitte mit ALT+F11 in das VBA Modul deiner Tabelle und gebe da folgendes ein:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False

If Not Intersect(Target, Range("D14:D27")) Is Nothing Then Target = Target * ActiveSheet.Range("d13")

Application.EnableEvents = True

End Sub

Bitte deine Felder D13 bis D27 als Währung formatieren und wenn du die Zellen (D14-D27) wieder entfernst kommt in diesen felder automatisch eine 0.

Was anderes habe ich gerade nicht, es hoffe es hilft dir weiter.

Rückmeldung wäre schön :-))

...zur Antwort

Jo das geht ganz einfach.

Du musst nur in die letzte Zelle in Spalte A auf Seite 1 einen Punkt machen und dann den gesamten Bereich mit folgendem Makro wieder in die nächste freie Zelle in Spalte A kopieren lassen. Das kannst du so oft machen wie du Seiten brauchst. Wichtig ist nur das du im Code den Bereich (hier A1:H50) anpasst, denn ich weiß ja nicht wieviel Zeilen und Spalten du hast.

Sub unten_eintragen()
Application.ScreenUpdating = False
Dim leereZeile
Range("A1:H50").Copy
leereZeile = Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row + 1
Range("A" & leereZeile & ":A" & leereZeile).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = True
Application.ScreenUpdating = True
MsgBox ("Tabelle wurde erfolgreich unten eingetragen")
End Sub

Achja, ich würde mir am besten eine Schaltfläche anlegen und auf das Makro verweisen.

...zur Antwort

Verstehe ich das jetzt richtig das du irgendwo im Hintergrund eine Auftragsliste hast wo alles schon hinterlegt ist und du nach Eingabe der Auftragsnummer alles in ein zb. Auftragsblatt zurück holst?

Jetzt kommt noch die Frage, wenn die Kunden schon hinterlegt sind, wohin sollen sie jetzt geschrieben werden. Es muss ja schon eine Kundendatei vorliegen, wie willst du sonst die Kundendaten automatisch einfügen lassen.

Kann es sein das du es so vor hast, dass es zwar Aufträge schon gibt, du aber wenn der Auftrag abgeschlossen ist willst das diese Kundendaten mit Auftragsnummer in ein Auftragsbuch übernommen werden wo sich nur abgeschlossene Aufträge befinden.

Ein wenig mehr Infos, oder eventuell Bilder von dem was vorliegt wären sehr hilfreich damit wir dir helfen können.

...zur Antwort

Ich hätte da eventuell eine gute und einfache Lösung für dich.

Das ist ein Code den du direkt im VBA der Tabelle ablegst. Jetzt ist es egal in welcher Zelle du einen Doppelklick machst, er kopiert immer die Zeile ein nach unten in der du einen Doppelklick ausübst.

Ich habe schon versucht das ganze auf Spalte A zu beschränken, dass bekomme ich aber nicht ganz hin weil der Code nicht alleine von mir ist. Vielleicht hat ein VBA Spezi da einen Tipp zu.

Kannst ja mal testen und schauen ob das was für dich ist :-))

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
r = ActiveCell.Row
ThisWorkbook.ActiveSheet.Rows(Target.Row).Select
    Selection.copy
    Selection.Insert Shift:=xlDown
    ActiveSheet.Paste
    Application.CutCopyMode = False
Cancel = True
End Sub
...zur Antwort

Also das ist ganz einfach. Wenn du noch ein Din A4 hast, gehst du in den Reiter Seitenlayout und stellst da einfach auf Din A5 um.

Jetzt hast du 2 oder sogar 3 Seiten im Din A5 Format. Das kannst du dann noch anpassen indem du mit Strg+A alles makierst und dann mit Strg+8 (nicht die vom NUM Feld) alles so verkleinerst das es nurnoch auf 2 Seiten ist. Falls es zu klein ist kannst du es mit Strg+9 wieder vergrössern.

Jetzt gehst du auf drucken, da steht Din A5 und Hochformat. Das ist auch alles richtig so, du musst jetzt unten nur von 1 Seite pro Blatt auf 2 Seiten pro Blatt umstellen.

Und so hast du deine beiden Din A5 Seiten auf einer Din A4 Seite.

Extra Din A5 Papier ist doch Quatsch :-)))

...zur Antwort

Oh ja, ich habe auch noch eine Möglichkeit:

Makiere die gesamte Tabelle und formatiere alles im Format Benutzerdefiniert

#,

(Siehe Bild 1)

Erstelle die Tabelle so: Zeile 1-4 frei lassen in Zelle A5 schreibst du jetzt nur eine 1 in B5 6700 in C5 12711 in D5 18172 in A6 2 in B6 6701 in C6 12712 und in D6 18173 dann sollte es gleich so aussehen, die Kommas werden automatisch gesetzt:

(Siehe Bild 2)

Jetzt makierst du A5 - D6 und ziehst das ganze bis Zeile 6703 runter, jetzt hast du zwar mehr als 20000 und auch doppelte aber das macht nichts :-))

Jetzt wechselst du mit ALT+F11 ins VBA und gibst bei deiner Tabelle folgenden Code ein

Sub Verkettenalle()
Call VerkettenSpalteA
Call VerkettenSpalteB
Call VerkettenSpalteC
Call VerkettenSpalteD
End Sub

Private Sub VerkettenSpalteA()
Range("A5:A6703").Select
Dim c As Range, tmp As String
For Each c In Selection
tmp = tmp & c & ","
Next
tmp = Left(tmp, Len(tmp) - 1)
[A1] = tmp
End Sub
Private Sub VerkettenSpalteB()
Range("B5:B6015").Select
Dim c As Range, tmp As String
For Each c In Selection
tmp = tmp & c & ","
Next
tmp = Left(tmp, Len(tmp) - 1)
[A2] = tmp
End Sub
Private Sub VerkettenSpalteC()
Range("C5:C5465").Select
Dim c As Range, tmp As String
For Each c In Selection
tmp = tmp & c & ","
Next
tmp = Left(tmp, Len(tmp) - 1)
[A3] = tmp
End Sub
Private Sub VerkettenSpalteD()
Range("D5:D1833").Select
Dim c As Range, tmp As String
For Each c In Selection
tmp = tmp & c & ","
Next
tmp = Left(tmp, Len(tmp) - 1)
[A4] = tmp
End Sub

So jetzt brauchst du nur noch mit ALT+F8 das Makro Verkettenalle aufrufen und es wird in die Zellen A1-A4 deine Zahlenkette gebildet.

(Siehe Bild 3)

Am Schluß nur noch A1-A4 nacheinander in Word einfügen und fertig ist deine Zahlenkette. Bitte nach dem Einfügen von A1, A2 und A3 ein Komma hinter die letzte Zahl in Word setzen, dass hat er nicht mitgemacht.

Habe fertig.

...zur Antwort

Also wenn du keine Lücken in Tabelle1 Spalte A hast kannst du das ganz einfach hiermit machen;

Sub umwechseln()

Sheets("Tabelle3").Select
Range("B5:C30").Select
Selection.Copy
Sheets("Tabelle1").Select
Cells(1, 1).End(xlDown).Offset(1, 0).Select
ActiveSheet.Paste
End Sub
...zur Antwort

Also das kann an einem Update liegen welches eine Sicherheitelücke schliessen soll.

Das bekommst du wie folgt in den Griff:

Also Excel schließen und die Datei

C:\Benutzer>Name<\AppData\Local\Temp\Excel8.0\MSForms.exd

löschen. Baut sich beim nächsten Start von Excel wieder auf und alle ActiveX-Steuerelemente gehen wieder.

Achja, das kommt auch nicht bei allen vor, bei mir war es nur auf einem der Fall :-))

...zur Antwort