![]() |
Betrifft: Hilfe bei einem Code
von: Peter
Geschrieben am: 22.08.2014 15:31:44
Hallo,
ich habe folgenden Code.
Dabei soll, wenn in der Zelle A5 eine 1 steht, das Makro "Dax" und wenn nichts drin steht das Makro "Daxlöschen" ausgeführt werden.
Wenn jedoch in Zelle B5 eine 1 steht, soll eben das Makro "Mdax" und bei "" das Makro "Mdaxlöschen" ausgeführt werden.
Jetzt werden jedoch beide Makros ausgeführt. Also Dax + Mdax oder Daxlöschen und Mdaxlöschen, wenn in einer der Zellen A5 oder B5 oder C5 eine 1 oder "" steht.
Nun die Frage, wie kann ich das in dem Code eindeutig zuweisen?
Bin Anfänger in VBA und suche mir das alles irgedwie zusammen und versuche daraus zu lernen.
Jedoch bin ich gerade unter Zeitnot und wende mich deshalb an Euch.
Evtl. hat Ihr eine Idee.:-)
Grüße
Peter
Private Sub Worksheet_Change(ByVal Target As Range) Set Target = Intersect(Target, Range("A5:c5")) If Target Is Nothing Then Exit Sub If Target = 1 Then Application.EnableEvents = False Call Dax Application.EnableEvents = True Else If Target = "" Then Application.EnableEvents = False Call Daxlöschen Application.EnableEvents = True End If End If If Target = 1 Then Application.EnableEvents = False Call MDAX Application.EnableEvents = True Else If Target = "" Then Application.EnableEvents = False Call MDAXlöschen Application.EnableEvents = True End If End If End Sub
![]() ![]() |
Betrifft: AW: Hilfe bei einem Code
von: Hajo_Zi
Geschrieben am: 22.08.2014 15:36:08
Hallo Peter,
und welches bei B1 <>1 und <>""?
![]() ![]() |
Betrifft: AW: Hilfe bei einem Code
von: Peter
Geschrieben am: 22.08.2014 15:39:01
bei b5 = 1 soll "Mdax" und B5="" "Mdaxlöschen"
das soll später noch erweitert werden und für c5 soll dann eben ein weiteres Makro ausgeführt werden
D5 ebenso...etc:-)
![]() ![]() |
Betrifft: AW: Hilfe bei einem Code
von: Hajo_Zi
Geschrieben am: 22.08.2014 15:44:12
Gut Du möchtest meine Fragen nicht beantworten. Ich bin dann raus.
Option Explicit ' Dabei soll, wenn in der Zelle A5 eine 1 steht, das Makro "Dax" und wenn nichts drin steht das _ Makro "Daxlöschen" ausgeführt werden. ' Wenn jedoch in Zelle B5 eine 1 steht, soll eben das Makro "Mdax" und bei "" das Makro "Mdaxlö _ schen" ausgeführt werden. Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(False, Fals) = "A5" Then Application.EnableEvents = False If Target = 1 Then Dax If Range("B5") = 1 Then mdax ElseIf Range("B5") = "" Then Mdaxlöschen Else ' keine Aktion End If Dax ElseIf Target = "" Then Daxlöschen If Range("B5") = 1 Then mdax ElseIf Range("B5") = "" Then Mdaxlöschen Else ' keine Aktion End If Else ' keine Aktion End If Application.EnableEvents = True End If End SubGruß Hajo
![]() ![]() |
Betrifft: AW: Hilfe bei einem Code
von: Peter
Geschrieben am: 22.08.2014 15:51:42
ach meinst du, was passieren soll, wenn also was anderes als 1 oder "" in der Zelle B5 steht?
dann soll einfach nichts passieren.
Sorry, habe die Frage wohl nicht richtig verstanden. Wollte nicht unhöflich erscheinen.:-/
![]() ![]() |
Betrifft: AW: Hilfe bei einem Code
von: Peter
Geschrieben am: 22.08.2014 15:40:59
irgendwie evtl. muß ich auch einen genauen Bezug zu einer Zelle herstellen um das Makro auszuführen.
Heißt, wenn in A5 = 1 dann, call Dax, else A5 = "" dann "Daxlöschen"
für B5, c5 dann ebenso
![]() ![]() |
Betrifft: AW: Hilfe bei einem Code
von: Frank
Geschrieben am: 22.08.2014 17:14:22
Hallo Peter,
gut, dass Du versuchst Dich selber in VBA einzuarbeiten. Da wird Dir sicher gern geholfen.
Für mich vielleicht nochmal zum Mitmeisseln: In Zeile 5 darf immer nur in einer Zelle eine 1 stehen - wenn in B5 ne 1, dann in A5 und C5 und D5 etc ein ""? Und die Makros sollen ausgelöst werden, wenn sich ein Eintrag ändert?
Das würde heissen, beim obigen Beispiel, Du kannst nur für B5 das Makro für den Eintrag "" auslösen. Bei den anderen steht ja das "" schon drin.
Wenn dem so ist, musst Du zuerst allen anderen Zellen den Eintrag zuordnen, den sie haben sollen, wenn einer geändert wird - B5 auf 1, dann A5, C5, D5... auf "".
Du musst anhand der markierten Zelle feststellen, welches Makro gestartet werden soll - durch das Ändern des Eintrages kann sich ja mindestens ein anderer auch verändern (C5 vorher1 jetzt ""), was durch das Change-Ereignis auch erkannt und ausgewertet würde. In der Folge würde das Makro für C5 auf "" geändert auch ausgeführt werden.
Grüsse,
Frank
![]() |