Registriert seit: 06.04.2019
Version(en): 2013
Hi, nun ist es mittlerweile halb drei Uhr morgens und ich sitze immer noch vor dem Pc auf der Suche nach einer Lösung für meine kleine Spinnerei. Da ich mich vor lauter Sucherei mittlerweile aber kaum mehr konzentrieren geschweige etwas lesen kann und selbst einfach nicht weiter komme, bitte ich eben mal um Hilfe.
Ich habe mehrere OptionButton die keine einzelne Funktion zugewiesen haben, sondern lediglich quasi als Marker dienen sollen. Ähnlich einer Checkbox nur eben mit dem Feature dass immer nur eine Box angewählt ist ohne die anderen abwählen zu müssen. Diese OptionButtons möchte ich nun mit jedem Klick auf ein und demselben CommandButton nacheinander um eins weiter schalten. Bis der letzte wieder auf den ersten springt.
Aber ich kriege das nicht hin. Ich bräuchte wohl irgend so was wie einen Next oder Loop Code den ich aber nirgends finden kann.
Könnt Ihr mir helfen wie ich das gebacken bekomme.
Besten Dank Gruß
00202
Nicht registrierter Gast
Hallo, :19:
hier mal mit Beispieldatei (sagt IMHO mehr als tausend Bilder/Erklärungen): :21: [attachment=23447]
Registriert seit: 25.04.2016
Version(en): 2013
06.04.2019, 09:25
(Dieser Beitrag wurde zuletzt bearbeitet: 06.04.2019, 09:33 von Storax.)
Für eine Userform könnte man es so lösen Zitat:Option Explicit
Dim col As New Collection
Private Sub CommandButton1_Click() Dim i As Long
For i = 1 To col.Count If i = col.Count Then col(1).Value = True Else If col(i).Value = True Then col(i + 1).Value = True Exit For End If End If Next i
End Sub
Private Sub UserForm_Initialize()
Dim ctl As Control
For Each ctl In Controls If TypeName(ctl) = "OptionButton" Then col.Add ctl, CStr(ctl.Name) End If Next End Sub
Registriert seit: 06.04.2019
Version(en): 2013
06.04.2019, 17:38
Ich könnte Euch [img] Dateiupload bitte im Forum! So geht es: Klick mich!] Es funktioniert genau wie gewünscht! Als Datei natürlich extra komfortabel. [img] Dateiupload bitte im Forum! So geht es: Klick mich!] Würd mich echt mal interessieren woher Ihr all die Codes wisst. Das ist doch nicht durchschaubar das ganze VBA Zeugs. Kann man sich sowas irgenwie irgendwo ab- oder herleiten? Es gibt ja doch auch immer tausend Möglichkeiten und Wege zum Ziel zu gelangen. Aber dazu muss man ja zumindest mal wissen wo man überhaupt ansetzt. Und wie die Befehle lauten. Unverständlich das ganze für mich. Besten Dank in jedem Fall!
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
Hallo, Zitat:Würd mich echt mal interessieren woher Ihr all die Codes wisst. Das ist doch nicht durchschaubar das ganze VBA Zeugs.
Kann man sich sowas irgenwie irgendwo ab- oder herleiten? Es gibt ja doch auch immer tausend Möglichkeiten und Wege zum Ziel zu gelangen.
Aber dazu muss man ja zumindest mal wissen wo man überhaupt ansetzt. Und wie die Befehle lauten. Unverständlich das ganze für mich. also, mit einfachen Worten läßt sich das alles in einem Satz ausdrücken. Es ist eine Sprache, und die muß man eben lernen. Der einfachste und zudem auch noch kostenfreie Weg zum schnellen Lernen führt, meiner bescheidenen Meinung nach, über das Mitmachen in Foren. Versuchen, die hier erfragten Probleme mitzulösen und wenn man was weiß oder glaubt zu wissen, seinen Lösungsvorschlag vorzustellen. Es wird Dich hier niemand auslachen, wir alle haben irgendwann mal angefangen. Was das Einlesen angeht; das Internet ist groß und in den Foren mangelt es wohl auch nicht wirklich an weiterführenden Links. Und das mit den vielen Wegen ... ist ja richtig, aber im Laufe der Zeit wirst Du ganz sicher für Dich selbst Deinen eigenen Weg finden. Und fast hätte ich vergessen, Dich zu warnen: Excel macht süchtig, aber im positivem Sinne :05:
Registriert seit: 06.04.2019
Version(en): 2013
07.04.2019, 00:31
(Dieser Beitrag wurde zuletzt bearbeitet: 07.04.2019, 01:25 von toub.)
Tja, wenn man mal mitbekommen hat was mit Excel alles im Hintergrund, abseits des normalen Tabellenblattes alles möglich ist, dann erkennt man erst was das eigentlich für ein mächtiges Gerät ist. Mir war das nie klar bis ich vor zwei Jahren mal durch einen Bekannten darauf aufmerksam gemacht wurde, als er aus einer angeheiterten Stimmung heraus meinte wir bauen uns dafür unser eigenes kleines Programm zusammen. Und deshalb sitze ich heute Abend wieder hier, weil ich immer wieder Ideen habe, eben dieses kleine "Programm" von damals um kleine Gimmicks und Verbesserungen erweitern zu wollen. So viel zum Thema Excel macht süchtig. Aber da wären wir auch gleich wieder beim Thema. :21: Der genannte Code von Case funktioniert wunderbar, nur habe ich in meinem Arbeitsblatt einige Zeilen, die ich durch CheckBoxen ab und an ausblende. Und diese Zeilen werden wenn Sie ausgeblendet durch den Blattschutz übersprungen. So möchte ich das auch. Jeder von meinen o.g. OptionButtons gehört zu einer CheckBox, bzw. zu der damit verbundenen Zeilenreihe die ausgeblendet wird. Nun sollte aber auch der OptionButton mit aktivierter CheckBox ausgeblendet und eben dann durch den aktivierten Blattschutz übersprungen werden. Das ausblenden kriege ich hin, nur leider ist der OptionButton nach wie vor aktiv. Denn wenn ich mit dem CommandButton durch die OptionButton´s (dieser Begriff klingt in meinen Ohren immer dämlicher je häufiger ich ihn benutze) durch schalte, dann ist in dem Moment, in dem eine ausgeblendete Reihe übersprungen wird, kein (achtung, jetzt kommt er wieder) OptionButton angewählt. Zumindest nicht sichtbar, denn es wird dann nicht auf den nächsten nicht ausgeblendeten, sichtbaren OP zugegriffen, sondern auf den der ausgeblendet ist. Ich bin nun am überlegen ob ich dieses irgendwie in mein CheckBox Makro, welches mir die Reihen ausblendet, integrieren kann!?! Mein dafür verwendeter Code lautet: Sub Kontrollkästchen33_Klicken() Rows("10:12").Select If Selection.EntireRow.Hidden = False Then Selection.EntireRow.Hidden = True Else Selection.EntireRow.Hidden = False End If Range("$A$1").Select End Sub Verständlich erklärt soweit?
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
07.04.2019, 03:01
(Dieser Beitrag wurde zuletzt bearbeitet: 07.04.2019, 03:14 von Käpt'n Blaubär.)
Hallo,
sage ich doch, Excel fordert immer wieder, ... da geht noch was, und ... mache es doch aber es ist eine wunderbare Sucht. Ok, Du hast zwar nicht direkt auf meine Frage nach Deinem VBA-Wissen geantwortet, aber so ganz unbeleckt bist Du offensichtlich nicht.
Deine Datei kenne ich zwar immer noch nicht, aber eines weiß ich jetzt schon Rows("10:12").Select Es sind solche Dinge, die, wie ich schon vermutet hatte, Dein Programm so unverschämt verlangsamen. Versuche unbedingt, Dir das mit dem .Select abzugewöhnen. Ich weiß, es ist verdammt schwer, sich das abzugewöhnen, aber es lohnt sich unbedingt. Auch ich habe, als ich darauf hingewiesen wurde gesagt, für mich ist es erst mal wichtig, das das Programm tut, was ich von ihm erwarte. Leider hat mir aber niemand den Tipp gegeben, das Programm mal im Einzelschrittmodus laufen zu lassen. Diesen Tipp gebe ich Dir aber heute. Du wirst feststellen, daß mit jedem .Select, das Gleiche gilt für .Activate, das Programm jedes mal von Beginn an den Code noch einmal durchläuft. Bei 10 [b].Selects hast Du dann quasi 10 Neustarts hingelegt, bevor Du auch nur einmal[/b] das abschließende End Sub erreichst. Nun kannst Du wohl schon ahnen, warum Dein Makro sich so viel Zeit nimmt. Aber probiere es ruhig mal aus, denn erst dann wirst Du es nicht nur gehört / gelesen haben. In diesen Fall zeigt Dir in der richtigen Einstellung wirklich, wo bzw. wie der Bartel den Most holt. Es wird ein heilsames Erlebnis werden, das verspreche ich Dir. Nicht umsonst weisen die Helfer in den Foren immer wieder darauf hin, daß in 99% der Fälle der Einsatz von .Select und .Activate unnötig ist und nur jede Menge Zeit verschwendet wird.
Also, einfach mal in den Editor gehen, im Code möglichst weit oben einen Haltepunkt setzen, Du siehst dann an der linken Seite einen braunen Punkt, und das Programm starten. Mit der F8-Taste durchläufst Du dann im Einzelschritt den Code und kannst mitverfolgen, wie das Programm Anweisung für Anweisung nacheinander durchläuft und abarbeitet.
So, und nun will mein Kopfkissen unbedingt mit mir kuscheln.
Dir jedoch wünsche ich viel Spaß beim "Haare raufen". Hoffentlich sind nach dem Programm- durchlauf noch welche da. :05: :19: :05:
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
wenn der Code Sub Kontrollkästchen33_Klicken() heißt, ist er doch schon ein Checkbox-Makro?
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 06.04.2019
Version(en): 2013
Die Überlegung war ob/wie ich in dieses CheckBox Makro die OptionButton Hidden Funktion hinzufügen kann...!?
00202
Nicht registrierter Gast
Hallo, :19:
lade doch einfach eine Beispieldatei hier hoch, dann muss niemand mehr "Rätsel raten" spielen. :21:
|