Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
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

Schleifen und Verzweigungsprobleme...

Schleifen und Verzweigungsprobleme...
23.01.2006 09:27:11
Mark
Guten Morgen
In den Tabellen info und tmp sind Informationen wie Straße, Hausnummer und Zusatz. Ich will in die Tabelle info einen Link einbauen, der auf ein Bild auf einer CD verweist. Der Link ist in der Tabelle tmp zufinden. Jetzt soll das Makro erst den Straßennamen vergleichen. Wenn der Straßenname stimmt, soll er dann DIE Zeile gefunden hat, die mit dem übereinstimmt, was in der Info-Tabelle die Hausnummer vergleichen und am Ende das ganze noch mit einem Zusatz. Wenn er steht, dann soll er den Link, der dann in der Zeile ist, in die Info-Tabelle kopieren.
Das ist zumindest die Theorie. Leider bin ich nicht unbedingt der begnadete Programmierer und deswegen komm ich auch momentan nicht weiter. Ich bekomme immer die Fehlermeldung Next ohne For. Obwohl ich ja das For habe, aber das sieht der irgendwie nicht.
Ich bin dankbar für jeden Tipp und würde mich über eure Unterstützung freuen.
Vielen Dank und Gruß
Mark
Code:
1:
Sub setlinks()
2:
3: Ende = Application.Worksheets("info").Range("B65536").End(xlUp).Row
4: EndeTMP = Application.Worksheets("tmp").Range("B65536").End(xlUp).Row
5:
6: For f = 1 To Ende
7: Zelle = Zelle + 1
8: ZelleTMP = 0
9: z = 0
10: y = 0
11: For z = 1 To EndeTMP
12: ZelleTMP = ZelleTMP + 1
13: If Sheets("info").Range("AO" & Zelle) = Sheets("Tmp").Range("C" & ZelleTMP) Then
14:     For y = 1 To EndeTMP
15:     ZelleTMP = ZelleTMP + 1
16:     If Sheets("info").Range("AM" & Zelle) = Sheets("Tmp").Range("P" & ZelleTMP) Then
17:         If Sheets("info").Range("AS" & Zelle) = Sheets("Tmp").Range("K" & ZelleTMP) Then
18:             ZPA = Sheets("Tmp").Range("R" & ZelleTMP).Value
19:             Selection.Copy
20:             Sheets("info").Range("B" & Zelle).Select
21:             ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
22:             ZPA
23:             Next f
24:         Else
25:             Normal = Sheets("Tmp").Range("R" & ZelleTMP).Value
26:             Selection.Copy
27:             Sheets("info").Range("B" & Zelle).Select
28:             ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
29:             Normal
30:             Next f
31:         End If
32:     Else
33:         Next y
34:     End If
35: Else
36:     Next z
37: End If
38: Next f
39:
40: End Sub

41:

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleifen und Verzweigungsprobleme...
23.01.2006 09:39:10
Kay
Hallo,
du hast nach dem Beginn der For y zweimal If und for Next Y nur einmal End If das passt nicht.
Gruß
Kay
AW: Schleifen und Verzweigungsprobleme...
23.01.2006 09:50:43
Mark
Das Ding ist ja, dass es so ziehmlich egal ist, wo ich das Next hinsetze. Zum Beispiel das Next f, was ja dann in Tabelle Info eine Zeile runtergehen soll und das gleiche machen soll... Das meckert er ja auch an. Die Frage stellt sich, ob das ganze mit den Ifs und Fors überhaupt so funktionieren kann!?!?
Danke für die Hilfe
mfg
Mark
AW: Schleifen und Verzweigungsprobleme...
23.01.2006 10:28:26
Kay
Hallo,
hat etwas länger gedauert hier mal ein Beispiel, müsstest du nur noch an deiner Datei anpassen:

Sub setlinks()
Dim intf As Integer
Dim intz As Integer
Dim strVerg As String
For intf = 1 To Worksheets("info").Range("B65536").End(xlUp).Row
strVerg = Worksheets("info").Cells(intf, 2) & Worksheets("info").Cells(intf, 3)
For intz = 1 To Worksheets("tmp").Range("B65536").End(xlUp).Row
If strVerg = Worksheets("Tmp").Cells(intz, 2) & Worksheets("Tmp").Cells(intz, 3) Then
Worksheets("Tmp").Cells(intz, 1).Copy
'Selection.Copy
Range("A" & intf).Select
ActiveSheet.Paste
Application.CutCopyMode = False
End If
Next intz
Next intf
End Sub

