Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
720to724
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
720to724
720to724
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Schleife in beide Richtungen laufen lassen!

Schleife in beide Richtungen laufen lassen!
17.01.2006 13:30:56
Benjamin
Hallo zusammen,
im Zuge einer Programmieraufgabe öffne ich eine 2. Excel Datei und lasse in einer Schleife nach einer Nummer suchen. Wenn die Nummer gefunden wurde, dann wird der Wert, der 2 Zellen weiter rechts steht in meine Aktuelle tabelle in
die entsprechende Spalte geschrieben. Die Gerätenummern sind aber in beiden Dokumenten nicht in der gleichen Reihenfolge, also werden einige überpsrungen. Wenn aber nun eine übersprungene Nummer später auftaucht ist der Zähler zu weit gelaufen, ich müsste also entweder bei jedem durchlauf wieder bei 1 anfangen oder am Besteh die Schleife auf Anfrage rückwehrts durch die Tabelle Laufen lassen. Ich komme damit aber nicht hin ohne eine Endlosschleife zu basteln, vielleicht kann mir wer helfen? Code zur Aufgabe:
'Variablen füllen
Set WBAktuell = Workbooks(ActiveWorkbook.Name)
Set WSSteuerung = WBAktuell.Worksheets("Steuerung")
Sprungmarke:
x = 85
y = 21
z = 1
'Laufwerke und file aus dem Worksheet "Steuerung" übernehmen
ChDrive WSSteuerung.Cells(3, 2)
StrLoadpath = WSSteuerung.Cells(24, 3)
StrLoadfile = WSSteuerung.Cells(24, 4)
ChDir StrLoadpath
'
Do While Tabelle1.Cells(x, y - 3) = 7095
If Tabelle1.Cells(x, y) "" Then
DblVergleich = Tabelle1.Cells(x, y)
Else
Exit Sub
End If
Workbooks.Open Filename:=StrLoadpath & StrLoadfile
Set WSGeraete = Workbooks(StrLoadfile).Worksheets("Gerätebestand neu")
Do While WSGeraete.Cells(z, 1) ""
If WSGeraete.Cells(z, 1) = DblVergleich Then
Tabelle1.Cells(x, y + 3) = WSGeraete.Cells(z, 3)
Exit Do
Else
End If
z = (z + 1)
Loop
DblVergleich = 0
x = x + 1
'
Loop
------
Schonmal danke für die Hilfe! Gruß: Benjamin

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife in beide Richtungen laufen lassen!
17.01.2006 13:37:30
Manfred
Hallo Benjamin,
schon mal an "SVERWEIS" gedacht. Das klingt so, als wäre es das, was du benötigst.
Gruss Manfred
AW: Schleife in beide Richtungen laufen lassen!
17.01.2006 13:42:58
Benjamin
Ja nur ist das ganze halt in VBA Programmiert und sollte halt automatisiert übern nen Makro ablaufen, wenn ich Bestandteile der Dateien, also die Nummern in die gleiche Reihenfolge bringe ist das kein ding, aber das geht bei einem Datensatz von ca. 7000 net, vor allem nicht weil der andauern aktualisiert wird und in 100 Dokumenten wieder abgebildet wird. Aber trotzdem Danke!
AW: Schleife in beide Richtungen laufen lassen!
17.01.2006 15:48:14
Benjamin
Also ich habe mein Problem selbst gelöst, indem ich eine 2 Schleife eingebaut habe, die initialisiert wird sobald die andere nichts findet. Diese initialisiert wieder die andere Schleife falls diese nichts findet. Beide Schleifen laufen leider von oben durch das Dokument, mir wäre es lieber gewesen, wenn eine Schleife nach oben und unten hätte laufen könnten. Wäre in meinen Augen wesentliche performater gewesen. Hier meine Lösung:
-----
Do While Tabelle1.Cells(x, y - 3) = 7095
If Tabelle1.Cells(x, y) "" Then
DblVergleich = Tabelle1.Cells(x, y)
Else
Exit Sub
End If
Do While WSGeraete.Cells(z, 1) ""
If WSGeraete.Cells(z, 1) = DblVergleich Then
Tabelle1.Cells(x, y + 3) = WSGeraete.Cells(z, 3)
Exit Do
Else
m = 2
Do While WSGeraete.Cells(m, 1) ""
If WSGeraete.Cells(m, 1) = DblVergleich Then
Tabelle1.Cells(x, y + 3) = WSGeraete.Cells(m, 3)
z = 2
Exit Do
Else
End If
m = m + 1
Loop
End If
z = (z + 2)
Exit Do
Loop
x = x + 1
Loop
-----
Z und M sind die Schleifenindikatoren!
Also viel Spass beim basteln Gruß Benjamin!
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige