Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
944to948
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
944to948
944to948
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA-Schleife (Zeilenschaltung)

VBA-Schleife (Zeilenschaltung)
25.01.2008 13:16:55
Bernd
Hallo,
bei folgendem Code würde ich gerne ein Anpassung vornehmen, die folgendes bewirken soll:
der gesamte Code soll z. B. 20x durchlaufen werden, dabei soll die Zeilenschaltung (For i=) aber jeweils um +1 erhöht werden. D. h. ich erhalte eine Liste mit Werten in Spalte B und C. Diese Werte stammen aus verknüpften Dateien (und dort aus den Zellen b5,c5, b6 ,c6).
Ich kenne mich bei VBA leider nur sehr schlecht aus, deshalb wäre konkrete Lösung für mich sehr hilfreich!
Danke und Gruß
Bernd
Hier der Code:

Private Sub CommandButton1_Click()
Dim lZeile As Long, i As Long
Dim Formeltext As String
'Stichtag
For i = 3 To Cells(Rows.Count, 1).End(xlUp).Row
Formeltext = "='C:\Test\Reports\" & Year(Cells(i, 1)) & "_" & CStr(Format(Month(Cells(i, 1)), " _
00")) & "\" & _
CStr(Format(Day(Cells(i, 1)), "00")) & "\Werte\Werte.xls]Werte1'!$B$5"
Cells(i, 2).FormulaLocal = Formeltext
'Bestand
For i = 3 To Cells(Rows.Count, 1).End(xlUp).Row
Formeltext = "='C:\Test\Reports\" & Year(Cells(i, 1)) & "_" & CStr(Format(Month(Cells(i, 1)), " _
00")) & "\" & _
CStr(Format(Day(Cells(i, 1)), "00")) & "\Werte\Werte.xls]Werte1'!$C$5"
Cells(i, 2).FormulaLocal = Formeltext
Next i
' Stichtag
For i = 4 To Cells(Rows.Count, 1).End(xlUp).Row
Formeltext = "='C:\Test\Reports\" & Year(Cells(i, 1)) & "_" & CStr(Format(Month(Cells(i, 1)), " _
00")) & "\" & _
CStr(Format(Day(Cells(i, 1)), "00")) & "\Werte\Werte.xls]Werte1'!$B$6"
Cells(i, 2).FormulaLocal = Formeltext
'Bestand
For i = 4 To Cells(Rows.Count, 1).End(xlUp).Row
Formeltext = "='C:\Test\Reports\" & Year(Cells(i, 1)) & "_" & CStr(Format(Month(Cells(i, 1)), " _
00")) & "\" & _
CStr(Format(Day(Cells(i, 1)), "00")) & "\Werte\Werte.xls]Werte1'!$C$6
End Sub


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

Betreff
Datum
Anwender
Anzeige
AW: VBA-Schleife (Zeilenschaltung)
25.01.2008 13:41:16
Andi
Hi,
probier mal dies:
Dim a As Integer
Dim i As Long
For a = 3 To 22
For i = a To Cells(Rows.Count, 1).End(xlUp).Row
'Dein Code
Next i
Next a
Schönen Gruß,
Andi

AW: VBA-Schleife (Zeilenschaltung)
25.01.2008 13:55:00
Bernd
Hallo Andi,
ich erhalte dann : Fehler beim Kompilieren: Mehrfachdeklaration im aktuellen Güktigkeitsbereich
Die Ausführung bleibt bei Dim lZeile As Long, i As Long hängen!
Viele Grüße
Bernd

AW: VBA-Schleife (Zeilenschaltung)
25.01.2008 14:04:28
Andi
Hi,
das war nur als Beispiel bzw Anregung gedacht; wenn Du i in Deinem Code schon deklariert hast, dann musst Du meine Deklaration weglassen.
Schönen Gruß,
Andi

Anzeige
AW: VBA-Schleife (Zeilenschaltung)
25.01.2008 14:58:50
Bernd
Hallo Andi,
leider habe ich immer noch Fehlermeldungen:
füge ich Deine Anweisung vor meinem Code ein, dann erhalte ich ich bei Next i am Ende den Fehler:Ungültiger Verweis auf Next-Steuervariable
Lösche ich die Schleifen "for I=3 usw. in meinem Code, dann erhalte ich die Meldung:
For-Steuervariable wird bereits verwendet
Woran kann das liegen?
Viele Grüße
Bernd