Gruß
Kay
Anzeige
AW: Schleifen und Verzweigungsprobleme...
23.01.2006 10:52:54
Mark
Hi
Auf meiner Stirn steht: TILT... :D
Ich rall grad nicht besonders viel. Ähm, was macht diese Zeilen mit dem strVerg eigentlich? Sowohl die erste als auch die zweite...?
Danke dir
gruß
Mark
AW: Schleifen und Verzweigungsprobleme...
23.01.2006 11:10:01
Kay
Hallo,
in strVerg wird der zu Vergleichende Wert aus dem Tabellenblatt info eingelesen, der inhalt von strVerg sieht so aus "Buxtehuderstr.22", dieser wird dann mit den Inhalt der beiden Cellen in der TB tmp verlichen, dies ist die zweite Zeile "If strVerg = Worksheets("Tmp").Cells(intz, 2) & Worksheets("Tmp").Cells(intz, 3) Then" stimmen diese überein dann mache folgendes.
Hoffe das reicht zur Erklärung.
Kay
Anzeige
AW: Schleifen und Verzweigungsprobleme...
23.01.2006 12:07:27
Mark
Hi
Ich bekomme es immerhin zum laufen... Allerdings erfüllt es noch nicht seinen Sinn. Das Ding ist, dass die Daten in Wasser in einer anderen Reihenfolge stehen. Jetzt fügt er in der Infotabelle einen Link zu. Aber nicht den, der vom Straßennamen usw passt, sondern den, der in der Zeile steht.
Weißt du, wo da jetzt der Fehler ist?
Gruß
Mark
1:

Sub setlinksMaster()
2:
3: Dim intf As Integer
4: Dim intz As Integer
5: Dim strVerg As String
6:
7: Zelle = 3
8: ZelleTMP = 0
9:
10:
11: For intf = 4 To Worksheets("info").Range("B65536").End(xlUp).Row
12:     Zelle = Zelle + 1
13:     ZelleTMP = 0
14:     strVerg = Worksheets("info").Cells(Zelle, 46) & Worksheets("tmp").Cells(Zelle, 17)
15:         For intz = 1 To Worksheets("tmp").Range("B65536").End(xlUp).Row
16:                 ZelleTMP = ZelleTMP + 1
17:                 If strVerg = Worksheets("info").Cells(Zelle, 46) & Worksheets("Tmp").Cells(ZelleTMP, 17) Then
18:                 ZPA = Sheets("tmp").Range("R" & ZelleTMP).Value
19:                 Sheets("info").Range("B" & Zelle).Select
20:                 ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
21:                 ZPA
22:             End If
23:         Next intz
24: Next intf
25:
26: End Sub

Anzeige
AW: Schleifen und Verzweigungsprobleme...
23.01.2006 12:37:56
Kay
Hi,
da ich nicht weiss wie die Tabelle aufgebaut, ist kann ich dir das auch nicht sagen, so wie es sich liest stehen die Links auch noch in einer anderen Zeile oder?
Und dann wäre noch die Frage welcher Link gehört zu welcher Straße.
Kay
AW: Schleifen und Verzweigungsprobleme...
23.01.2006 14:09:11
Mark
Also so funktioniert das. Zumindest auf den ersten Blick... Ist da noch irgendwas dran auszusetzen ?

Sub setlinksMaster()
Dim f As Integer
Dim i As Integer
Dim strVerg As String
Zelle = 3
ZelleTMP = 0
i = 0
f = 0
For f = 1 To Worksheets("Wasser").Range("B65536").End(xlUp).Row
Zelle = Zelle + 1
ZelleTMP = 0
Do
ZelleTMP = ZelleTMP + 1
Application.StatusBar = "Verlauf! Wasser: " & Zelle & " Tmp : " & ZelleTMP
If Sheets("Wasser").Range("AT" & Zelle) = Sheets("Tmp").Range("Q" & ZelleTMP) Then
ZPA = Sheets("tmp").Range("R" & ZelleTMP).Value
Sheets("Wasser").Range("B" & Zelle).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
ZPA
End If
If Sheets("Wasser").Range("AT" & Zelle) = Sheets("Tmp").Range("Q" & ZelleTMP) Then Exit Do
Loop
Next f
End Sub

Anzeige
AW: Schleifen und Verzweigungsprobleme...
23.01.2006 14:38:37
Kay
Hallo,
also wenn das funzt ist es doch in Ordnung kann da jetzt nichts entdecken.
Allerdings könnte mann diese Zeile sich sparen:
If Sheets("Wasser").Range("AT" & Zelle) = Sheets("Tmp").Range("Q" & ZelleTMP) Then Exit Do
indem du nach dieser Zeile in der If Abfrage
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=ZPA
Exit Do
vor End If einfügst.
Gruß
Kay
AW: Schleifen und Verzweigungsprobleme...
23.01.2006 10:14:09
MichaV
Hallo Mark,

For X = 1 To Y
If A=B Then
bla
Else
Next X
End If

geht einfach nicht. Die If- Then- Else- Abfrage muß zwischen For und Next stehen, das kannst Du nicht verschachteln.
Was muß also immer lauten

For X=1 To Y
If Then
Else
Next

Willst Du Dir das alleine hinbiegen oder einen Codevorschlag bekommen?
Gruß- Micha
PS: Rückmeldung wäre nett.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige