VBA Werte in Spalte suchen

Betrifft: VBA Werte in Spalte suchen
von: Sergen I.
Geschrieben am: 15.09.2020 07:38:09
Guten Morgen,
ich benötige Hilfe bei meinem VBA Code..
Und zwar habe ich eine Suchfunktion eingebaut. Der eingegebene Wert wird in der 1. Spalte gesucht und z.B. der Wert 3 Spalten weiter rechts ausgegeben. Das habe ich mit der Funktion Offset gemacht. Nun möchte ich jedoch, dass ich die Spalte mit dem "Namen" anspreche, da es sein kann, dass in Zukunft der Wert nicht mehr in der Spalte 3 weiter rechts, sondern 7 Spalten weiter rechts stehen wird. Hier ein Ausschnitt wie ich es habe.
If Not Sachnummer Is Nothing Then 'Falls die Sachnummer gefunden wurde
Dim Spezifikation As Range 'setze Spezifikation als Variable
Dim beh?lter As Range 'setze beh?lter als Variable
Dim Prozent As Range 'setze Prozent als Variable
Dim L?nge As Range 'setze L?nge als Variable
Set beh?lter = Sheets("Sachnummern").Columns(1).Find(what:=TextBox1.Text, lookat:=xlWhole)
Set Spezifikation = Sheets("Spezifikationen").Columns(1).Find(what:=Sachnummer.Offset(0, 6).Value, lookat:=xlWhole)
If Not Spezifikation Is Nothing Then 'Wenn das Feld der Spezifikation nicht leer ist, dann
Sheets("Kontrolle").TextBoxR.Caption = Spezifikation.Offset(0, 2).Value
Sheets("Kontrolle").TextBoxa.Caption = Spezifikation.Offset(0, 3).Value
Sheets("Kontrolle").TextBoxB.Caption = Spezifikation.Offset(0, 4).Value
Sheets("Kontrolle").TextBoxc.Caption = Spezifikation.Offset(0, 5).Value
Vielen dank im Voraus
MFG Sergen

Betrifft: AW: VBA Werte in Spalte suchen
von: ChrisL
Geschrieben am: 15.09.2020 08:07:16
Hi
Ich vermute in etwa so...
Sachnummer.Offset(0, Range("myName").Column - 1).Value
cu
Chris

Betrifft: AW: VBA Werte in Spalte suchen
von: Sergen I.
Geschrieben am: 15.09.2020 08:15:15
Hallo, erst mal vielen Dank für die schnelle Rückmeldung.
Leider funktioniert es so auch nicht. Es wird folgende Fehlermeldung angezeigt:
Die Methode range für das Objekt _Global ist fehlgeschlagen. :(

Betrifft: AW: VBA Werte in Spalte suchen
von: fcs
Geschrieben am: 15.09.2020 08:45:45
Hallo Sergen,
du musst dann vor der Zeile mit dem Offset die Spalte mit dem Namen suchen und dann den Offset entsprechend anpassen.
LG
Franz
Sub aa()
Dim Spezifikation As Range 'setze Spezifikation als Variable
Dim behälter As Range 'setze behälter als Variable
Dim Prozent As Range 'setze Prozent als Variable
Dim Länge As Range 'setze L?nge als Variable
Dim lngspalte As Long
If Not Sachnummer Is Nothing Then 'Falls die Sachnummer gefunden wurde
Set behälter = Sheets("Sachnummern").Columns(1).Find(What:=TextBox1.Text, lookat:=xlWhole)
lngspalte = fncSpalte(wks:=Worksheets("Spezifikation"), zeile:=1, varSuch:="Textxy")
If lngspalte = 0 Then Exit Sub
Set Spezifikation = Sheets("Spezifikationen").Columns(1).Find(What:=Sachnummer.Offset(0, _
lngspalte - 1).Value, lookat:=xlWhole)
If Not Spezifikation Is Nothing Then 'Wenn das Feld der Spezifikation nicht leer ist, dann
Sheets("Kontrolle").TextBoxR.Caption = Spezifikation.Offset(0, 2).Value
Sheets("Kontrolle").TextBoxa.Caption = Spezifikation.Offset(0, 3).Value
Sheets("Kontrolle").TextBoxB.Caption = Spezifikation.Offset(0, 4).Value
Sheets("Kontrolle").TextBoxc.Caption = Spezifikation.Offset(0, 5).Value
'...
'...
End If
End If
End Sub
Function fncSpalte(wks As Worksheet, zeile As Long, varSuch) As Long
'Ermittelt in der Zeile des Tabellenblatts die Nummer der Spalte mit dem Suchbegriff
Dim rngSpalte As Range
With wks
Set rngSpalte = .Rows(zeile).Find(What:=varSuch, LookIn:=xlValues, lookat:=xlWhole)
End With
If rngSpalte Is Nothing Then
fncSpalte = 0
MsgBox "Suchtext """ & varSuch & """ in Zeile " & zeile & " in Blatt """ & wks.Name _
& """ nicht gefunden", vbOKOnly, "Spaltentitel suchen"
Else
fncSpalte = rngSpalte.Column
End If
End Function
Beiträge aus dem Excel-Forum zum Thema "VBA Werte in Spalte suchen"