Registriert seit: 15.02.2017
Version(en): office2010
Hallo,
ich verwende in einer Tabelle 2 VBA-Codes, die jeweils allein genutzt voll funktionsfähig sind. Aber wenn ich beide Codes in die Tabelle kopiere, kommt es zu Fehlermeldung.
Wie gebe ich Excel zu verstehen, dass es zwei getrennte Codes sind
Danke und Gruß Markus
Code: Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Range("AO2:AU1560"), Target) Is Nothing Then
Application.EnableEvents = False
Target.Value = IIf(Target.Value = "x", "", "x")
Application.EnableEvents = True
Cancel = True
End If
End Sub
Code: Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$2" Then
If Target.Value <> "" Then
Call FliegendeBalloons
Target.ClearContents ' Löscht den Eintrag in Zelle A1 nach dem Starten des Codes
End If
End If
End Sub
Sub FliegendeBalloons()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Spende Michael") ' Arbeitsblattname "Sp Michael"
Dim balloon As Object
Dim i As Integer
For i = 1 To 10 ' Ändern Sie die Anzahl der gewünschten Ballons
Set balloon = ws.Shapes.AddShape(msoShapeOval, Rnd * 1000, Rnd * 500, 50, 50)
balloon.Fill.ForeColor.RGB = RGB(Rnd * 256, Rnd * 256, Rnd * 256)
balloon.Line.Visible = msoFalse
balloon.TextFrame.Characters.Text = "??"
balloon.Name = "Balloon" & i
Call AnimateBalloon(balloon)
Next i
End Sub
Sub AnimateBalloon(balloon As Object)
Dim topPosition As Double
topPosition = balloon.Top
Do While topPosition > 0
topPosition = topPosition - 1
balloon.Top = topPosition
DoEvents
Loop
balloon.Delete
End Sub
Registriert seit: 18.10.2020
Version(en): 365
Es wäre hilfreich, die genaue Fehlermeldung zu kennen, um das Problem besser zu verstehen.
Ohne die Fehlermeldung ist es schwierig, gezielte Ratschläge zu geben.
Falls du die Fehlermeldung zur Hand hast, teile sie bitte mit.
Es ist in der Tat sinnvoll, die Fehlermeldung zuerst zu erwähnen, da sie wichtige Hinweise auf das Problem geben kann.
Registriert seit: 15.02.2017
Version(en): office2010
beim Ausführen des ersten Codes wird Fehlermeldung siehe Anhang angezeigt.
beim Ausführen des zweiten Codes wird nichts angezeigt, es passier einfach nichts.
Hatte überlegt den zweiten Code einfach in ein Modul einzufügen - passiert aber auch nichts.
Gruß Markus
Registriert seit: 18.10.2020
Version(en): 365
Da reicht ChatGPT:
Die Fehlermeldung "Mehrdeutiger Name Worksheet_BeforeDoubleCLick()" tritt in VBA (Visual Basic for Applications) auf, wenn Sie versuchen, ein Ereignis in einem Arbeitsblatt (Worksheet) zu behandeln, das bereits anderswo im Code behandelt wird. Dies kann passieren, wenn Sie denselben Ereignisnamen in verschiedenen Modulen oder Arbeitsmappen verwenden. Um diesen Fehler zu beheben, müssen Sie sicherstellen, dass der Ereignisname eindeutig ist.
Hier sind einige Schritte, die Sie befolgen können, um diesen Fehler zu beseitigen:
Überprüfen Sie den Code im aktuellen Modul: Stellen Sie sicher, dass in dem aktuellen Modul oder der aktuellen Arbeitsmappe, in der Sie arbeiten, keine andere Prozedur mit dem Namen "Worksheet_BeforeDoubleCLick()" vorhanden ist. Wenn dies der Fall ist, sollten Sie eine der Prozeduren umbenennen, um Namenskonflikte zu vermeiden.
Überprüfen Sie andere Arbeitsmappen: Wenn Sie mit mehreren Arbeitsmappen arbeiten, stellen Sie sicher, dass es in keiner anderen geöffneten Arbeitsmappe eine Prozedur mit dem gleichen Namen gibt.
Überprüfen Sie den Arbeitsblattnamen: Stellen Sie sicher, dass Sie den richtigen Namen des Arbeitsblatts verwenden, auf dem Sie das Doppelklicken-Ereignis behandeln möchten. Der Ereigniscode sollte in dem Arbeitsblattmodul platziert werden, das das Ereignis auslöst.
Registriert seit: 15.02.2017
Version(en): office2010
Ja danke, eigentlich wollte ich an den Codes nichts ändern, weil diese funktionieren.
Dachte, dass man durch irgeneine Markierung beide problemlos voneinander trennen kann.
Google hat mir auch noch keine Antwort geliefert.
Ich tüftle morgen weiter
Registriert seit: 14.05.2017
Version(en): MS Office Prof. Plus 2016_32-Bit
07.10.2023, 21:18
(Dieser Beitrag wurde zuletzt bearbeitet: 07.10.2023, 21:22 von hddiesel.)
Hallo Markus,
habe nur eine Fehlermeldung, da du die folgende Zeile auskommentiert hattest:
Code: ' Set ws = ThisWorkbook.Sheets("Spende Michael") ' Arbeitsblattname "Sp Michael"
Ist die Werteingabe in C2 > "" fliegt der Ballon los und wechselt die Farbe und die Flug- Spalten.
Ich sehe auch keinen Grund, weshalb sich die Makros störten sollten.
Alle Makros befinden sich im Arbeitsblatt "Spende Michael"
Code: Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Range("AO2:AU1560"), Target) Is Nothing Then
Application.EnableEvents = False
Target.Value = IIf(Target.Value = "x", "", "x")
Application.EnableEvents = True
Cancel = True
End If
End Sub
Code: Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$2" Then
If Target.Value <> "" Then
Call FliegendeBalloons
Target.ClearContents ' Löscht den Eintrag in Zelle A1 nach dem Starten des Codes
End If
End If
End Sub
Code: Sub FliegendeBalloons()
Dim ws As Worksheet
Dim balloon As Object
Dim i As Integer
Set ws = ThisWorkbook.Sheets("Spende Michael") ' Arbeitsblattname "Sp Michael"
For i = 1 To 10 ' Ändern Sie die Anzahl der gewünschten Ballons
Set balloon = ws.Shapes.AddShape(msoShapeOval, Rnd * 1000, Rnd * 500, 50, 50)
balloon.Fill.ForeColor.RGB = RGB(Rnd * 256, Rnd * 256, Rnd * 256)
balloon.Line.Visible = msoFalse
balloon.TextFrame.Characters.Text = "??"
balloon.Name = "Balloon" & i
Call AnimateBalloon(balloon)
Next i
End Sub
Code: Sub AnimateBalloon(balloon As Object)
Dim topPosition As Double
topPosition = balloon.Top
Do While topPosition > 0
topPosition = topPosition - 1
balloon.Top = topPosition
DoEvents
Loop
balloon.Delete
End Sub
Gruß Karl
Folgende(r) 1 Nutzer sagt Danke an hddiesel für diesen Beitrag:1 Nutzer sagt Danke an hddiesel für diesen Beitrag 28
• Maximus
Registriert seit: 15.02.2017
Version(en): office2010
Moin Karl,
vielen lieben Dank für die Lösung. Klappt super!!
Damit die Zahl nach dem Fliegen der Ballons auch in C2 verbleibt habe ich folgende Zeile gelöscht:
Code: Target.ClearContents ' Löscht den Eintrag in Zelle C2 nach dem Starten des Codes
Das klappt dann auch.
Möchte aber gerne die Zellen erweitern. Ballons sollen fliegen, wenn ein Eintrag in C2:C11
Das funktioniert nicht.
Hast du ein Idee?
Hatte das so gedacht:
Code: Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$2:$C$11" Then
If Target.Value <> "" Then
Call FliegendeBalloons
End If
End If
End Sub
Gruß Markus
Registriert seit: 15.02.2017
Version(en): office2010
Code: If Target.Address = "C2:C11" Then
Hatte gedacht,dass eventuell so geändert werden müßte, klappt aber auch nicht
Registriert seit: 13.04.2014
Version(en): 365, 2019
Hi,
ich glaube, Du solltest Dir noch ein paar Grundlagen in VBA erarbeiten:
Code: Private Sub Worksheet_Change(ByVal Target As Range)
If intersect(Target, Range("$C$2:$C$11")) is nothing Then exit sub
If Target.Value <> "" Then Call FliegendeBalloons
End Sub
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Registriert seit: 15.02.2017
Version(en): office2010
Hallo Edgar,
perfekt danke!
Viele Grüße
|