Clever-Excel-Forum

Normale Version: VBA Variable in Formel übergeben
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo allerseits,

Heute habe ich mich gefragt, wie ich den Inhalt einer Variablen in meinem VBA Code in eine Formel einbauen kann, mit der ich eine Zelle füllen möchte.

Mein aktueller Code beinhaltet folgendes :
Code:
Dim WS As Long
Dim Benutzererfassung As String
Benutzererfassung = "=WENNNV(WENN(SVERWEIS($B26;Gruppierung!F:F;1;FALSCH)=$B26;INDEX(Gruppierung!B:B;VERGLEICH($B26";Gruppierung!F:F;0));Error);""Nicht zugeordnet"")"
    For WS = 200 To 250 Step 1
        If Cells(WS, 2) = "PLACEHOLDERWSE" Then
            If IsEmpty(Cells(WS - 1, 2).Value) = False Then
             Cells(WS, 3).FormulaLocal = Benutzererfassung
             Exit For
            End If
        End If
    Next WS
End Sub

Der Code an sich funktioniert soweit super, die Formel wird in die Zelle geschrieben und funktioniert auch soweit, nun möchte ich allerdings unter "Benutzererfassung" jeweils "$B26" durch etwas wie $B"&WS&" tauschen, kriege aber die Syntax wohl nicht ganz richtig hin.

Kann mir hier wohl jemand weiterhelfen?

LG, Majusch
Hallo Majusch,

der Gedanke war schon richtig, leider braucht VBA an der Stelle einige Leerzeichen.
Code:
$B" & WS & "

Gruß,
Lutz
Danke für die schnelle Antwort, habe jetzt folgende Anpassung getätigt : 
Code:
Benutzererfassung = "=WENNNV(WENN(SVERWEIS($B" & WS & ";Gruppierung!F:F;1;FALSCH)=$B" & WS & ";INDEX(Gruppierung!B:B;VERGLEICH($B" & WS & ";Gruppierung!F:F;0));Error);""Nicht zugeordnet"")"

Leider kriege ich jetzt folgenden Fehler :

Laufzeitfehler '1004'

Anwendungs- oder objektdefinierter Fehler


Anymore ideas? Für mich sieht alles richtig aus.

LG
Code:
c00 = "=WENNNV(WENN(SVERWEIS($B~;Gruppierung!F:F;1;FALSCH)=$B~;INDEX(Gruppierung!B:B;VERGLEICH($B~;Gruppierung!F:F;0));Error);""Nicht zugeordnet"")"

For j = 200 To 250 Step 1
  If Cells(j, 2) = "PLACEHOLDERWSE" Then
    If Cells(j- 1, 2)<>"" Then
      Cells(j, 3).FormulaLocal = replace(c00,"~",j)
      Exit For
    End If
  End If
Next
Das hats gelöst, ich danke vielmals  :97: