Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
156to160
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
156to160
156to160
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Marko starten

Marko starten
12.09.2002 11:33:41
Dieter
Hallo,

ich habe 40 Tabellenblätter, in jedem Tabellenblatt muß immer bei einem Mausklick das gleiche Private Sub ausgeführt werden.
Ich önnte es jetzt in alle 40 Blätter kopieren - macht aber nicht viel Sinn.

Kann ich dieses Private Sub nicht nur einmal z.B. unter Modul ablegen und dann von jedem Tabellenblatt dieses Modul aufrufen lassen ?

Hat den Vorteil, wenn ich das Makro ändern muß, muß ich dieses nicht 40 mal tun.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Marko starten
12.09.2002 11:38:23
mathias r.
In ein Modul schreibst du die Sub und rufst diese von den Tabellenblättern auf. Das geht wie vermutet. Die Ereignisroutine muß jedoch in jedes Tabellenblatt. Z.B:

In den Tabellen-Klassenmodulen (40 mal)

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Call meinMakro
End Sub

Im Modul (nur einmal)

Sub meinMakro()
MsgBox "Na nu, wer ändert den da schon wieder was?!"
End Sub

Re: Marko starten
12.09.2002 11:53:53
Axel
Hallo,

Zusätzlich zum Vorschlag von Dieter gibt es noch die Alternative der Erzeugung eigener Ereignisprozeduren über die Anweisung "with Events". Dazu ist aber die Erstellung einer eigenen Klasse notwendig.

Ich habe eine Beispieldatei, aus der die notwendige Programmierung ersichtlich wird.

Wenn Du interessiert bist, sende mir eine Email.

Gruß
Axel
Email: wildspitze@gmx.de

Anzeige
Re: Marko starten
12.09.2002 12:04:50
Dieter
Das funktioniert leider nicht. Diese ist das Private Sub, welches in jedem Arbeitsblatt stehen müsste.

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

Dim Zeile
Dim Spalte

this = ActiveSheet.Name
Zeile = Target.Row
Spalte = Target.Column

If Spalte < 4 Then
For Each h In Worksheets(this).Cells(Zeile,Spalte).Hyperlinks
If InStr(h.Name, "") <> 0 Then
link = h.Name
End If
Next
For Zeileh = 2 To 65536
If Worksheets("Playlist").Cells(Zeileh, 2) = "" Then
Worksheets("Playlist").Select
Worksheets("Playlist").Cells(Zeileh, 2) = link
Zeileh = 65536
End If
Next Zeileh
Cancel = True
End If
Worksheets(this).Select
End Sub


Wenn ich dieses ins Modul 1 schreiben, es Private Sub Modul_1 nenne und es mit

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

Modul_1

end SUB

aufrufe, erhalte ich eine Fehlermeldung.

Anzeige
Re: Marko starten
12.09.2002 12:28:41
Dieter
habe es hinbekommen ....

danke

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige