Clever-Excel-Forum

Normale Version: VBA: Datum in Spalte schreiben
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich möchte über eine Schaltfläche in alle Zeilen der Spalte K, die leer sind, das Datum, welches in der gleichen Zeile in Spalte J steht. 
Also z. B. Falls K4 gleich leer K4=J4. Und das für alle Zeilen der Tabelle. Hat da jemand vllt auf die schnelle einen Code für mich.

Beste Grüße
Aces
Das möchtest du also für alle 1.000.000 Zeilen? Bist du dir da sicher? Oder vielleicht doch nur für alle Zeilen, die ausgefüllt sind?

Code:
Sub Datum_uebertragen()
Dim i As Long

For i = 2 To Cells(Rows.Count, "J").End(xlUp).Row        'evtl. "J" anpassen
   If Cells(i, "K") = "" Then Cells(i, "K") = Cells(i, "J")
Next i

End Sub

Die letzte gefüllte Zeile deiner Tabelle wird in Spalte J ermittelt. Wichtig dabei ist, dass in Spalte J keine Leerzeilen sein dürfen. Falls das nicht der Fall ist, tausche in der kommentierten Zeile das "J" gegen eine andere Spalte aus, die entsprechend lückenlos gefüllt ist.
Das funktioniert leider noch nicht :(
Zitat:Das funktioniert leider noch nicht
...ist leider eine ziemlich sinnlose Aussage. WAS funktioniert nicht?

Lade am besten eine Beispielmappe hoch, damit man mal sieht, wie das Ganze überhaupt ausschaut.
Leider werden die leeren Zellen der Spalte K noch nicht befüllt.
Das Problem muss in folgender Zeile sein:

For i = 2 To Cells(Rows.Count, "J").End(xlUp).Row      obwohl Spalte J keine Leerzeilen enthält  

Ich habe das jetzt auf 

For i = 2 To 10000 angepasst und dann funktioniert es. 
Ich hatte ja geschrieben, dass diese Zeile eventuell angepasst werden muss.
Versuche bitte mal folgenden Code:

Code:
Sub Zeilen()
Msgbox Cells(Rows.Count, "J").End(xlUp).Row
End Sub

Und dann sag, welche Zahl dir in der Msgbox ausgegeben wird.
Komischerweise 355, also müsste das auch damit funktionieren.
Ja, müsste es. Da ich deine Datei nicht sehen kann, weiß ich nicht, woran es hapert.
Aber zur Not kannst du ja die 10000 drinlassen, wenn du weißt, dass es nicht mehr Zeilen werden. Passe dann aber den Code noch an:

Code:
For i = 2 To Cells(Rows.Count, "J").End(xlUp).Row
  If Cells(i, "K") = "" And Cells(i, "J") <> "" Then Cells(i, "K") = Cells(i, "J")
Next i


Als Alternative zu VBA ginge noch der Weg über eine Hilfsspalte mit
Code:
=WENN(K2="";J2;K2)
und diese Hilfsspalte kannst du dann kopieren und als Werte in Spalte K einfügen.