Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA: Datum in Spalte schreiben
#1
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
Antworten Top
#2
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.
Schöne Grüße
Berni
Antworten Top
#3
Das funktioniert leider noch nicht :(
Antworten Top
#4
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.
Schöne Grüße
Berni
Antworten Top
#5
Leider werden die leeren Zellen der Spalte K noch nicht befüllt.


Angehängte Dateien
.xlsm   Testmappe.xlsm (Größe: 19,86 KB / Downloads: 2)
Antworten Top
#6
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. 
Antworten Top
#7
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.
Schöne Grüße
Berni
Antworten Top
#8
Komischerweise 355, also müsste das auch damit funktionieren.
Antworten Top
#9
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.
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • Aces
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste