Supportnet / Forum / Tabellenkalkulation
Makros mittels Buttons kontrollieren
Frage
Sehr geehrte Damen und Herren,
ich programmiere zurzeit an einem Excel-Auswertung-Programm.
Folgendes erstmal zur Funktion dieses Programmes. Das Programm besitzt insgesamt 2 Datenblätter. In einem Datenblatt stehen die zu auswertenden Daten ( werden mittels einen Exportbefehl in die Excel-Datei geladen).
Im zweiten Datenblatt werden die Auswertungen durchgeführt. Simple SUMMEWENNE und SUMME Befehle welche die Gesamtkosten für beliebige User ausrechnen. Das zweite Datenblatt enthält außerdem noch 12 Buttons -> Januar..Februar.......... bis zu Dezember halt. Diese Buttons sind alle identisch.Führen also die selben Berechnungen durch. Allerdings werden die ausgegeben werte ständig aktualisiert und gerade dass soll verhindert werden. DIe werte von zB Januar sollen nur dann aktualisiert werden, wenn ich auf die Schaltfläche Januar klicke. ( Zur infos - jede Schaltfläche besitzt ein Makro. der JanuarButton besitzt beispielweise den JanaurMakro usw. )
Nun zu meiner Frage - wie kann ich die Makros so umändern, dass sie auf das Klicken des Buttons warten bis sie sich aktivieren? Außerdem wie verhindere ich es dass die Makros ständig die Werte überschrieben? SIe sollen es halt nur machen, wenn man auf die Schaltfläche klickt.
Ich bedanke mich schonmal im vorraus für die Antworten.
MfG
Antwort 1 von Praktikantgrpr
weitere Info: Makros wurden alle "aufgezeichnet"
Antwort 2 von Hazgalad
/shrug
hm... es ist kurz nach Mittag und ich steig da noch nicht ganz durch (Zu meiner Verteidigung: es ist Montag und ich hab noch nix gegessen!)
Welche Werte sind hiermit gemeint? Die die von den Makros berechnet worden sind?
Hört sich irgendwie widersprüchlich an. Sie führen also nicht die Berechnungen durch sondern schon vorher? Aber sie wurden den Buttons zugewiesen?
Und wie sehen die Makros aus bzw was sollen sie genau tun?
Kann mir den Aufbau der Tabellenblätter, der Makros und deren Funktion noch nicht so wirklich vorstellen.
Ein paar mehr Worte dazu würden meinen grauen Zellen event. helfen.
hm... es ist kurz nach Mittag und ich steig da noch nicht ganz durch (Zu meiner Verteidigung: es ist Montag und ich hab noch nix gegessen!)
Zitat:
Allerdings werden die ausgegeben werte ständig aktualisiert und gerade dass soll verhindert werden. DIe werte von zB Januar sollen nur dann aktualisiert werden, wenn ich auf die Schaltfläche Januar klicke.
Allerdings werden die ausgegeben werte ständig aktualisiert und gerade dass soll verhindert werden. DIe werte von zB Januar sollen nur dann aktualisiert werden, wenn ich auf die Schaltfläche Januar klicke.
Welche Werte sind hiermit gemeint? Die die von den Makros berechnet worden sind?
Zitat:
Das zweite Datenblatt enthält außerdem noch 12 Buttons -> Januar..Februar.......... bis zu Dezember halt. Diese Buttons sind alle identisch.Führen also die selben Berechnungen durch.
Das zweite Datenblatt enthält außerdem noch 12 Buttons -> Januar..Februar.......... bis zu Dezember halt. Diese Buttons sind alle identisch.Führen also die selben Berechnungen durch.
Zitat:
wie kann ich die Makros so umändern, dass sie auf das Klicken des Buttons warten bis sie sich aktivieren?
wie kann ich die Makros so umändern, dass sie auf das Klicken des Buttons warten bis sie sich aktivieren?
Hört sich irgendwie widersprüchlich an. Sie führen also nicht die Berechnungen durch sondern schon vorher? Aber sie wurden den Buttons zugewiesen?
Und wie sehen die Makros aus bzw was sollen sie genau tun?
Kann mir den Aufbau der Tabellenblätter, der Makros und deren Funktion noch nicht so wirklich vorstellen.
Ein paar mehr Worte dazu würden meinen grauen Zellen event. helfen.
Antwort 3 von Praktikantgrpr
Ok - ich versuch mich mal besser auszudrücken.
Also die Makros führen die Berechnungen vor. Jeder Makro ist einer bestimmten Schaltfläche ( button ) zugeordnet - mittels "Makro zuordnen halt"
zu Datenblatt eins:
Hier stehen halt verschiedene Daten
die Tabelle enthält ca 9 verschiedene Spalten. In diesem Datenblatt werden KEINE berechnungen durchgeführt. Also Datenblatt 2 greift auf Datenblatt 1 zu.
zum Hauptproblem ( Datenblatt 2 )
Ich versuch mal die Problemlage anhand eines Beispieles zu verdeutlichen.
In Datenblatt 1 befinden sich beispielweise Daten vom Januar ( Irgendwelche Rechnungen.. Abbuchen etc )
ALLE Makros greifen darauf zu..und schreiben halt den inhalt. was SCHON FALSCH IST - da...
1.) DIE makros nur arbeiten sollen, wenn die Schaltfläche gedrückt wurde
2. )Zurzeit hat der April ( oder welcher auch immer Makro ) den selben wer wie zB der Januar Button.. leider.. weil er halt ohne meine zustimmung zugreift und somit zB die Aprilwerte mit den Januarwerten überschreibt. um dieses Problem zu umgehen, müssen die Makros halt immer auf den Klick auf der Benutzerfläche reagieren. NUR wenn JANUARbutton anklickt wurde SOLL AUCH NUR der Januarmakro aktiviert werden. DIe anderen sollen nichts machen.
Also die makros sollen nur auf den KLICK reagieren.
Januarmakro aktivierrt sich nur wenn der januarbutton vom user angeklickt wurde.
Ich hoffe ich konnte deine Fragen / zweifel beantworten/ aus der welt schaffen
Also die Makros führen die Berechnungen vor. Jeder Makro ist einer bestimmten Schaltfläche ( button ) zugeordnet - mittels "Makro zuordnen halt"
zu Datenblatt eins:
Hier stehen halt verschiedene Daten
die Tabelle enthält ca 9 verschiedene Spalten. In diesem Datenblatt werden KEINE berechnungen durchgeführt. Also Datenblatt 2 greift auf Datenblatt 1 zu.
zum Hauptproblem ( Datenblatt 2 )
Ich versuch mal die Problemlage anhand eines Beispieles zu verdeutlichen.
In Datenblatt 1 befinden sich beispielweise Daten vom Januar ( Irgendwelche Rechnungen.. Abbuchen etc )
ALLE Makros greifen darauf zu..und schreiben halt den inhalt. was SCHON FALSCH IST - da...
1.) DIE makros nur arbeiten sollen, wenn die Schaltfläche gedrückt wurde
2. )Zurzeit hat der April ( oder welcher auch immer Makro ) den selben wer wie zB der Januar Button.. leider.. weil er halt ohne meine zustimmung zugreift und somit zB die Aprilwerte mit den Januarwerten überschreibt. um dieses Problem zu umgehen, müssen die Makros halt immer auf den Klick auf der Benutzerfläche reagieren. NUR wenn JANUARbutton anklickt wurde SOLL AUCH NUR der Januarmakro aktiviert werden. DIe anderen sollen nichts machen.
Also die makros sollen nur auf den KLICK reagieren.
Januarmakro aktivierrt sich nur wenn der januarbutton vom user angeklickt wurde.
Ich hoffe ich konnte deine Fragen / zweifel beantworten/ aus der welt schaffen
Antwort 4 von Praktikantgrpr
Ja und am anfang soll halt nichts passieren, weil meine makros reagieren schon beim öffnen des ecel dokuments.. was natürlich auch falsch ist. da man natürlich erst die neuen daten in das Datenblatt 1 laden muss..
Antwort 5 von Hazgalad
Hört sich für mich danach an als stünden die Makros unter einem "WorkbookOpen" Ereignis.
Schonmal selbst ein Makro zurecht geschnitzt oder per Hand erstellt?
Wie gut sind deine VBA Kenntnisse?
Ich könnte dich natürlich bitten mittels Alt+F11 im Code nachzuschaun ob die ganzen Anweisungen wirklich unter einem Private Sub ButtonXY_Click() stehen. Das gilt es jetzt eigenlich herauszufinden.
Da scheint die Zuweisung ja nit ganz geklappt zu haben. Oder zumindest nicht so wie du es dir vorgestellt hast.
Um mal einen anderen Weg zu beschreiben:
-makro aufnehmen und z.B. test nennen
-mit alt+f11 in den vba editor wechseln und alles das was zwischen "Private Sub test()" und dem nächsten "End Sub" steht kopieren
-mit erneutem alt+f11 zu excel wechseln und Ansicht->Sybmbolleisten ->Visual Basic erscheinen lassen.
- dort in den Entwurfsmodus gehen
- auf eine schlatfläche doppelklicken
- dort dann den Kram wieder einfügen
Das könnte man auch mit den anderen Makros machen um sicherzustellen das alles unter einem _Click Ereignis steht.
Viel Erfolg beim Tüfteln .... backups nicht vergessen.
Schonmal selbst ein Makro zurecht geschnitzt oder per Hand erstellt?
Wie gut sind deine VBA Kenntnisse?
Ich könnte dich natürlich bitten mittels Alt+F11 im Code nachzuschaun ob die ganzen Anweisungen wirklich unter einem Private Sub ButtonXY_Click() stehen. Das gilt es jetzt eigenlich herauszufinden.
Da scheint die Zuweisung ja nit ganz geklappt zu haben. Oder zumindest nicht so wie du es dir vorgestellt hast.
Um mal einen anderen Weg zu beschreiben:
-makro aufnehmen und z.B. test nennen
-mit alt+f11 in den vba editor wechseln und alles das was zwischen "Private Sub test()" und dem nächsten "End Sub" steht kopieren
-mit erneutem alt+f11 zu excel wechseln und Ansicht->Sybmbolleisten ->Visual Basic erscheinen lassen.
- dort in den Entwurfsmodus gehen
- auf eine schlatfläche doppelklicken
- dort dann den Kram wieder einfügen
Das könnte man auch mit den anderen Makros machen um sicherzustellen das alles unter einem _Click Ereignis steht.
Viel Erfolg beim Tüfteln .... backups nicht vergessen.
Antwort 6 von Praktikantgrpr
Ich kann Kein VBA. Ich hab die Makros nicht programmiert, sondern aufgenommen.
die komischen button heißen bei mir zB
schaltfläche14_BeiKlick
- ich kann versuchen dir heute nachmittag den code hier reinzukopieren, sobald ich zuhause bin. dass wird dann so gegen 17 uhr sein - vl kannst du mir ja dann besser helfen
die komischen button heißen bei mir zB
schaltfläche14_BeiKlick
- ich kann versuchen dir heute nachmittag den code hier reinzukopieren, sobald ich zuhause bin. dass wird dann so gegen 17 uhr sein - vl kannst du mir ja dann besser helfen
Antwort 7 von Event
Hallo
Was versteht der Praktikant unter einem Button?
Gruß
Was versteht der Praktikant unter einem Button?
Gruß
Antwort 8 von Praktikantgrpr
eine beschriftete schaltfläche auf die man klicken kann
Antwort 9 von Hazgalad
Ja das würde wahrscheinlich ehr helfen.
Werde erst gegen 18:00 @home sein und dann noch mal reinschaun.
@event
Ich denke das sagt schon alles (er hat dich wohl beim posten überholt;-)
Werde erst gegen 18:00 @home sein und dann noch mal reinschaun.
@event
Zitat:
schaltfläche14_BeiKlick
schaltfläche14_BeiKlick
Ich denke das sagt schon alles (er hat dich wohl beim posten überholt;-)
Antwort 10 von Event
Hat er wohl ;-)
Antwort 11 von Praktikantgrpr
Koennt ihr mit eure Emailadressen geben? Dann kann ich euch das Programm schicken
vielen dank
vielen dank
Antwort 12 von Hazgalad
j.r@public-files.xyde ohne das xy
Wenns heut zu spät eintrudelt versuch ich mich mal damit morgen in der Mittagspause dranzusetzten.
Wenns heut zu spät eintrudelt versuch ich mich mal damit morgen in der Mittagspause dranzusetzten.
Antwort 13 von praktikantgrpr
habs dir geschickt