227 Aufrufe
in Tabellenkalkulation von jelena Experte (1.1k Punkte)

Guten Tag, kann mir bitte jemand das folgende Makro zusammenführen, sodass ich es nur mit denselben Schaltknopf ausführen kann. Danke

Sub Aus()
    ActiveSheet.Shapes(Application.Caller).DrawingObject.Text = "Aus"
    Range("L349:L350").Select
    Selection.ClearContents
    Range("o348").Select
End Sub
Sub Ein()
    ActiveSheet.Shapes(Application.Caller).DrawingObject.Text = "Ein"
    Range("L349").Select
    ActiveCell.FormulaR1C1 = "x"
    Range("L350").Select
    ActiveCell.FormulaR1C1 = "x"
    Range("o348").Select
End Sub

7 Antworten

0 Punkte
von computerschrat Profi (33.8k Punkte)

Hallo Jelena,

das sollte über ein drittes Makro funktionieren, das die beiden Makros aufruft:

Sub Zusammenführung()
    Call Aus
    Call Ein
End 

Gruß computerschrat

0 Punkte
von jelena Experte (1.1k Punkte)
Hallo computerschrat, bitte das komplette vba aufschreiben. Danke
0 Punkte
von computerschrat Profi (33.8k Punkte)

Hallo Jelena,

ich war davon ausgegangen, dass du die zwei Makros Ein und Aus schon hast und beide mit einem dritten Makro aufrufen möchtest.

Wenn du nur ein einzelnes Makro haben möchtest, schreib einfach die Befehlszeilen der beiden Makros in einem einzigen Makro zusammen:

Sub AusEin()
    ActiveSheet.Shapes(Application.Caller).DrawingObject.Text = "Aus"
    Range("L349:L350").Select
    Selection.ClearContents
    Range("o348").Select
    ActiveSheet.Shapes(Application.Caller).DrawingObject.Text = "Ein"
    Range("L349").Select
    ActiveCell.FormulaR1C1 = "x"
    Range("L350").Select
    ActiveCell.FormulaR1C1 = "x"
    Range("o348").Select
End Sub

Gruß computerschrat

0 Punkte
von jelena Experte (1.1k Punkte)
Hallo computerschrat, habe mich wohl nicht genau ausgedrückt, beim ersten klick sollte das x in Spalte L349 und L350 gelöscht werden (im Schaltknopf der Text Aus) und beim zweiten klick sollte das x in Spalte L349 und L350 wieder eingefügt werden (im Schaltknopf der Text Ein). Danke
0 Punkte
von computerschrat Profi (33.8k Punkte)
Hallo Jelena,

also brauchst du ein Wechselmakro. Da bin ich nicht der richtige Ansorechpartner, weil ich mit VBA nie wirklich gearbeitet habe.

Im Prinzip müsstest du eine Variable global definieren, damit sie über die Laufzeit der Makros hinaus gültigkeit behält. Diese Variable beim Start von Excel auf den Wert 0 initialisieren.

Diese Variable müsstest du bei Aufruf des Makros abfragen und über eine If-Then-Else Abfrage bei Variable = 0  EIN und bei Variable = 1  AUS starten. Anschließend muss die Variable dann jeweils auf den anderen Wert gesetzt werden.

Ich hoffe, es findet sich hier noch jemand mit echten VBA Kenntnissen.

Gruß computerschrat
0 Punkte
von
Bearbeitet
Nicht getestet!

Sub Umschalten()
Dim btn As Shape
Set btn = ActiveSheet.Shapes(Application.Caller)
If btn.DrawingObject.Text = "Ein" Then
' --- AUS ---
btn.DrawingObject.Text = "Aus"
Range("L349:L350").ClearContents
Else
' --- EIN ---
btn.DrawingObject.Text = "Ein"
Range("L349").Value = "x"
Range("L350").Value = "x"
End If
Range("O348").Select
End Sub
0 Punkte
von jelena Experte (1.1k Punkte)

Hallo  Anonym, Danke

Deine Antwort

Dein angezeigter Name (optional):
Datenschutz: Deine Email-Adresse benutzen wir ausschließlich, um dir Benachrichtigungen zu schicken. Es gilt unsere Datenschutzerklärung.
Anti-Spam-Captcha:
Bitte logge dich ein oder melde dich neu an, um das Anti-Spam-Captcha zu vermeiden.
...