1.7k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,
ich bin in VBA nicht bewandert, aber ich denke hierfürt gibt es eine einfach Lösung:
Ich habe mehrere Tabellenblätter, in denen ich Texte und Dokumente organisiere.
Über eine Übersichtsseite kommt man mit einem Command-Button in einen bestimmten Bereich auf einer anderen Tabelle. Das habe ich bisher so gelöst:

Sub OpenArcelor()
Sheets("30 I").Select
Range("B6").Select
End Sub

30 I ist das Tabellenblatt und B6 die Zelle, wo ich hinspringen will.
Nun steht in Zelle B6 das Wort Arcelor.
Die Tabelle auf dem Blatt 30I ändert sich aber, da ich Zeilen einfüge und lösche.
Die Adresse B6 ist jetzt also nicht mehr richtig.
Anstatt nun jedes mal die Adresse zu ändern, möchte ich ein makro, dass die Spalte B des Tabellenblattes 30 I nach dem Wort Arcelor durchsucht und dann in diese Zelle springt.
Kann mir hierbei jemand helfen???? Tausend Dank im vorraus,
Vincent

6 Antworten

0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Vincent
Begriff "Arcelo" wird in Tabelle "30 I" nur einmal gesucht, wird er nicht gefunden, gibt es einen Hinweis.

Gruß
fedjo


Sub Finden()
Dim c, firstAddress
Dim strSuch As String, rngBer As Range
Sheets("30 I").Select
Set rngBer = Range("B2:B" & Range("B65536").End(xlUp).Row)
With rngBer
strSuch = "Arcelor"
If strSuch = "" Then
Exit Sub
End If
Set c = .Find(strSuch, LookIn:=xlValues)
If c Is Nothing Then
MsgBox "Eintrag nicht vorhanden"
Else
firstAddress = c.Address
Do
c.Activate
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End Sub
0 Punkte
Beantwortet von
Das Wort Arcelor gibt es nur einmal, stimmt.


Jaaaaa! das funzt! Vielen tausend Dank!
:-))))))))))))))))))))))))))))))))))))))))))))))))))))
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all :-)

da ja der suchbegriff immer vorhanden ist,haette ein einzeiler ausgereicht ohne abfrage bei nichtfund ^^

gruss nighty
0 Punkte
Beantwortet von
Hallo,
kann mir bitte nochmal jemand helfen,
ich hätte jetzt gerne ein Feld,
in dem ich ein gesuchtes Wort eingeben kann,
mit betätigen der Entertaste sollen dann die Tabellenblätter 1 I bis 30 I nach diesem Wort durchsucht werden.
Ist das Wort gefunden, bitte in dieses Feld springen.
Geht das auch?
Wahrscheinlich ist zu oben bereitgestelltem Makro keine zu große Änderung mehr vorzunehmen, ich kann's aber trotzdem nicht......
Danke im vorraus!
0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

Geht auch so:

Sub Finden()
Dim c, firstAddress
Dim strSuch As String, rngBer As Range
Sheets("30 I").Select
Set rngBer = Range("B2:B" & Range("B65536").End(xlUp).Row)
With rngBer
strSuch = InputBox("Suchtext", , Pnr)
If strSuch = "" Then
Exit Sub
End If
Set c = .Find(strSuch, LookIn:=xlValues)
If c Is Nothing Then
MsgBox "Eintrag nicht vorhanden"
Else
firstAddress = c.Address
Do
c.Activate
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End Sub


Änderung ist fett.

Gruß

Helmut
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo,
gesucht wird in allen Tabellen.

Gruß
fedjo

Sub Finden()
Dim ws As Worksheet
Dim c
Dim firstAddress As String
Dim secAddress
Dim GFound As Boolean
SSearch = InputBox("Suchen nach:", "Suchen in allen Tabellen", SSearch)
If SSearch = "" Then
End
End If
For Each ws In Worksheets
With ws.Cells
Set c = .Find(SSearch, LookIn:=xlValues, MatchCase:=False)
If Not c Is Nothing Then
GFound = True
ws.Select
c.Select
Do
GoTo ende
Loop While Not c Is Nothing And secAddress <> firstAddress And c.Address <> firstAddress
Else
End If
End With
Next ws
ende:
If GFound = False Then
MsgBox "Suchwert nicht gefunden "
End If
End Sub
...