Microsoft Excel

Herbers Excel/VBA-Archiv

Sverweis auf dynamischen bereich

Betrifft: Sverweis auf dynamischen bereich von: Renner
Geschrieben am: 28.10.2014 14:57:31

Hallo,
Ich habe einen Sverweis der mir Daten aus einem Datenblatt "Stammdaten" ausliest und in eine _
Textbox wiedergibt. Das Suchkriterium befindet sich in dem Datenblatt "Eingabe"

Nun möchte ich den Suchbereich dynamisch gestalten, da die Stammdaten nach und nach erweitert _
werden.Hier liegt das Problem.
Ich habe versucht die Vorgehensweise aus einer anderen dynamischen Funktion zu übernehmen, doch das klappt nicht.

Dieser Ausdruck funktioniert wie es sein soll
f_ausgabe.tb_Ferigungsanlage_ausgabe.Value = WorksheetFunction.VLookup(Eingabe.Cells(3, 1), _
Stammdaten.Range("A3:BA19"), 24, False)

Doch die Dynamisierung klappt nicht.  


Private Sub _Click()
Dim lza As Integer 
With Worksheets("Stammdaten")
    'letzte Zeile bestimmen
    lza = Cells(Rows.Count, "BA").End(xlUp).Row
 
'
'laden der Daten in die Ausgabemaske
f_ausgabe.tb_einlegeteil_ausgabe.Value = WorksheetFunction.VLookup(Eingabe.Cells(3, 1), _
Stammdaten.Range(Cells(3, 1), Cells(lza, 19)), 15, False)
 End With
End Sub




Ich bekomme immer einen "Fehler 9" bei With.. weiß aber nicht was ich beim Kopieren falsch  _
gemacht habe.
Kann mir einer sagen was da falsch ist?
Vielen Dank für eure Mühen
Gruß
Dima 


  

Betrifft: AW: Sverweis auf dynamischen bereich von: Rudi Maintaire
Geschrieben am: 28.10.2014 15:56:44

Hallo,
der . macht's.

Private Sub _Click()
Dim lza As Integer 
With Worksheets("Stammdaten")
    'letzte Zeile bestimmen
    lza = .Cells(.Rows.Count, "BA").End(xlUp).Row
 
'
'laden der Daten in die Ausgabemaske
f_ausgabe.tb_einlegeteil_ausgabe.Value = WorksheetFunction.VLookup(Eingabe.Cells(3, 1), _
.Range(.Cells(3, 1), .Cells(lza, 19)), 15, False)
 End With
End Sub
Aber wozu der Aufwand? Sverweis über komplette Spalten ist nicht schädlich.
VLookup(Eingabe.Cells(3, 1), Stammdaten.Range("A:BA"), 24, False)

Gruß
Rudi


  

Betrifft: AW: Sverweis auf dynamischen bereich von: fcs
Geschrieben am: 28.10.2014 16:13:52

Hallo Dima,

du musst die Referenz für alle Range- und Cells-Objekte vollständig setzen.
Bei einer With Objekt-Konstruktion durch das voranstellen von Punkten vor den Unterobjekten.

Zusäztlich solltest du prüfen, ob der in den Stammdaten gesuchte Wert in Spalte A einen Fehlerwert liefert, sonst gibt es auch einen Fehler-Abbruch für VLookup/bei der Wertzuweisung.

Gruß
Franz

Private Sub AA_Click()
  Dim lza As Integer
  Dim Wert As Variant
  With Worksheets("Stammdaten")
     'letzte Zeile bestimmen
     lza = .Cells(.Rows.Count, "BA").End(xlUp).Row
  
    Wert = Application.VLookup(Eingabe.Cells(3, 1), _
          .Range(.Cells(3, 1), .Cells(lza, 19)), 15, False)
  '
    'laden der Daten in die Ausgabemaske
    'prüfen, ob Suche nach Wert in Spalte A der Stammdaten einen Fehler liefert
    If IsError(Wert) Then
        f_ausgabe.tb_einlegeteil_ausgabe.Value = "#NV" ' = "nicht gefunden"
    Else
        f_ausgabe.tb_einlegeteil_ausgabe.Value = Wert
    End If
    
  End With
End Sub



  

Betrifft: AW: Sverweis auf dynamischen bereich von: Renner
Geschrieben am: 28.10.2014 17:02:59

Hallo Franz,
Danke für deinen Vorschlag.
Mit der Referenz sind die Punkte vor .Cells() gemeint, bin leider ein Leihe im Programmieren? Habe diese in einer ähnlichen Funktion gesetzt und die hat funktioniert.!!!! :) Danke!
Leider klappt es mit den Sverweis immer noch nicht. Bei With ist Schluss. Ich vermute ich mache irgendwas mit Worksheet falsch.Meine Excel-Datei hat mehrere Tabellen, vielleicht kommt Excel da durcheinander. oder ich definiere nicht richtig.
Gruß
Dima


  

Betrifft: AW: Sverweis auf dynamischen bereich von: Renner
Geschrieben am: 28.10.2014 20:23:28




  

Betrifft: AW: Sverweis auf dynamischen bereich von: Rudi Maintaire
Geschrieben am: 28.10.2014 23:57:30

Hallo,
dann gibt es das WS wohl nicht in der aktiven Mappe.

Gruß
Rudi


 

Beiträge aus den Excel-Beispielen zum Thema "Sverweis auf dynamischen bereich"