Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Typen unverträglich VBA
#1
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!
Antwortento top
#2
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.
lg Chris
Feedback nicht vergessen.
3a2920576572206973742064656e20646120736f206e65756769657269672e
 [Bild: v.gif]

Antwortento top
#3
Für Neulinge: Excel-VBA für Dummies: Amazon.de: John Walkenbach, Judith Muhr: Bücher
Antwortento top
#4
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
Antwortento top
#5
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.
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste