Microsoft Excel

Herbers Excel/VBA-Archiv

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

Button-Click in anderem Formular auslösen

Betrifft: Button-Click in anderem Formular auslösen von: Jan Rehok
Geschrieben am: 07.08.2014 11:25:21

Guten Morgen Forum,

darf ich Euch noch einmal um Hilfe bitten?

Sämtliche Formulare meiner Mappe sind strukturgleich aufgebaut, enthalten jeweils nur andere Werte. Auf jedem Formular befindet sich ein Button, hinter dem als Clickereignis der Monatsabschluss für dieses Formular liegt. Bisher arbeite ich mich am Monatsende durch sämtliche Formulare und löse einzeln das Clickereignis aus.

Das möchte ich gerne über ein Makro vereinfachen. Da Anzahl und Namen der Formulare öfter wechseln , würde ich sie ungern im Code einzeln adressieren müssen, sondern lieber über eine For-next-Schleife alle vorhandenen abarbeiten.

Alternativ: Der Code hinter sämtlichen Buttons ist immer der gleiche. Kann man ihn evtl. in das Makro packen und ohne Buttons auf sämtliche Formulare anwenden?

Ich danke schon jetzt für Eure Unterstützung.

Gruß Jan

  

Betrifft: AW: Button-Click in anderem Formular auslösen von: Werner
Geschrieben am: 07.08.2014 12:23:47

Hallo Jan,

das sollten doch mit

Dim x as long
for x = 1 to worksheetscount
with worksheets(x)
....hier dein Code für den Abschluss
end with
next
funktionieren.

Werner


  

Betrifft: sorry, aber ... von: Rudi Maintaire
Geschrieben am: 07.08.2014 12:44:44

Hallo,
dir fehlt ein .
for x = 1 to worksheets.count

Besser ist aber, direkt mit einem Worksheet-Objekt zu arbeiten, da VBA aus Worksheets(x) ein Worksheet-Objekt machen muss.

Dim wks as worksheet
for each wks in worksheets
with wks
....hier dein Code für den Abschluss
end with
next

Dies zur Erweiterung deiner Kenntnisse.

Gruß
Rudi


  

Betrifft: AW: sorry, aber ... von: Werner
Geschrieben am: 07.08.2014 12:50:25

Hallo Rudi,


danke für deinen Hinweis, bin noch am Lernen.
Der Punkt ist mir abhanden gekommen weil ich mit dem Handy schreibe.

Werner


  

Betrifft: AW: Button-Click in anderem Formular auslösen von: Jan Rehok
Geschrieben am: 07.08.2014 15:18:20

Hallo Werner,
ich habe ein bisschen gebraucht und wollte Dich nicht sofort wieder "belästigen". Das war gut so, denn ich konnte das auftretende Problem selbst lösen.
Was in meinem Monatsabschluss passiert, ist von gewissen Feldinhalten des jeweiligen Arbeitsblattes abhängig - u. a. von dem, was in Feld H2 steht. Im bisherigen Code hinter den Buttons wird dieses Feld einfach mit > Range("H2").Value < ausgelesen. Das musste ich anpassen: worksheets(x).Range("H2").Value.
Ich habe den gesamten Code unter diesem Aspekt überarbeitet und jetzt läuft es einwandfrei.

Dim x as long
for x = 1 to worksheets.Count
with worksheets(x)
MsgBox "Feld H2 = " & Range("H2").Value 'alt
MsgBox "Feld H2 = " & worksheets(x).Range("H2").Value 'neu
end with
next

Mein Problem es damit gelöst. Ich danke Dir sehr für Deine freundliche Hilfe.

Schöne Grüße
Jan


  

Betrifft: AW: Button-Click in anderem Formular auslösen von: Rudi Maintaire
Geschrieben am: 07.08.2014 12:28:02

Hallo,
Der Code hinter sämtlichen Buttons ist immer der gleiche.
dann ist es Unsinn ihn mehrfach zu schreiben.
Lagere ihn in eine Sub aus und ruf ihn per Buttonklick auf.

Kann man ihn evtl. in das Makro packen
Kann man. Wie oben.

Gruß
Rudi


  

Betrifft: AW: Button-Click in anderem Formular auslösen von: Ewald
Geschrieben am: 07.08.2014 12:50:42

Hallo Jan,

den Code einfach nur in eine Sub stecken dürfte nicht reichen, da mußt du schon anpassen.

ohne den Code zu kennen, kann man nichts genaues sagen, nur wenn du eine Schleife über alle Formalare laufen läßt,mußt du auch mindestens das Formular setzen.

Gruß Ewald


  

Betrifft: AW: Button-Click in anderem Formular auslösen von: Jan Rehok
Geschrieben am: 07.08.2014 15:41:09

Hallo Ewald, hallo Rudi,

ich sehe, dass Ihr - während ich gebastelt habe - weitere Tipps gegeben habt. Der fehlende Punkt vor dem Count war nun nicht das Problem, aber die erforderliche Anpassung des Codes. Ich bin eigentlich ganz froh, dass ich Euren Beitrag erst jetzt lese, nachdem ich es selbst herausgefunden habe. Das erwartet Ihr ja auch von uns Anfängern, dass wir uns selbst etwas Mühe geben.

Danke nochmal und schöne Grüße an dieses tolle Forum.

Jan


 

Beiträge aus den Excel-Beispielen zum Thema "Button-Click in anderem Formular auslösen"