For-Schleife gibt wiederholt (falschen) Werte
02.09.2016 13:11:57
Peter
folgende Aufgabenstellung:
Ich habe zwei Tabellen A & B. In Tabelle A ist eine Liste der relevanten Medien mit den dazugehörigen Basic-URLs (z.B. "aberwitzig.com"). Sieht so aus (nachdem die Funktion durchgelaufen ist + Markierung der sich wiederholenden Werte):
In Tabelle B (welche Variabel ist, da ich aus verschiedenen Tabellen Werte für meine Liste in Tabelle A finden will) befinden sich eine Vielzahl von Links (z.B. "http://www.aberwitzig.com/flachwitze.htm") verschiedener Online-Portale zu einem für meine Arbeit relevantem Thema. Zusätzlich zu den Links sind noch eine Vielzahl von Informationen gesammelt, unter anderem die Anzahl der Views die diese Seite im Monat hat. Tabelle B kann gelegentlich in der zweiten Zeile keinen Link enthalten. Sieht so aus:
Um die Reichweiten aus Tabelle B in die Tabelle A zu bekommen, nehme ich die Basic-URL, kopiere sie in eine ungenutzte Zelle in Tabelle B und durchsuche dann die Spalte mit den Links nach diesem Wert.
Das klappt an und für sich ganz gut, nur gibt mir die Funktion in unregelmäßigen Abständen EINEN wiederkehrenden Wert als Reichweite in Tabelle A wieder. Dieser Wert ist immer die Reichweite des obersten Links in Tabelle B. Dabei ist es unerheblich ob in Tabelle B die gesuchte Basic-URL enthalten ist oder nicht. Nur um sicherzugehen: Dieser sich wiederholende Wert (in diesem Fall 4.400.000) passt nur zu 4players.de - die anderen Medien haben andere Reichweiten und sind auch anders in Tabelle B eingetragen.
Jetzt habe ich ehrlich gesagt keine Ahnung, wieso mir der Code einen falschen Code wiedergibt, obwohl ein passender zur Verfügung stünde.
Ich hoffe das ist soweit verständlich. Ich danke für eure Mühe.
Hier ist der Code:
Sub neu()
Application.Workbooks("A.xlsx").Activate
With Worksheets("Tabelle1")
For peter = 2 To 500
If Cells(peter, 12).Value = "" Then
Exit For
End If
Next
End With
Susi = peter - 1
Application.Workbooks("B.xlsx").Activate
With Worksheets("TEMPLATE")
For Ilka = 2 To 500
If Cells(Ilka, 1).Value = "" Then
Exit For
End If
Next
End With
Herbert = Ilka - 1
Application.Workbooks("A.xlsx").Activate
zeile = 2
zeele = 2
With Worksheets("Tabelle1")
For Petra = 2 To Susi
Cells(Petra, 13).Copy
Application.Workbooks("B.xlsx").Activate
Cells(1, 15).Select
ActiveSheet.Paste
With Workbooks("B.xlsx").Worksheets("TEMPLATE")
For Georg = 2 To Herbert
Cells(Georg, 12).Select
If InStr(ActiveCell.Value, Cells(1, 15).Value) > 0 Then
ActiveCell.Offset(0, -5).Select
ActiveCell.Copy
Application.Workbooks("Wechsel.xlsx").Activate
Cells(Petra, 14).Select
ActiveSheet.Paste
Exit For
End If
Next
End With
Next
End With
End Sub