Anzeige
Archiv - Navigation
848to852
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
848to852
848to852
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Marko ausführen, wenn bestimmte Zellen markiert

Marko ausführen, wenn bestimmte Zellen markiert
21.02.2007 11:09:44
Peter
Guten Tag
Ist es möglich ein Ereignismakro vorzusehen, das ausgeführt wird, wenn beispielsweise im Workbook in einer beliebigen Tabelle die Zellen A2:A3 und A5 ausgewählt werden.
Wenn ich also in einem Workbook zwanzig verschiedene Worksheets hätte, müsste die Markierung der erwähnten Zellen das Makro auslösen, egal in welcher Tabelle die Markierung erfolgt.
Danke für eine Rückmeldung.
Peter

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Marko ausführen, wenn bestimmte Zellen markiert
21.02.2007 11:23:18
Rudi
Hallo,
dafür gibt es in DieseArbeitsmappe das Ereignis
Workbook_SheetSelectionChange
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
AW: Marko ausführen, wenn bestimmte Zellen markiert
21.02.2007 13:04:33
Peter
Hallo Rudi
Ich habe das probiert, aber wohl zuviel gewurstelt, denn es passiert nix. Das Makro soll jedoch nur ausgeführt werden, wenn alle drei Zellen ausgewählt wurden.
Gruss, Peter
In diese Arbeitsmappe:
Privat

Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target as Range)
Set Target = Application.Intersect(Target; Range("A2:A3,A5"))
If Target is nothing then Exit Sub
on Error Goto ErrorHandler
Application.EnableEvents = False   'kein erneuter Aufruf, solange Markierung nicht stimmt / macht das Sinn?
Call Makro1
ErrorHandler:
Application.EnableEvents = True
End Sub

In Modul

Sub Makro1()
msgbox "Test"
End Sub

Anzeige
AW: Marko ausführen, wenn bestimmte Zellen markiert
21.02.2007 13:34:00
Harald
Hi,
hier ein Vorschlag (kommt ebenfalls ins Mappenmodul)

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim zelle As Range, x As Byte
x = 0
If Target.Count = 3 And Target.Column = 1 Then
For Each zelle In Selection
If zelle.Address(0, 0) = "A2" Then x = x + 1
If zelle.Address(0, 0) = "A3" Then x = x + 1
If zelle.Address(0, 0) = "A5" Then x = x + 1
Next
If x = 3 Then MsgBox "A2, A3 und A5 ausgewählt"
End If
x = 0
End Sub

Gruss Harald
AW: Marko ausführen, wenn bestimmte Zellen markiert
21.02.2007 13:47:00
Peter
Hallo Harald
Das ist perfekt! Vielen Dank.
Könntest du mir allenfalls noch mitteilen, was die Klammerbemerkung in der Zeile
If zelle.Address(0, 0)
bedeutet, resp. bewirkt?
Danke, Peter
Anzeige
AW: Marko ausführen, wenn bestimmte Zellen markiert
21.02.2007 13:58:00
Harald
Hi,
ohne die (0,0) kommt die Adresse mit Dollarzeichen
.address = $A$1
.address(0,0) =A1
Gruss Harald
Danke Harald, owt
21.02.2007 14:05:26
Peter
AW: Danke für die Rückmeldung, owt
21.02.2007 14:08:15
Harald
Gruss Harald
AW: Marko ausführen, wenn bestimmte Zellen markiert
21.02.2007 13:48:32
haw
Hallo Peter,

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ber As Range
Set ber = Range("A2:A3,A5")
If Target.Address = ber.Address Then test
End Sub

Sub test()
MsgBox "Korrekte Auswahl!"
End Sub
Gruß Heinz
AW: Marko ausführen, wenn bestimmte Zellen markiert
21.02.2007 14:54:30
Peter
Sali Heinz
Sieht interessant aus. Funktioniert jedoch bei mir (noch?) nicht.
Weshalb wohl?
Gruss, Peter
AW: Marko ausführen, wenn bestimmte Zellen markiert
21.02.2007 18:02:00
Peter
def. Lösung 2. Ansatz noch offen
AW: Marko ausführen, wenn bestimmte Zellen markiert
22.02.2007 07:11:00
haw
Hallo Peter,
Nach ein paar Tests habe ich festgestellt, dass es auf die Reihenfolge der Markierung ankommt.
Wenn ich zuerst A2 und A3 (in einem) und dann A5 markiere funktioniert meine Lösung.
Wenn ich aber zuerst A5 und dann A2 und A3 markiere ist laut Excel die Adresse nicht A2:A3, A5 sondern eben A5, A2:A3.
Wenn man nun A2 - Strg+A3 - Strg+A5 nimmt, dann ist die Adresse A2, A3, A5 und dann reagiert Excel wieder nicht.
D.h. man muss eben alle Varianten der Markierungsmöglichkeiten anfragen, was wiederum recht umständlich ist.
z.B.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ber As Range, ber2 As Range
Set ber = Range("A2:A3,A5")
Set ber2 = Range("A5,A2:A3")
If Target.Address = ber.Address Or Target.Address = ber2.Address Then test
End Sub

Eventuell
Gruß Heinz
Anzeige
AW: Marko ausführen, wenn bestimmte Zellen markiert
22.02.2007 07:36:53
Peter
Guten Tag Heinz
Dein Makro läuft so bei mir nicht, wenn ich jedoch die erste Zeile ändere in
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
dann funktioniert es.
Ich stelle in einem neuen Beitrag nochmals die Frage, wie der Code lauten muss, dass die Markierungsreihenfolge keine Rolle spielt, denn die hier erwähnten 3 Felder sind nur beispielhaft, es können auch eine ganze Menge sein.
Vielen Dank und Gruss, Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige