Clever-Excel-Forum

Normale Version: Typen unverträglich VBA
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich bin kompletter VBA Neuling, versuche mich nun aber daran. Folgendes Problem:

Ich möchte in Abhängigkeit des aktuellen Monats entscheiden welche Zelle ausgewählt wird (daher die vielen ifs). Zelle X21 enhält eine Formel zur Darstellung des aktuellen Monats als Zahl, B1-K1 enthalten die Monate ebenfalls als Zahl. Zelle AA2 soll dann unter dem aktuellen Monat (B2-K2) eingefügt werden, diese enthält eine etwas komplexere Formel.

Range("AA2").Select
    Selection.Copy
        If "B1=X21" Then Range("B2").Select Else
        If "C1=X21" Then Range("C2").Select Else
        If "D1=X21" Then Range("D2").Select Else
        If "E1=X21" Then Range("E2").Select Else
        If "F1=X21" Then Range("F2").Select Else
        If "G1=X21" Then Range("G2").Select Else
        If "H1=X21" Then Range("H2").Select Else
        If "L1=X21" Then Range("L2").Select Else
        If "M1=X21" Then Range("M2").Select Else
        If "I1=X21" Then Range("I2").Select Else
        If "K1=X21" Then Range("K2").Select Else
        Range("J2").Select
    Selection.Paste

Nun bekomme ich bereits beim ersten if den Fehler, dass die Typen unverträglich wären. Weiß jemand wie ich das beheben könnte? Google und Kollegen konnten mir bisher nicht weiterhelfen.

Danke schonmal für die Hilfe!
Hi,

Code:
Sub versiv()
Dim i As Integer
     For i = 2 To 13
        If Cells(1, i).Value = "X21" Then
        Range("AA2").Copy Cells(2, i)
        End If
    Next
If i = 14 Then Range("AA2").Copy Range("J2")
End Sub

Ich kann deinen Code schwer lesen...
 "B1=X21" was ist das? Ist X21 ein Wert?

Warum ist da noch ein M1 enthalten wenn es bis K gehen sollte?
Deine komplexere Formel würde ich auch gerne sehen.
Hi Chris,

(23.06.2016, 09:57)chris-ka schrieb: [ -> ]Ich kann deinen Code schwer lesen...
 "B1=X21" was ist das? Ist X21 ein Wert?

Warum ist da noch ein M1 enthalten wenn es bis K gehen sollte?
Deine komplexere Formel würde ich auch gerne sehen.

es ist auch L enthalten.

Ich sehe das Makro so:
Code:
Sub versiv()
Dim i As Integer
    For i = 2 To 13
       If Cells(1, i).Value = Cells(21, "X").Value  Then                                'oder Range("X21").Value Then     oder     Cells(21, 24).Value Then
       Range("AA2").Copy Cells(2, i)
       End If
   Next
If i = 14 Then Range("AA2").Copy Range("J2")
End Sub
Hallöchen,
Du kannst nicht einfach"B1=X21" schreiben. Du musst dem Makro schon irgendwie zu verstehen geben, dass es sich um Zellwerte handelt.
If range("b1").value = range("x21").value
Wobei man .value meist weglassen kann.