Thema Datum  Von Nutzer Rating
Antwort
Rot SVERWEIS mit dynamischen Variablen
19.07.2011 10:16:44 Gunnar
NotSolved
20.07.2011 12:54:16 Dekor
NotSolved
20.07.2011 20:58:42 Gast42820
NotSolved
21.07.2011 12:39:45 Dekor
*****
NotSolved
21.07.2011 16:00:10 Gast42281
NotSolved
21.07.2011 19:55:50 Dekor
NotSolved
26.07.2011 11:35:56 Gunnar
Solved

Ansicht des Beitrags:
Von:
Gunnar
Datum:
19.07.2011 10:16:44
Views:
1792
Rating: Antwort:
  Ja
Thema:
SVERWEIS mit dynamischen Variablen

Hallo zusammen,

als Entschuldigung vorweg: Ich bin noch in einem Anfangsstadium meiner VBA-Entwicklung...

Ich möchte in meinem Makro die Funktion "Application.WorksheetFunction.VLookup" so universell gestalten, dass ich die Funktion für weitere Zwecke nutzen kann. Daher möchte ich über Variablen die Funktionsargumente dynamisch auslesen.

Trotz mehrstündiger Forensuche bin ich anscheinend nicht in der Lage, die Variablen so einzubinden, dass es funktioniert - obwohl ich mittels Debuggen überprüft habe, dass ich die richtigen Werte in den Variablen habe.

Nachfolgend mein Code mit Kommentarzeilen, die hoffentlich erklären, was ich möchte:

Private Function StatusUeberInventarnummerSpiderVonNach(quellblatt As String, zielBlatt As String)
    Dim inventarNr As String, auswahl As String, zielSpalteABC As String, statusSpalteABC As String, _
    letzteQuellspalteABC As String, rechnerSpalteABC As String, statusErgebnis As String, _
    anzahlZielzeilen As Integer, zielSpalte As Integer, anzahlQuellzeilen As Integer
        
    'Anzahl Zeilen im Quellblatt ermitteln
    Sheets(quellblatt).Select
    anzahlQuellzeilen = ActiveSheet.UsedRange.Rows.Count
    'Suchmatrix definieren
    letzteQuellspalteABC = Split(Cells(1, ErmittleSpaltenanzahl).Address, "$")(1)
    auswahl = "A1:" & letzteQuellspalteABC & anzahlQuellzeilen ' daraus wird bspw. "A1:I3753"
    'Statusspalte ausfindig machen
    statusSpalteABC = ErmittlespaltenID("_Status", quellblatt) 'Funktion sucht in Zeile 1 nach der Überschrift - bspw. "G"
    rechnerSpalteABC = ErmittlespaltenID("Inventarnummer", quellblatt) 'Funktion sucht in Zeile 1 nach der Überschrift - bspw. "A"
    
    'Anzahl Zeilen im Zielblatt
    Sheets(zielBlatt).Select
    anzahlZielzeilen = Range("B65535").End(xlUp).Row 'von Spalte B65535 aus nach oben in die erste beschriebene Zeile springen
    
    'Daten rechts neben letzter befüllter Spalte einfügen
    zielSpalte = ErmittleSpaltenanzahl + 1 ' Funktion liefert die letzte gefüllte Spalte als Zahl zurück
    zielSpalteABC = Split(Cells(1, zielSpalte).Address, "$")(1) ' Umwandlung der Spaltenangabe in die Buchstabenbezeichnung
        
    'erste Zeile beschriften
    Cells(1, zielSpalte).Value = "Status"

    'nachfolgende Zeilen befüllen
    For i = 2 To anzahlZielzeilen
        inventarNr = Cells(i, 2).Value
        Worksheets(zielBlatt).Cells(i, zielSpalte).Value = Application.WorksheetFunction.VLookup(inventarNr, Sheets(quellblatt).[auswahl], statusSpalte, False)
    Next i

Der Aufruf erfolgt so

Call StatusUeberInventarnummerSpiderVonNach("Spider", "Rechner neu")


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot SVERWEIS mit dynamischen Variablen
19.07.2011 10:16:44 Gunnar
NotSolved
20.07.2011 12:54:16 Dekor
NotSolved
20.07.2011 20:58:42 Gast42820
NotSolved
21.07.2011 12:39:45 Dekor
*****
NotSolved
21.07.2011 16:00:10 Gast42281
NotSolved
21.07.2011 19:55:50 Dekor
NotSolved
26.07.2011 11:35:56 Gunnar
Solved