Problem bei Makro in Funktion aufrufen

Bild

Betrifft: Problem bei Makro in Funktion aufrufen
von: Johannes Kappler
Geschrieben am: 30.07.2015 12:26:41

Hallo,
ich habe folgendes Problem:
Ich möchte, dass eine Makro automatisch startet, sobald eine Bedingung erfüllt ist (dh. über WENN funktion) Hierzu habe ich folgende Funktion und Makro geschrieben:

Function makro_ke()
Makro1_ke
End Function
Sub Makro1_ke()
'
' Makro1_ke Makro
'
'
    Range("B3").Select
    Selection.Copy
    Range("E4").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
die WENN Funktion lautet exemplarisch:
=WENN(H1=I1;makro_ke();"nichts")
Selbst wenn die Bedingung nun erfüllt ist, passiert aber nichts. Das heisst die Makro wird nicht ausgeführt. Kann mir hier einer weiterhelfen? Ich muss dazu sagen, dass ich leider kein Excel Profi bin.
Vielen Dank im Voraus für die Hilfestellungen!
Liebe Grüße!

Bild

Betrifft: AW: Problem bei Makro in Funktion aufrufen
von: Bertram
Geschrieben am: 30.07.2015 12:37:39
Hallo Johannes,
warum nicht in E4
=WENN(H1=I1;B3;"")
Gruß
Bertram

Bild

Betrifft: AW: Problem bei Makro in Funktion aufrufen
von: Johannes Kappler
Geschrieben am: 30.07.2015 12:44:13
Hallo,
das Problem ist, dass der Wert, der durch die Makro kopiert und eingefügt wird, statisch sein soll. Das heisst, nach der Makro soll hier eine feste Zahl stehen, die nicht mehr durch eine Formel verändert werden soll. B3 dagegen ist dynamisch und wird jeden Monat einmal verändert.
Es geht darum, dass ich eine Liste automatisieren möchte, bei der sich jeden Monat B3 ändert. Der Wert von B3 soll aber dennoch festgehalten werden, und zwar für jeden einzelnen Monat, dh. 12x im Jahr.
Konkret soll die Makro für jeden Monat immer dann ausgeführt werden, wenn der Monat dem aktuellen Monat entspricht. Ich hoffe das ist nicht allzu verwirrend, ich fürchte allerdings schon :/

Bild

Betrifft: AW: Problem bei Makro in Funktion aufrufen
von: Bertram
Geschrieben am: 30.07.2015 13:00:15
Hallo,
falls ich das richtig verstehe, dann evtl. so:

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Address(0, 0)
    Case Is = "I1", "H1"
        If Range("I1").Value = Range("H1").Value Then
            Range("E4").Value = Range("B3").Value
        End If
End Select
End Sub

Gruß
Bertram

Bild

Betrifft: AW: Problem bei Makro in Funktion aufrufen
von: Rudi Maintaire
Geschrieben am: 30.07.2015 12:59:47
Hallo,
das geht nicht.
du kannst beim Öffnen der Mappe per Makro prüfen ob die Bedingung passt und dann kopieren.
z.B.

Private Sub Workbook_Open()
  With Sheets(1)
    If .Range("H1") = .Range("I1") Then
      .Range("B").Copy
      .Range("E4").PasteSpecial xlPasteValues
    End If
  End With
End Sub
Gruß
Rudi

Bild

Betrifft: AW: Problem bei Makro in Funktion aufrufen
von: Johannes Kappler
Geschrieben am: 30.07.2015 19:25:03
Danke für die schnellen Antworten! Ich werde morgen mal schauen, ob das so klappt!

Bild

Betrifft: AW: Problem bei Makro in Funktion aufrufen
von: Johannes Kappler
Geschrieben am: 31.07.2015 12:49:00
Habe das jetzt so implementiert, allerdings passiert beim öffnen des Excelblattes nichts. Muss ich
bei "With Sheets (1)" vielleicht noch irgendwie den Namen des Excelblattes hineinschreiben oder sonst irgendetwas beachten bevor ich eine Private Sub schreibe?
Danke im Voraus!!

Bild

Betrifft: Code unter DieseArbeitsmappe! owT
von: Rudi Maintaire
Geschrieben am: 31.07.2015 12:55:05


Bild

Betrifft: AW: Code unter DieseArbeitsmappe! owT
von: Johannes Kappler
Geschrieben am: 31.07.2015 13:03:13
Sorry, wie genau mache ich das?
Ich habe mit alt+F11 den Editor geöffnet und habe dort dann einfach den Code hineingeschrieben...
Bin wirklich ein Anfänger :/

Bild

Betrifft: AW: Code unter DieseArbeitsmappe! owT
von: Johannes Kappler
Geschrieben am: 31.07.2015 13:35:39
Okay habe den code unter die Arbeitsmappe geschrieben, funktioniert allerdings immer noch nicht...

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Problem bei Makro in Funktion aufrufen"