Microsoft Excel

Herbers Excel/VBA-Archiv

VBA - Sverweis spezialfall | Herbers Excel-Forum


Betrifft: VBA - Sverweis spezialfall von: Helge Kuehn
Geschrieben am: 11.01.2010 11:21:44

Hallo, ich habe immer noch das problem von gestern!
Also als excelformel will ich genau das in VBA programmieren:

  • =IF(B24="","",IF(G24="",VLOOKUP(B24,$B:$G,6,FALSE),""))


  • mit dem Vergleichen bekomme ich das auch nicht hin, da so nur die letzte zeile beachtet wird.

    Bsp.

    Spalte B - Produktnummern
    Spalte G bis S - Description

    in spalte B stehen momentan 1000 nummern mit den description spalte G-S. Wenn ich nun 20 nummern an das ende der tabelle ohne description eintrage und das neu berechne, soll das makro die 20 nummer in der spalte B suchen. Falls vorhanden, soll es die description G-S uebernehmen, falls nicht vorhanden soll es die felder G-S frei lassen, damit ich die dann editieren kann.

    Das ist der beherige QT:

  • Sub CheckProduktNr()
    ' CheckProduktNr
      Dim ProduktNr, Zeile, ZellePNr As Range, wks As Worksheet
      Set wks = ActiveSheet
      With wks
        'Spalte 2 (B) Prüfen
        Zeile = .Cells(.Rows.Count, 2).End(xlUp).Row
        If Zeile > 2 Then
          ProduktNr = .Cells(.Rows.Count, 2).End(xlUp).Value
          Set ZellePNr = .Range(.Cells(3, 2), .Cells(Zeile - 1, 2)).Find(What:=ProduktNr, _
              LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
              MatchCase:=False, SearchFormat:=False)
          If ZellePNr Is Nothing Then
            'do nothing
          Else
            'Spalte 7(G) bis 14(N) in letzte Zeile kopieren
            .Range(.Cells(ZellePNr.Row, 7), .Cells(ZellePNr.Row, 14)).Copy _
              Destination:=.Cells(Zeile, 7)
          End If
        End If
      End With
    End Sub


  • der sucht zwar in der liste (Liste von A3-A5000) gibt aber kein Ergebnis aus (mit mgsbox spring der bis in z5001). Wenn die liste aufgeloest ist funktoniert es. Weiter sucht er nur nach der letzten zeile in der spalte B. Also wenn ich 20 neue nummern eingebe werden 19 nicht beachtet.

    Ich hab inzwischen aufgegeben und hab einiges versucht, aber hier stosse ich wirklich an meine Grenzen.

      

    Betrifft: AW: VBA - Sverweis spezialfall von: U-Sch
    Geschrieben am: 11.01.2010 11:33:59

    Hallo,

    warum versuchst du es nicht mit dem VBA-VLOOKUP:

    If Range("B24") = "" Then
    variable = ""
    ElseIf Range("G24") = "" Then
    variable = Application.VLookup(Range("B24"), Range("$B:$G"), 6, False)
    Else
    variable = ""
    End If

    Viele Grüße
    Ulrich


    Beiträge aus den Excel-Beispielen zum Thema "VBA - Sverweis spezialfall"