Hallo Alex,
Hallo Stefan,
vielleicht hab ich ein biĂchen miĂverstĂ€ndlich geschrieben,
was ich wirklich brauch. Aber Dank eurer Hilfe bin ich jetzt
selbst weitergekommen. Hier der Code, den ich mir erstellt
hab.
Na das ist doch chick 
Was ich genau brauche ist die erste Spalte meiner
Excel-Tabelle mit der mir unbekannten Usernummer und dann die
zweite Spalete mit dem mir unbekannten Usernamen. Beides aus
dem Html-Text der Seite entnommen, da es sich um Hyperlinks
handelt, die auf der Seite selbst nicht so angezeigt werden.
Hmm, du lÀdst doch die Seite. Die Daten hast du dann ja.
Wie das eintragen bei Excel geht, das weiss ich nicht 
Ich habe mich damit aber noch nie auseinander gesetzt 
Aber wenn du die daten eintraegst, je nachdem welche Variante du gewaehlt hast, so hast du doch bereits die Daten und kannst damit weiter arbeiten 
Sonst könnte ich natĂŒrlich gezielt nach den Daten suchen, so
habe ich jetzt einfach nach den Strichen gesucht und dann nach
der Zahl etc. - jetzt ist die Ausgabe richtig.
Ok, wenn die Ausgabe passt, denn ist es ja ok 
Nachdem automatisch einige Webseiten durchsucht werden sollen,
wĂ€re ggf. noch zu prĂŒfen, was passiert, wenn eine Webseite
leer ist. Bzw. bei Fehlermeldungen (âKeine Seite gefundenâ)
weiterzumachen.
Die Function, liefert dir den Inhalt der Seite.
Ist die Seite leer, so ist auch der Inhalt den du zurueckbekommst ="" und deine Suche sollte nichts finden. Alternativ kannst du hier die LĂ€nge abfragen und entsprechend darauf agieren 
Private Sub CommandButton1_Click()
'Variablen setzen
Dim po1 As Long
Dim po2 As Long
Dim Txt As String
Dim strUsernummer As String
Dim strUsername As String
Dim strZĂ€hler As String
Dim i As Integer
Dim a As Integer
Dim b As Integer
Dim intTextlÀnge As Integer
Dim intDifferenz As Integer
Dim intZĂ€hler As Integer
intZĂ€hler = 1
'Webseite auslesen
Txt = GetDataFromUrl(TextBox1.Text)
'Falls Webseite nicht leer, Titel und Inhalt bestimmen &
anzeigen
If Txt ââ Then
Label1.Caption = Txt
po1 = InStr(Txt, ââ) + 7 'Anfang des Titels
suchen, 7 ist die lÀnge des Tags
po2 = InStr(po1, Txt, ââ) 'Ende des Titels
suchen
Label2.Caption = Mid(Txt, po1, po2 - po1)
intTextlÀnge = Len(Txt)
For a = 1 To intTextlÀnge 'Schleife von Beginn des Textes
bis zum Ende
If Mid(Txt, a, 2) = âââ Then 'Es werden zwei Striche
gefunden
If IsNumeric(Mid(Txt, a - 9, 9)) Then 'die letzten 9
Zeichen vor den Strichen ist eine Nummer
strUsernummer = Mid(Txt, a - 9, 9)
For b = a + 2 To intTextlÀnge 'Schleife vom
Treffer bis zum Ende
If Mid(Txt, b, 2) = âââ Then 'Die zweiten
Striche werden gefunden
If Mid(Txt, b + 2, 7) = âProfileâ Then
GoTo ZweiteBegrenzungGefunden 'Aus der
Schleife raus
End If
GoTo DochKeinTreffer
End If
Next b
ZweiteBegrenzungGefunden:
intDifferenz = b - (a + 2) 'Zeichen zwischen
ersten und zweiten Strichen
strUsername = Mid(Txt, a + 2, intDifferenz)
Worksheets(âTabelle1â).Range(âAâ &
intZĂ€hler).Value = strUsername
Worksheets(âTabelle1â).Range(âBâ &
intZĂ€hler).Value = strUsernummer
intZĂ€hler = intZĂ€hler + 1
End If
End If
DochKeinTreffer:
Next a
End If
End Sub
Private Function GetDataFromUrl(Url As String) As String
Dim IE As Object
Dim Tm As Double
Dim Wt As Single
Wt = 5 'Wartezeit = 5 Sekunden
Set IE = CreateObject(âInternetExplorer.Applicationâ)
IE.Visible = False â Nicht Sichtbar!
IE.Navigate Url â Url laden
Tm = Timer
Do
If Timer - Tm > Wt Then
GetDataFromUrl = ââ
MsgBox âWebsite konnte nicht geladen werdenâ, vbCritical,
âFehler beim Ladenâ
Exit Function
End If
DoEvents
Loop Until IE.readystate = 4 â Seite fertig geladen
GetDataFromUrl = IE.document.DocumentElement.innerhtml
IE.Quit
Set IE = Nothing
End Function
Ich habe mir den Quelltest net genau angeschaut.
Was mir aber auffaellt sind folgende sachen
1:
Du declarierst eine Variable (intTextlÀnge), weisst ihr einen Wert zu und arbeitest mit ihr. Warum?
for a=1 to len(txt) '-\> Tut es auch!
Warum also nuetzlichen Speicher verschwenden?
2:
Du durchlaeufst den Text Zeichen fĂŒr Zeichen. Warum?
Das nimmt nur unnötige Rechenzeit in Anspruch 
Um die Position eines Zeichens zu erhalten, bietet sich hervorragend der Befehl INSTR an!
Also warum so umstaendlich und den Quelltest zu aufblÀhen lassen ?
3:
Du verwendest Sprungmarken! Davon rate ich dir tuenlichst ab!
4: So wie ich dich verstanden habe, ist immer zwischen den Werten die folgende Zeichenfolge âââ
Warum also nicht einfach den Befehl Split verwenden?
Hast du dir mal die von mir geposteten Varianten angeschaut?
Schau mal. So wie ich das erkenne schaut doch dein txt so aus
123456789--Alex--Profile--987654321--Stefan--Profile
Schau dir mal den Befehl Split an!
Dim vData As Variant
Dim I As Long
vData = Split(txt, "--")
If IsArray(vData) Then
For I = LBound(vData) To UBound(vData)
'hier nun die Zuweisung an Excel
'Ich gehe mal von aus, das das von dir stimmt
If I Mod 3 2 Then Worksheets("Tabelle1").Range(Chr(I Mod 3 + 65) & CStr(Fix(I / 3) + 1)).Value = vData(I)
Next I
End If
Willst du eine PrĂŒfung einbauen, ob es sich um eine Zahl bei der Usernummer handelt. So könntest du das Demo wiefolgt erweitern
Dim vData As Variant
Dim I As Long
vData = Split(txt, "--")
If IsArray(vData) Then
For I = LBound(vData) To UBound(vData)
Select case i mod 3
case 0
'Hier ist die Usernummer
'Daten zuweisen
case 1
'Hier der Username
if isnumeric(vdata(i)) then ... ' hier die daten zuweisen
case 2
'Hier das Profil
'irgendwas damit machen :smile:
end select
Next I
End If
Ist nicht getestet, sollte aber klappen 
So nun schaue dir mal beide Routinen an. Welche ist schneller. Welche ost speicherschonender?
MfG Alex