Anzeige
Archiv - Navigation
1344to1348
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

Variables Listenende bestimmen

Variables Listenende bestimmen
04.02.2014 15:26:21
Strickliesel
Hallo zusammen,
ich sitze gerade vor einem VBA Problem.
Meine Aufgabe ist es, eine Excel Liste einzulesen und daraus eine .csv Datei zu erzeugen. Soweit so gut.
Nun soll aber mit der Datei noch ein bisschen was passieren, bevor sie in die CSV übertragen wird.
Beispielsweise soll, wenn in einer Spalte ein bestimmter Wert ist, eine neue Zeile hinzugefügt werden und diese mit Teilen aus der darüber befüllt werden.
z.B.:
F1|F1_001|Blabla|WERT|Blabla|WERT|Blabla|WERT|Blabla|Blablabla
F1|F1_002|Blibli|WERT|Blibli|WERT|Blibli|WERT|Blibli|Bliblibli
Dies wäre jetzt die Ausgangsdatei, die eingelesen werden soll.
Daraus gemacht werden soll:
F1|F1_001|Blabla|WERT|Blabla|Blablabla
F1|F1_001|Blabla|WERT|Blabla|Blablabla
F1|F1_001|Blabla|WERT|Blabla|Blablabla
F1|F1_002|Blibli|WERT|Blibli|Bliblibli
F1|F1_002|Blibli|WERT|Blibli|Bliblibli
F1|F1_002|Blibli|WERT|Blibli|Bliblibli
Ich mache das ganze in einer For Schleife (For i = 1 To Ende).
Ende ist hierbei die letzte Zeile.
Genau hier sitzt auch das Problem. Die letzte Zeile wird natürlich vor der For Schleife definiert:
With ActiveSheet
Ende = .Cells(Rows.Count, 4).End(xlUp).Row
End With
Dadurch das IN der For Schleife aber ja neue Zeilen hinzugefügt werden, wird in Ende leider nicht die wirklich letzte Zeile gespeichert.
Nach diesem Schema sieht der Code in der For Schleife aus:
 If wksInput.Range("F" & i).Value = "1" Then
wksInput.Range("F" & i).Value = "WERT"
Worksheets("Tabelle1").Rows(i + 1).Insert
Cells(i + 1, 1).Value = Cells(i, 1).Value
Cells(i + 1, 2).Value = Cells(i, 2).Value
End If
Dadurch durchläuft das Makro natürlich nicht die gesamte Tabelle, sondern hört immer mittendrin auf.
Kann mir hier jemand helfen?
Wie könnte ich denn Ende so definieren, dass es die variabel hinzukommenden Zeilen mit einbezieht?
Vielen, vielen lieben Dank im Voraus!
Liebe Grüße
Strickliesel

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variables Listenende bestimmen
04.02.2014 15:36:57
Jack_d
Ich würd es ganz hemdsärmlich angehen
jedes mal wenn du eine Zeile Einfügst einfach 1 dazu addieren
also Sprich

Worksheets("Tabelle1").Rows(i + 1).Insert
Ende = Ende +1 

Schon läuft die Schleife eins mehr
Grüße

das geht so nicht
04.02.2014 15:40:44
Rudi
Hallo Jack
in for i=1 to Ende ist Ende fix.
Sub aaaaa()
Dim i, j, n
j = 10
For i = 1 To j
j = 20
n = n + 1
Next
MsgBox n
End Sub
Gruß
Rudi

Könntest
04.02.2014 15:47:42
Jack_d
Recht haben.
Ich habs nur mal kurz durch den Debugger laufen lassen und es hat mir die Werte erhöht
aber nicht die SCXhleife
mea culpa

Anzeige
Nachtrag
04.02.2014 15:45:01
Rudi
Hallo,
anders ist es in einer DO....Loop-Schleife
Sub aaaaa()
Dim i, j, n
j = 10
Do While i 
Gruß
Rudi

Das meinte ich
04.02.2014 15:48:22
Jack_d
auch ;-D
kleiner Spaß am Rande

AW: Variables Listenende bestimmen
04.02.2014 15:37:38
Rudi
Hallo,
durchlaufe die Tabelle von unten
for i=ende to 1 step -1
Gruß
Rudi

AW: Variables Listenende bestimmen
06.02.2014 13:37:16
Strickliesel
Hallo zusammen,
entschuldigt die verspätete Rückmeldung!
Ich durchlaufe nun die Schleife von hinten, das klappt.
Vielen, vielen lieben Dank für die Hilfe!!!
Ich bin leider noch nicht so versiert im Umgang mit VBA ;)
Liebste Grüße

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige