Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1776to1780
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

Daten per Schleife kopieren und einfügen

Daten per Schleife kopieren und einfügen
14.08.2020 09:57:15
Andreas
Hallo,
ich versuche eine Art Kanban-Board zu erstellen. Dabei habe ich in einem Tabellenblatt ("Backlog") eine Tabelle mit Datensätzen. Aus dieser Tabelle sollen, wenn bestimmte Bedingungen erfüllt sind (derzeit eine, es kommen jedoch noch welche dazu), die IDs der Datensätze kopiert werden und jeweils in die Spalte E des Tabellenblattes ("Kanban") eingefügt werden. Jedoch nicht direkt untereinander, sondern mit drei Zeilen Platz dazwischen.
Dafür habe ich folgenden Code gebastelt:
Dim i%
Dim j%
Dim x%
With Sheets("Backlog")
j = 9
For i = 5 To 100
If Worksheets("Kanban").Cells(j, 5) = "" Then
If .Cells(i, 12) = "To-Do" Then
.Cells(i, 4).Copy Destination:=Worksheets("Kanban").Cells(j, 5)
End If
Else
If .Cells(i, 12) = "To-Do" Then
.Cells(i, 4).Copy Destination:=Worksheets("Kanban").Cells(j + 3, 5)
End If
End If
Next
End With
i bezieht sich auf das Tabellenblatt "Backlog", wo sich die IDs befinden und j bezieht sich auf das Tabellenblatt "Kanban", wo die IDs eingefügt werden sollen.
Was mache ich in dem Code? Ich prüfe ob im Tabellenblatt "Kanban", die erste Zelle leer ist. Ist dies der Fall wird die erste gefundene ID aus dem Arbeitsblatt "Backlog" in die leere Zelle eingefügt (unter der Bedingung, dass in der Spalte L neben der ID "To-Do" steht).
Ist die Zelle im Tabellenblatt "Kanban" nicht frei, soll 4 Zeilen nach unten gesprungen werden und wieder geprüft werden, ob die Zelle leer ist. Ist das der Fall, soll die ID dort eingefügt werden.
Das soll dann mit jeder ID gemacht werden, die im Tabellenblatt "Backlog" gefunden wird.
Obwohl es in meinen Beispiel-Datensätzen 4 IDs gibt, die die Bedingungen erfüllen, wird lediglich das erste und letzte Ergebnis kopiert und in "Kanban" eingefügt.
Ich vermute mir fehlt eine weitere Schleife. Ich habe versucht für j ebenfalls eine einzusetzen...das hat jedoch nicht funktioniert.
Kann mir jemand helfen? Anbei auch eine Beispieldatei.

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten per Schleife kopieren und einfügen
14.08.2020 10:05:04
peterk
Hallo
Du solltest auch "j" erhöhen sonst bleibt es bei 9 stehen.
AW: Daten per Schleife kopieren und einfügen
14.08.2020 10:09:34
Andreas
Also hier zähle ich ja +3 hoch.
.Cells(i, 4).Copy Destination:=Worksheets("Kanban").Cells(j + 3, 5)
AW: Daten per Schleife kopieren und einfügen
14.08.2020 10:11:46
peterk
Hallo
Leider nein. Du schreibst hier in die Zelle 12 (j+3) aber j ist immer noch 9. Hochzählen geht nur mit der Anweisung j=j+3
AW: Daten per Schleife kopieren und einfügen
14.08.2020 10:20:04
Andreas
Oh man. Na klar! Vielen Dank. Ein Problem bleibt jedoch: Nun findet er alle Ergebnisse, fängt nach dem letzten Ergebnis jedoch wieder von vorne an. Wie kann ich bewirken, dass nach dem letzten Ergebnis Schluss sein soll?
Anzeige
AW: Daten per Schleife kopieren und einfügen
14.08.2020 10:33:43
peterk
Hallo
Was heisst "..wieder von vorne an"
Anbei ein Beispiel wie ich die Sub geschrieben hätte

Sub Kopieren()
Dim i%
Dim j%
'Sucht die erste leere Zeile in KanBan
For j = 9 To 100 Step 3
If Worksheets("Kanban").Cells(j, 5) = "" Then Exit For
Next j
With Worksheets("Backlog")
For i = 5 To 100
If .Cells(i, 12) = "To-Do" Then
.Cells(i, 4).Copy Destination:=Worksheets("Kanban").Cells(j, 5)
j = j + 3
End If
Next
End With
End Sub

AW: Daten per Schleife kopieren und einfügen
14.08.2020 10:42:57
Andreas
Ach großartig! Vielen Dank. Nun wird genau das getan, was getan werden soll :-)
Ich versuche den Code nachzuvollziehen. Was genau macht "Step 3" in diesem Zusammenhang?
Anzeige
AW: Daten per Schleife kopieren und einfügen
14.08.2020 11:17:05
peterk
Hallo
Step 3: Die Variable j wird mit jedem Schleifendurchlauf um 3 erhöht (statt 1). Damit kann man auch Rückwärtsschleifen bauen. z.B. "For j=1000 to 1 Step -1"
AW: Daten per Schleife kopieren und einfügen
14.08.2020 11:33:55
Andreas
Klasse, vielen Dank für deine Hilfe.
Das Wochenende ist gerettet! :-)

319 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige