Moin, folgendes Problem. In tab1 stehen in der spalte a mehrere bezeichnnungen wie zb. Cola, bier, chips, limo usw.die dann gleich die namen der button in tabelle 2-32 sind. Die Buttons sind von der funktion her gleich. Buttons erhöhen bei klick einen wert um 1. Jetzt würde ich gerne, wenn sich in Tabellen 1 limo in sprudel ändert, sol dann nach klick der name limo inn sprudel in allen Tabellen ändern. Wenn es möglich wäre dass, wenn in tabelle 1 eine zelle leer ist, dann der jeweilige button keine aktion ausführt. Wäre super wen mir da jemand helfen könnte. Ich weis ist viel, im vorraus schon mal Danke.
das ist ein völlig falscher Ansatz. Gleichartige Daten gehören auf ein Tabellenblatt. Wozu es gut sein soll, Mengen per Klick einer Schaltfläche zu erhöhen, erschließt sich für mich nicht. Frage dazu: was machst du wenn du auf eine falsche Schaltfläche geklickt hast? Minusschaltflächen?
Viele Grüße Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
Was die button machen oder nicht ist egal, es geht nur um die dynamische beschriftung der Button. Das heist wenn sich in tabelle 1 in der zelle a1 der namme ändert, sollen die Buttons in den tabellen 2-32 der name ändern.
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then Me.CommandButton1.Caption = Target.Value End If End Sub
So ungefähr, halt nur in allen tabelle. Es gibt dann halt button 1-30 mit unterschiedlichen texten. Gruss
offenbar hast du meinen Hinweis nicht verstanden. Wenn du deine Daten auf einem Tabellenblatt unterbringst, brauchst du nicht 32 Schaltflächen umbenennen. Im übrigen solltest du etwas mehr über deine Datei verraten, wenn du auf Hilfe hoffst. Welche Art Schaltflächen hast du verwendet, Formularsteuerelemente oder ActiveX? Am besten zeigst du mal eine Beispieldatei.
Viele Grüße Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Long If Target.Address = "$A$1" Then If Len(Target.Value) Then For i = 1 To 32 Worksheets(i).CommandButton1.Caption = Target.Value Next i End If End If End Sub
Was mich jetzt ehrlich gesagt auch nicht wirklich wundert. Deine hochgeladene Datei wirkt dann doch etwas "hingeschludert".
Warum? -zig leere Module. Das ist ein wildes geklicke, bis man irgendwann mal da ist, wo man hin will -quasi fast für jede Prozedur ein eigenes Modul, völlig unübersichtlich -auf den Blättern 1- .... sind die ganzen Button wild durcheinander nummeriert. Das macht es fast unmöglich die im Code entsprechend anzusteuern. -im Blatt Preisliste hast du 32 "Artikel", auf den "Tagesblättern" aber nur 30 Schaltflächen - das passt so nicht zusammen
Bitte erst mal folgendes erledigen:
1. alle "Tagesblätter" bis auf Blatt mit dem Namen 1 löschen 2. die ganzen leeren Module löschen 3. würde ich dir empfehlen die Module umzubenennen und dort dann "zusammengehörende" Prozeduren rein zu kopieren. Z.B. ein Modul Druck und dort alle Prozeduren rein, die einen Ausdruck bewirken. So findest du dich selbst auch besser zurecht. 4. die ganzen Button auf Blatt 1 fortlaufend benennen. Erste Buttonreihe (die mit den "Artikeln" drauf) von oben nach unten Schaltfläche1 bis Schaltfläche10, nächste Schaltfläche11 bis Schaltfläche20 ..... 5. die ganzen Button auf Blatt 1 (die für den "Abzug") ebenfalls von links nach rechts und oben nach unten fortlaufend benennen. Schaltfläche31 bis Schaltfläche40, nächste Schaltfläche41 bis Schaltfläche50 ....
Dazu habe ich ehrlich gesagt keine Lust.
Dann die Datei noch mal hochladen. Dann schreib ich dir einen Code dazu.