AW: VBA-Schleife (Zeilenschaltung)
25.01.2008 19:06:55
Knut
Hi,
das bedeutet, dass du in zwei verschachtelten Schleifen zweimal i als Steuervariable verwendest, benenne eine in j um.
mfg Knut

AW: VBA-Schleife (Zeilenschaltung)
29.01.2008 13:01:00
Bernd
Hallo zusammen,
leider komme ich mit den bisherigen Lösungen nicht klar, die Fehlermeldungen bleiben bestehen! Kann mir vielleicht nochmal jemand konkreter helfen?
Gruß
Bernd

Anzeige
AW: VBA-Schleife (Zeilenschaltung)
29.01.2008 19:19:07
Fred
Hi,
poste mal den aktuellen Stand deines Codes.
mfg Fred

AW: VBA-Schleife (Zeilenschaltung)
30.01.2008 09:58:00
Bernd
Hallo Fred,
ich habe nun eine Musterdatei mit dem Code erstellt und so vereinfacht, damit das Problem deutlicher wird.
https://www.herber.de/bbs/user/49518.xls
Wenn man auf den "Command Button" in der Musterdatei drückt, dann zieht der Code in die Datei Daten aus anderen Dateien, die alle den gleichen Namen tragen, aber in unterschiedlichen Ordnern auf der meinem Rechner abgespeichert sind. Man sieht nach Ablauf des Codes sehr schön, dass im Bereich B3:E4 automatisch externe Links zu den entsprechenden Quelldateien eningetragen wurden, die #Bezugsfehler resultieren natürlich daraus, dass die Verzeichnisstruktur nicht angelegt wurde, aber dass kann man ja ignorieren. Zwingend manuell zu befüllen ist die Spalte A mit einem Datum. Davon ausgehend werden die Links per Code generiert.
Nun hätte ich gerne folgende Anpassung vorgenommen:
Statt der bisherigen festen Zell-Bezüge auf die externen Dateien, würde ich gerne nach bestimmten Textfeldern in den externen Dateien suchen (befinden sich dort alle in Spalte A) und falls diese vorhanden sind, dann soll der Wert aus der selben Zeile. aber Spalte E aus diesen Dateien übernommen werden. Falls der Texteintrag nicht gefunden wird, dann soll "Null" ausgewiesen werden.
Die zu suchenden Texteinträge könnten z.B. lauten:
Ware A
Ware B
Ware C
Ware D
Viele Grüße.
Bernd
PS:
Hier außerdem der Code im Klartext (in der Musterdatei ebenfalls enthalten):

Private Sub CommandButton1_Click()
Dim lZeile As Long, i As Long
Dim Formeltext As String
'Bezug1
For i = 3 To Cells(Rows.Count, 1).End(xlUp).Row
Formeltext = "='C:\Backup\" & Year(Cells(i, 1)) & "_" & CStr(Format(Month(Cells(i, 1)), "00")) & _
"\" & _
CStr(Format(Day(Cells(i, 1)), "00")) & "\Daten\[Test.xls]Tabelle1'!$B$5"
Cells(i, 2).FormulaLocal = Formeltext
Next i
'Bezug2
For i = 3 To Cells(Rows.Count, 1).End(xlUp).Row
Formeltext = "='C:\Backup\" & Year(Cells(i, 1)) & "_" & CStr(Format(Month(Cells(i, 1)), "00")) & _
"\" & _
CStr(Format(Day(Cells(i, 1)), "00")) & "\Daten\[Test.xls]Tabelle1'!$R$37"
Cells(i, 3).FormulaLocal = Formeltext
Next i
'Bezug3
For i = 3 To Cells(Rows.Count, 1).End(xlUp).Row
Formeltext = "='C:\Backup\" & Year(Cells(i, 1)) & "_" & CStr(Format(Month(Cells(i, 1)), "00")) & _
"\" & _
CStr(Format(Day(Cells(i, 1)), "00")) & "\Daten\[Test.xls]Tabelle1'!$i$40"
Cells(i, 4).FormulaLocal = Formeltext
Next i
'Bezug4
For i = 3 To Cells(Rows.Count, 1).End(xlUp).Row
Formeltext = "='C:\Backup\" & Year(Cells(i, 1)) & "_" & CStr(Format(Month(Cells(i, 1)), "00")) & _
"\" & _
CStr(Format(Day(Cells(i, 1)), "00")) & "\Daten\[Test.xls]Tabelle1'!$i$37"
Cells(i, 5).FormulaLocal = Formeltext
Next i
End Sub


Anzeige

263 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige