Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Zelle suchen und Adresse als Variable

Betrifft: Zelle suchen und Adresse als Variable von: Leo Lück
Geschrieben am: 28.02.2020 14:49:28

Hallo Zusammen,


ich habe ein Problem, bei dem ich seit Stunden nicht weiter komme.


Ich suche die Möglichkeit, eine Zelle anhand ihres Inhalts zu finden und die Zelladresse (Die _ Spalte würde mir wahrscheinlich schon reichen) als Variable zu speichern, damit ich im nächsten Schritt einen bestimmten Wert in diese Zelle einfügen kann.

Sub Korektur()
'
' Korektur Makro
'
Dim art As String
Dim zelle1 As Range
Dim wert As Long

art = Sheets("Eingabe").Range("B6").Value
wert = Sheets("Eingabe").Range("C6").Value

Set Zelle1 = Sheets("Bestandsliste").Range("A1:A999").Find(what:=art, Lookat:=xlWhole, LookIn:=  _
_
xlValues, searchorder:=xlByRows)


sheets("Bestandsliste").Range(zelle1).Value = wert

Mein Problem ist, dass ich die Zelladresse nicht als Variable gespeichert bekomme.


Ich habe es bereits mit verschiedenen Möglichkeiten probiert und entweder ich bekomme die Fehlermeldung, dass das Objekt die Methode nicht unterstützt oder, wie in meinem Beispiel bekomme ich am Ende nicht die Zellenadresse, sondern meinen Suchbegriff in die Variable "zelle1".


Ich stehe momentan auf dem Schlauch, vielleicht kann mir hier jemand helfen?


Liebe Grüße,

Leonard

Betrifft: AW: Zelle suchen und Adresse als Variable
von: T
Geschrieben am: 28.02.2020 14:53:13

Hallo Leonhard,

Beisp:
Sub Korektur()
'
' Korektur Makro
'
Dim art As String
Dim zelle1 As Range
Dim zelle1adr As String
Dim wert As Long

art = Sheets("Eingabe").Range("B6").Value
wert = Sheets("Eingabe").Range("C6").Value

Set zelle1 = Sheets("Bestandsliste").Range("A1:A999").Find(what:=art, Lookat:=xlWhole, LookIn:= _
xlValues, searchorder:=xlByRows)
zelle1adr = zelle1.Address
MsgBox zelle1adr

Gruss Torsten

Betrifft: AW: Zelle suchen und Adresse als Variable
von: Leo Lück
Geschrieben am: 28.02.2020 15:17:53

Wow vielen Dank für die schnelle Hilfe!

Das Speichern der Adresse als Variable hat schon einmal funktioniert.

Kannst du mir sagen, was in deinen Augen den Unterschied gemacht hat?
Ich sehe da lediglich die Weitergabe der range variablen an einen string. Ist das nur für die msgbox?

Jetzt habe ich noch die Frage, wie ich mit den beiden variablen weitermache. Nehme ich die range variable und packe sie hier rein:
sheets("Bestandsliste").Range(zelle1).Value = wert
Das scheint nämlich nicht zu funktionieren, ich bekomme nicht einmal eine Fehlermeldung...

Wie würde das ganze aussehen, wenn ich nur die Reihe mit der Variable festlege und die Spalte als festen Wert nehme?


Trotzdem schon einmal vielen Dank, ich bin wenigstens einen Schritt weiter!

Betrifft: AW: Zelle suchen und Adresse als Variable
von: fcs
Geschrieben am: 28.02.2020 16:19:42

Hallo Leo,
die Variable mit der Zelladresse kannst du an beliebiger stelle im Code einbauen.

Allerdings kannst du auch direkt deine Variable zelle1 verwenden.

LG
Franz
Sub Korektur()
'
' Korektur Makro
'
    Dim art As String
    Dim zelle1 As Range
    Dim wert As Long
 
    art = Sheets("Eingabe").Range("B6").Value
    wert = Sheets("Eingabe").Range("C6").Value
 
    Set zelle1 = Sheets("Bestandsliste").Range("A1:A999").Find(what:=art, Lookat:=xlWhole, _
        LookIn:=xlValues, searchorder:=xlByRows)
    
    If zelle1 Is Nothing Then
        MsgBox "Wert """ & art & """ in Spalte A von ""Bestandsliste"" nicht gefunden!"
    Else
        zelle1.Value = wert
'        Sheets("Bestandsliste").Range(zelle1.Address).Value = wert
    End If

End Sub


Betrifft: AW: Zelle suchen und Adresse als Variable
von: onur
Geschrieben am: 28.02.2020 16:10:37

zelle1 ist doch schon ein Rangeausdruck.
Versuch das:
sheets("Bestandsliste").zelle1.Value = wert

Wenn nix gefunden wurde, gibt es natürlich eine Fehlermeldung.

Beiträge aus dem Excel-Forum zum Thema "Zelle suchen und Adresse als Variable"