Webabfrage mit .Range und .Find

06/02/2008 - 22:16 von Christian Papp | Report spam
Hallo zusammen,

ich habe ein Problem beim Auslesen einer Webseite. Ich hatte ein stabil
laufendes Makro mit folgender sub:

'1.
str = Sheets(sID).Range("I" & iOffset + 10)
str = Replace(str, "Preis: ", "")
Range("D" & iRng).FormulaR1C1 = str
str = Sheets(sID).Range("I" & iOffset + 11)
str = Replace(str, "Versand: ", "")
Range("E" & iRng).FormulaR1C1 = str
str = Sheets(sID).Range("C" & iOffset + 10)
str = Replace(str, "Anbieter: ", "")
i = InStr(str, "Informationen")
If (i <> 0) Then str = Left(str, i - 1)
Range("F" & iRng).FormulaR1C1 = str

'2.
str = Sheets(sID).Range("I" & iOffset + 17)
str = Replace(str, "Preis: ", "")
Range("G" & iRng).FormulaR1C1 = str
str = Sheets(sID).Range("I" & iOffset + 18)
str = Replace(str, "Versand: ", "")
Range("H" & iRng).FormulaR1C1 = str
str = Sheets(sID).Range("C" & iOffset + 17)
str = Replace(str, "Anbieter: ", "")
i = InStr(str, "Informationen")
If (i <> 0) Then str = Left(str, i - 1)
Range("I" & iRng).FormulaR1C1 = str

usw. Mein Problem ist nun, das die Webseite umgestaltet worden ist und
unterhalb der einzelnen Elemente nun noch unterschiedlich langer Text
eingefügt wurde. Ich muss nun also innerhalb der Seite nach den
Schlüsselfeldern "Preis:","Versand:" und "Anbieter:" etc. suchen. Bei mir
zeigt der VBA-Debugger immer einen Fehler an. Weiss jemamd wie es geht?

Viele Dank

C.B.
 

Lesen sie die antworten

#1 stefan onken
07/02/2008 - 13:41 | Warnen spam
On 6 Feb., 22:16, "Christian Papp" wrote:
Hallo zusammen,

ich habe ein Problem beim Auslesen einer Webseite. Ich hatte ein stabil
laufendes Makro mit folgender sub:

        '1.
            str = Sheets(sID).Range("I" & iOffset + 10)
            str = Replace(str, "Preis: ", "")
            Range("D" & iRng).FormulaR1C1 = str
            str = Sheets(sID).Range("I" & iOffset + 11)
            str = Replace(str, "Versand: ", "")
            Range("E" & iRng).FormulaR1C1 = str
            str = Sheets(sID).Range("C" & iOffset + 10)
            str = Replace(str, "Anbieter: ", "")
            i = InStr(str, "Informationen")
            If (i <> 0) Then str = Left(str, i - 1)
            Range("F" & iRng).FormulaR1C1 = str




hallo Christian,
vorab: Str ist eine von Excel verwendete Bezeichnung, verwende lieber
etwas anderes wie zB strText.
Evtl kannst du die Find-Methode nutzen, um in Spalte I (?) den Text
Preis zu suchen, etwa so:

Set zelle = Sheets(sID).Range("I:I").Find("Preis:")
If Not zelle Is Nothing Then
Range("D" & iRng) = Replace(zelle, "Preis: ", "")
Range("E" & iRng) = Replace(zelle.Offset(1, 0), "Versand: ", "")
strText = Sheets(sID).Range("C" & zelle.Row)
strText = Replace(strText, "Anbieter: ", "")
i = InStr(strText, "Informationen")
If (i <> 0) Then strText = Left(strText, i - 1)
Range("F" & iRng) = strText
Else
MsgBox "Preis: nicht gefunden"
End If
End Sub

Gruß
stefan

Ähnliche fragen