29.11.2016, 15:47 (Dieser Beitrag wurde zuletzt bearbeitet: 29.11.2016, 15:47 von Rabe.)
Hi,
(29.11.2016, 09:54)BoskoBiati schrieb: logisch!
Wenn ich einzelne Buttons lösche, stimmen die Nummern ja nicht mehr oder sind nicht fortlaufend. Das sind ja Formular-Steuerelemente, wie können dann diese Buttons umbenannt werden? Wenn ich draufklicke, bekomme ich sie im VBA-Editor nicht angezeigt.
(ActiveX-) CommandButtons kann ich bei Rechtsklick mit "Eigenschaften" bearbeiten. Aber wie spreche ich die CommandButtons an zum Ein- und Ausblenden?
PrivateSub Ausblenden()
Dim s AsString'Mit diesem Code werden Tabellen, Bereiche und Buttons ausgeblendet, wenn Bedingung erfüllt ist.
s = VBA.Environ("Username")
' MsgBox s SelectCase s 'Tabellen, Bereiche und Formularschaltflächen ausblenden CaseIs = "Rabe":
ThisWorkbook.Sheets("Übersicht").Visible = True
ThisWorkbook.Sheets("Übersicht").Range("1:46").EntireRow.Hidden = False' ThisWorkbook.Sheets("Übersicht").Range("48:60").EntireRow.Hidden = True
ThisWorkbook.Sheets("Übersicht").DrawingObjects("Button 1").Visible = True' ThisWorkbook.Sheets("Übersicht").DrawingObjects("Button 2").Visible = True '2 - 10 gibt es nicht
ThisWorkbook.Sheets("Übersicht").DrawingObjects("Button 11").Visible = True
ThisWorkbook.Sheets("Übersicht").DrawingObjects("Button 13").Visible = True
ThisWorkbook.Sheets("Übersicht").DrawingObjects("Button 14").Visible = True
ThisWorkbook.Sheets("Übersicht").DrawingObjects("Button 15").Visible = TrueCaseElse
ThisWorkbook.Sheets("Übersicht").Visible = False' ThisWorkbook.Sheets("Übersicht").Range("48:50").EntireRow.Hidden = True ' ThisWorkbook.Sheets("Übersicht").DrawingObjects("Button 1").Visible = False ' ThisWorkbook.Sheets("Übersicht").DrawingObjects("Button 14").Visible = False ' ThisWorkbook.Sheets("Übersicht").DrawingObjects("Button 15").Visible = False EndSelectEndSub
ich weiß zwar nicht worauf Du hinaus wolltest, mein logisch bezog sich darauf, dass case>12 abgearbeitet wird, der Rest (Is<=24) wird ignoriert. Also ist alles, was >12 ist damit erschlagen!
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.
(29.11.2016, 19:51)BoskoBiati schrieb: ich weiß zwar nicht worauf Du hinaus wolltest, mein logisch bezog sich darauf, dass case>12 abgearbeitet wird, der Rest (Is<=24) wird ignoriert. Also ist alles, was >12 ist damit erschlagen!
ja, so weit ist mir das klar gewesen.
Dabei ist mir eingefallen, daß ich das auch für eines meiner Projekte verwenden könnte, also Anwendung auf ein anderes Sheet. Da habe ich mir dann zum Ausprobieren ein Beispielsheet gebastelt, in der ich mehrere Formular-Buttons und CommandButtons eingefügt und ein paar wieder gelöscht habe. Die habe ich per VBA aus- und eingeblendet und das auch mit dem Sheet gemacht.
Nun heißen die Formular-Buttons 1, 11, 13, 14, 15 und es gibt einen CommandButton. Frage 2 war: wie kann ich den CommandButton ansprechen zum aus- und wieder einblenden?
In der Liste der Formular-Buttons sind ja Lücken. Wenn ich die über eine Schleife ansprechen will, sollten die Lücken weg sein. Beim Kopieren der Buttons ändern sich die Text-Nummern ("Schaltfläche 11", ...) nicht, beim Ändern der Texte ändern sich die Nummern der Buttons nicht. Ich sehe nirgends die Nummer des Buttons. Wenn ich im Entwurfsmodus auf einen CommandButton doppelklicke, kann ich im VBA-Editor alles ändern, beim Formularbutton geht das nicht. Frage 1 war: Wie kann ich sehen, welcher Button welche Nummer hat und wie kann ich die Nummern ändern?
(01.12.2016, 14:19)Steffl schrieb: Formularbuttons musst Du über die Shapes-Eigenschaft ansprechen
so, ich habe nun rumprobiert, plötzlich sind meine Buttons nicht mehr 11, 13, 14 und 15, sondern 3-6. Es fehlt aber weiterhin der Button 2.
Jetzt habe ich eine Beispieltabelle
Buttons ausblenden.xlsb (Größe: 29,71 KB / Downloads: 5)
erstellt: den Button 6, der eigentlich 5 heißen sollte, nach rechts kopiert. Wenn ich das Makro "Buttons_zeigen" starte, sehe ich, daß der nun "Button 9" heißt, es steht natürlich weiterhin "Schaltfläche 6" drin.
Wenn ich das "Ausblenden"-Makro starte, werden die (wie oben benannten) Buttons (1, 3-6, 9) aus-/eingeblendet.
Wie bekomme ich es jetzt aber hin, daß ich die Buttons in der Soll-Nummer 1-6 bekomme, anstatt 1, 3-6, 9. Mit Deinem Makro wird zwar der angezeigte Text in den Buttons geändert, aber nicht die Button-Nummerierung an sich.
ich habe ein nettes Advents oder Weihnachtsgeschenk für dich. Deine Beispieldatei zurück, mit Lösung
Du kannst mit den neuen Makros die Button Objekte auflisten, und alle mit dem 2. Makro umbenennen. Das gilt aber nur für normale Button, es lappt nicht mit Aktiven Steuerelementen!! Ich bevorzuge die alten Button, weil sie mit VBA leichter zu programmieren sind!!