Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

VBA allgemein

Betrifft: VBA allgemein von: Thomas
Geschrieben am: 10.03.2006 10:13:59

Hallo,

ich habe zwei Makros, wobei ein bestimmter Teil in beiden gleich ist. Das eine ist ein Private Sub Worksheet_Change(ByVal Target As Range), das andere ein Private Sub CommandButton1_Click() würde mir schon reichen, das erste Makro im zweiten aufzurufen. Sauberer wäre es sicherlich den betreffenden Teil gesondert abzulegen und aufzurufen. Wie ist das möglich?


Danke,
Thomas

  


Betrifft: AW: VBA allgemein von: u_
Geschrieben am: 10.03.2006 10:16:57

Hallo,
Code als Sub in ein Modul und in den Ereignisprozeduren aufrufen.

Gruß

Geist ist geil!


  


Betrifft: AW: VBA allgemein von: Ceci
Geschrieben am: 10.03.2006 10:18:15

Hallo thomas,

der Teil der in beiden gleich ist, fügst du in ein Modul im VB-Editor ein, z.B. so:

Sub Name_Des_Gleichen_Teils
'hier steht alles was gleich ist
End Sub


Dann rufst du in deinen anderen Prozeduren mit
Call Name_Des_Gleichen_Teils
diese neue Prozedur auf und fertig.

Hoffe das war verständlich,

mfg Ceci


  


Betrifft: AW: VBA allgemein von: Thomas
Geschrieben am: 10.03.2006 10:26:15

Danke Ceci,

das ist serh verständlich allerdings funktioniert es nicht ganz so, wie es soll.
In dem wird eine Variable(?) namens DName gefüllt. Deren Inhalt wird anscheinend nicht in die Private Subs übergeben.

Thomas


  


Betrifft: AW: VBA allgemein von: WernerB.
Geschrieben am: 10.03.2006 10:48:18

Hallo Thomas,

deklariere Deine Variable In einem Standardmodul ganz oben außerhalb der Prozedur(en):

Public DName As String


Viel Erfolg wünscht
WernerB.

P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !


  


Betrifft: AW: VBA allgemein von: IngGi
Geschrieben am: 10.03.2006 10:23:08

Hallo Thomas,

füge über Einfügen-Modul ein allgemeines Modul (heißt dann automatisch Modul1) in deine Datei ein. Dort schreibst du eine Prozedur, in die du den gemeinsamen Code aus deinen beiden Prozeduren hineinkopierst.

Sub Gemeinsamer_Codeteil()

blabla

End SubIn deine beiden Prozeduren kommt dann anstelle des gemeinsamen Codes ein Aufruf dieser neuen Prozedur:

Private Sub CommandButton1_Click()

blabla
Modul1.Gemeinsamer_Codeteil

End Sub
Private Sub Worksheet_Change(ByVal Target As Range)

blabla
Modul1.Gemeinsamer_Codeteil

End Sub
Gruß Ingolf