Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1892to1896
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zelle mit Datenüberprüfung

Zelle mit Datenüberprüfung
25.07.2022 14:27:58
Tim
Hallo zusammen,
ich möchte gern einzelne Daten (Zeile für Zeile) von einer Tabelle in eine andere Schreiben und das in die nächste freie Zeile.
Dazu habe ich einiges bereits im Forum gefunden, jedoch funktioniert es noch nicht so wirklich.
Mein Problem ist, dass er nicht aufhört, den ersten Datensatz schreiben, statt weiter die Ursprungstabelle zu durchlaufen und den nächsten Datensatz zu nehmen, bis er fertig ist.

Sub Test()
Datei = "Test1.xlsx"
Datei1 = "Zieltabelle.xlsm"
Set Datenbank = Workbooks("Test1.xlsx")
Set DB_Blatt = Datenbank.Worksheets("Tabelle1")
Set Ziel= Workbooks("Ziel.xlsx")
Set aktuellerMonat = Ziel.Worksheets("Juli")
letzteZeile = DB_Blatt.Cells(DB_Blatt.Rows.Count, 1).End(xlUp).Row
letzteZeile1 = aktuellerMonat.Cells(aktuellerMonat.Rows.Count, 1).End(xlUp).Row
NächsteZeile = 1
With DB_Blatt
For i = 2 To letzteZeile
Do
If aktuellerMonat.Cells(NächsteZeile, 1) = "" Then
aktuellerMonat.Cells(NächsteZeile, 1) = DB_Blatt.Cells(i, 1)
End If
NächsteZeile = NächsteZeile + 1
Loop While NächsteZeile 

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelle mit Datenüberprüfung
25.07.2022 15:50:06
Yal
Hallo Tim,
Developer Hygiene:
_ Variabledeklaration soll auf "Erforderlich" gestellt (Extras, Optionen). Anfänger finden das lästig, aber Profis machen es. Warum wohl?
_ achte auf ein sauberes Einrücken! (sieht aus wie d'Sau bei dir)
Ich sehe 3 Dateien. Warum?
Du hast eine Quelle und ein Ziel. Nenne alle deine Variable dementsprechend:
wb_Q, wb_Z,
ws_Q, ws_Z,
aktZeile_Q, aktZeile_Z
letzZeile_Q, letzZeile_Z
usw.
Warum einmal Fo-Next und einmal Do-While ?
...
VG
Yal
AW: Zelle mit Datenüberprüfung
25.07.2022 16:26:36
Tim
Hallo Yal, danke für deinen Hinweis!
Sowohl die For each als auch die Do While habe ich aus verschiedenen Themen "zusammengebastelt" mit dem Ziel die Zeilen in der Quelldatei zu durchlaufen (for each) und jedes Mal die nächste leere Zeile in der Zieldatei zu beschreiben.
Anzeige
AW: Zelle mit Datenüberprüfung
25.07.2022 16:38:12
Yal
Hallo Tim,
im Grund genommen sollte folgendes Konstrukt genügen:

Sub Test()
Dim wsQ As Worksheet 'Quelle
Dim wsZ As Worksheet 'Ziel
Set wsQ = Workbooks("Test1.xlsx").Worksheets("Tabelle1")
Set wsZ = Workbooks("Ziel.xlsx").Worksheets("Juli")
For Each Z In Range(wsQ.Range("A2"), wsQ.Cells(Rows.Count, 1).End(xlUp))
If Z.Value  "" Then wsZ.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = Z.Value
Next
End Sub
VG
Yal
Das ist aber inkonsequent... ;-))
25.07.2022 16:52:19
{Boris}
Hi Yal,
ich bekomme bei Deinem Code den Hinweis:
Fehler beim Kompilieren
Variable nicht definiert
;-))
VG, Boris
Anzeige
Habe ich wieder geschlampert? ;-))
25.07.2022 17:34:08
Yal
...nun ja, Du bekommst eben diese Prüfung durch den Compiler, nur weil Du als Profi die Einstellung "Variabledeklaration erforderlich" an hast.
Die zweite Stufe des Profiseins wäre sein Code selber zu testen, bevor man es postet. Da hadere ich noch a bissele. :'-)
(Meine Entschludigung ist, dass der Fragenden keine Testdatei zur Verfügung gestellt hat :-P )
Richtig ist (wobei ich nicht sicherstellen kann, dass ich das Vorhaben des Fragenden richtig interpretiert habe):

Sub Test()
Dim wsQ As Worksheet 'Quelle
Dim wsZ As Worksheet 'Ziel
Dim Z As Range       'Lauf-Variable für Zelle
Set wsQ = Workbooks("Test1.xlsx").Worksheets("Tabelle1")
Set wsZ = Workbooks("Ziel.xlsx").Worksheets("Juli")
For Each Z In Range(wsQ.Range("A2"), wsQ.Cells(Rows.Count, 1).End(xlUp))
If Z.Value  "" Then wsZ.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = Z.Value
Next
End Sub
VG
Yal
Anzeige
;-) ...oT
25.07.2022 17:46:58
{Boris}
VG, Boris
AW: Zelle mit Datenüberprüfung
25.07.2022 17:53:45
GerdL
Moin Tim,
ich kenne die Häufigkeit der Lücken u. der Füllungen nicht. Es fehlte bei deinem Konstrukt "Exit Do".

Sub Unit()
Dim aktuellerMonat As Worksheet: Set aktuellerMonat = Workbooks("Ziel.xlsx").Worksheets("Juli")
Dim letzteZeile1 As Long: letzteZeile1 = aktuellerMonat.Cells(aktuellerMonat.Rows.Count, 1).End(xlUp).Row
Dim nächsteZeile As Long: nächsteZeile = 1
With Workbooks("Test1.xlsx").Worksheets("Tabelle1")
For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
Do
If aktuellerMonat.Cells(nächsteZeile, 1) = "" Then
aktuellerMonat.Cells(nächsteZeile, 1) = .Cells(i, 1)
Exit Do
End If
nächsteZeile = nächsteZeile + 1
Loop While nächsteZeile 
Gruß Gerd
Anzeige
AW: Zelle mit Datenüberprüfung
25.07.2022 19:08:57
Tim
Hallo Gerd, genau das ist die Lösung, jetzt funktioniert es, danke!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige