Zellen markieren - riesen Problem?!

Hallo allerseits!

Ich habe mit folgenden Script nach zwei bestimmten Zellen gesucht und diese in der Variable „zelle1“ bzw. „zelle2“ abgespeichert.

Dim zelle1 As Long
Dim zelle2 As Long
With ActiveSheet
zelle1 = .Cells.Find(What:=„Differenz“, After:=Range(„A1“), _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
End With

With ActiveSheet
zelle2 = .Cells.Find(What:=„Tyco USA“, After:=Range(„A1“), _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
End With

Jetzt möchte ich von der einen bis zur anderen Zelle den gesamten Bereich markieren. Normal ginge das ja (glaube ich) so Range(„B5:I32“).Select Range(„I5“).Activate aus.

Nur jetzt will ich nicht „B5“ und „I32“ eingeben, sondern Excel soll den Wert aus der Variable zelle1 bzw. zelle2 nehmen.

Ich hab nur leider keine Ahnung wie das funktionieren soll (Anfänger) und habe gestern schon zwei Stunden mit diesem Problem verbracht.

Es wäre echt super wenn mir jemand von euch helfen könnte! Danke!


Zur Ausgangssituation:

Ich bekomme aus einem PPS System eine Textdatei getrennt mit Pipe-Zeichen, die ich nach Excel importiere. Da sich diese Datei öfters mal ändert, muss ich für die weiteren Berechnungen und Formatierungen in Excel ein DYNAMISCHEN Makro programmieren …

Hallo allerseits!

Ich habe mit folgenden Script nach zwei bestimmten Zellen
gesucht und diese in der Variable „zelle1“ bzw. „zelle2“
abgespeichert.

Dim zelle1 As Long
Dim zelle2 As Long
With ActiveSheet
zelle1 = .Cells.Find(What:=„Differenz“,
After:=Range(„A1“), _
SearchOrder:=xlByRows,
SearchDirection:=xlPrevious).Row
End With

With ActiveSheet
zelle2 = .Cells.Find(What:=„Tyco USA“,
After:=Range(„A1“), _
SearchOrder:=xlByRows,
SearchDirection:=xlPrevious).Row
End With

Jetzt möchte ich von der einen bis zur anderen Zelle den
gesamten Bereich markieren. Normal ginge das ja (glaube ich)
so Range(„B5:I32“).Select
Range(„I5“).Activate aus.

Versuch mal:

Range(„A“ & Zelle1 & „;A“ & Zelle2).Select

Danke für deine Antwort, aber es funktioniert leider nicht richtig.

Es kommt jetzt die Fehlermeldung:

Laufzeitfehler 1004

Die Methode 'Range für das Objekt ‚_Global‘ ist fehlgeschlagen.

Das ist jetzt der komplette Quellcode:

Sub Makro1()

Dim zelle1 As Long
Dim zelle2 As Long
With ActiveSheet
zelle1 = .Cells.Find(What:=„Differenz“, After:=Range(„A1“), _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
End With

With ActiveSheet
zelle2 = .Cells.Find(What:=„Tyco USA“, After:=Range(„A1“), _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
End With

Range(„A“ & zelle1 & „;A“ & zelle2).Select

End Sub

Es kommt jetzt die Fehlermeldung:
Laufzeitfehler 1004
Die Methode 'Range für das Objekt ‚_Global‘ ist
fehlgeschlagen.

Hi Matthias,

Option Explicit

Sub Makro1()
Dim Zelle1 As Range, Zelle2 As Range
On Error GoTo Fehler
With ActiveSheet
 Set Zelle1 = .Cells.Find(What:="Differenz", After:=Range("A1"), \_
 SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
 Set Zelle2 = .Cells.Find(What:="Tyco USA", After:=Range("A1"), \_
 SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
End With
Range(Zelle1.Address & ":" & Zelle2.Address).Select
Exit Sub
Fehler:
MsgBox "Begriff(e) nicxht gefunden"
End Sub

Gruß
Reinhard