HERBERS Excel-Forum - das Archiv

Thema: CheckBox mit VBA auslesen

CheckBox mit VBA auslesen
Joachim
Hallo,
ich habe ein Tabellenblatt mit ActiveX-Steuerelementen (CheckBoxen) in eine andere Mappe kopiert.
In der neuen Mappe möchte ich nun den True/False Status dieser CheckBoxen auslesen um je nach dem eine Zelle auf einem anderen Tabellenblatt zu beschreiben.
Das Tabellenblatt mit der CheckBox heißt „Fragebogen“ und die CheckBox heißt „CheckBoxBetrieb1“. Wenn diese CheckBox angehakt ist, soll im Tabellenblatt „Prämisse“ in der Zelle A1 der Wert „xxxxx“ geschrieben werden.

Habe das so versucht :
If CheckBoxBetrieb1.value = True then

End If

dann so :
If Fragebogen.CheckBoxBetrieb1.value = True Then

End If

Leider kommt schon in der If-Zeile beim Auslesen der CheckBox eine Fehlermeldung.

Der Part zum Beschreiben der Zelle funktioniert, drum hab ich den der Einfachheit halber weg gelassen. Habe ich ohne die If-Bedingung getestet !

Bei CheckBoxen die nicht in die Mappe kopiert wurden, sondern direkt darin erzeugt wurden, funktioniert das aber mit ähnlicher Funktion.

Das Makro, das nicht funktioniert steht in einem Modul, während das, das funktioniert direkt in einem Tabellenblatt steht. Kann es daran liegen ?

Das Kopieren des Tabellenblattes in die andere Mappe ist leider zwingend notwendig, da der Fragebogen für den Kunden extra gehalten sein muss. Er soll nicht die komplette Datei erhalten.

Ich danke euch schon vorab mal für eure Hilfe !

Viele Grüße
Joachim
AW: CheckBox mit VBA auslesen
Oberschlumpf
Hi Joachim,

beim Versuch, uns dein(e) Problem(e) zu beschreiben, springst du sehr oft hin und her = zumindest ich verstehe nur: "Wenn in ActiveX-Checkbox etwas bestimmtes ausgewählt wird, dann soll bestimmte Zelle anderem Blatt bestimmten Wert erhalten."

Ich empfehle dir:
Verwende das Change-Ereignis, welches für jede ActiveX-Checkbox verfügbar ist.

Hilfts?
Nein? Dann zeig uns bitte per Upload eine Excel-Bsp-Datei mit allem as erforderlich ist, um dein Problem auch verstehen...und mit der Datei für dich testen zu können.

Ciao
Thorsten
AW: CheckBox mit VBA auslesen
Uduuh
Hallo,
vermutlich existiert Fragebogen.CheckBoxBetrieb1 nicht. Wahrscheinlich wurde durch die Kopiererei der Name geändert.

Gruß aus'm Pott
Udo
AW: CheckBox mit VBA auslesen
RPP63
Moin!
Excel 2010?
Nutze Excel 365!
Dort gibt es jetzt das neue Einfügen → Kontrollkästchen.
Dann ist es eine simple WENN-Formel, die auch gleich "auf einen Rutsch" einen Bereich spillen kann:


Gruß Ralf
und mir hat's ja trotzdem...
Oberschlumpf
...in den Fingern gejuckt!

Hi Joachim,

hier, probier mal
https://www.herber.de/bbs/user/170788.xlsm

SO würde ICH das Ganze lösen - na ja, wenn ich denn richtig verstanden habe, was du erreichen möchtest.

Ach ja...in meiner 1. Antwort schrieb ich:
"...Ich empfehle dir:
Verwende das Change-Ereignis, welches für jede ActiveX-Checkbox verfügbar ist...


Das ist übrigens falsch! Du musst das Click-Ereignis der CheckBoxen verwenden.
Warum hab ich zuerst einen falschen Tipp gegeben? = weil ich keine Bsp-Datei zum Testen hatte; meinen Fehler bemerkte ich erst, nachdem ich selbst eine Bsp-Datei erstellte und mit dem Testen anfing...

So, vom Grundsatz her müsste ich deine Frage/dein Problem "bestimmte Zelle soll in Abhängigkeit einer (von mehreren) geklickten CheckBox einen bestimmten Wert erhalten" beantwortet haben...

...oder???

Ciao
Thorsten
AW: und mir hat's ja trotzdem...
Joachim Schwarz
Hallo Thorsten,

vielen Dank, das du dich trotz unseres Disputes noch um mich bemühst !!!
Ich habe heute Nachmittag die Lösung selbst gefunden, nur noch keine Gelegenheit es hier zu posten.

Meine Lösung sieht wie folgt aus :

Da es mehrere CheckboxenBetrieb1 sind, werden die mit einer For to Next Schleife 12x hochgezählt.

For i = 1 To 12
If Worksheets("Mandantenfragebogen").OLEObjects("CheckBoxBetrieb" & i).Object.Value = True Then
.
.
.
End If
Next i

Ich werde mir die deine aber auch noch auf jeden Fall ansehen !

Vielen Dank und nichts für ungut ! Haken wir es als Mißverständnis ab !

Viele Grüße
Joachim
AW: CheckBox mit VBA auslesen
Joachim
Hallo Ralf,
danke für den Tipp, aber ich würde gerne bei 2010 bleiben. Das hab ich schon und kostet mich nix.

Außerdem bringt mir das so leider auch nichts. Ich habe das Problem etwas verkürzt geschildert. Eigentlich sind es vier CheckBoxen und ich möchte per VBA auslesen, welche davon angehakt ist und den entsprechenden Text dazu in immer die gleiche Zelle schreiben. Mir ist klar, dass dann nicht zwei davon angehakt sein dürfen, aber das ist im Moment nicht mein Problem. Und das Ganze dann 12x.

Viele Grüße
Joachim
AW: CheckBox mit VBA auslesen
Joachim
Hallo Udo,

nein, leider ist es das nicht. Hatte ich auch schon vermutet.

Gruß
Joachim
AW: CheckBox mit VBA auslesen
Uduuh
Hallo,
dann lade eine aussagekräftige Beispieldatei hoch.
Wenn du ein Problem mit deinem Auto hast, musst du es ja auch in die Werkstatt bringen.

Gruß aus'm Pott
Udo
AW: CheckBox mit VBA auslesen
Joachim Schwarz
Hallo Udo,

danke dir für deine weiteres Angebot der Hilfestellung.
Habe heute Nachmittag die Lösung selbst gefunden. Bin nur noch nicht dazu gekommen das hier reinzuschreiben

Ich schrieb

If Fragebogen.CheckBoxBetrieb1.Valuue ......

es muss heißen

If Worksheets("Fragebogen").CheckBoxBetrieb1.Value ......

Viele Grüße und danke schön
Joachim
nur eine kurze Anmerkung
RPP63
Moin!
Bitte lerne zwischen .CodeName und .Name zu unterscheiden!
Während der .CodeName ein eigenständiges Objekt darstellt, benötigt die Worksheet-Auflistung zwingend einen String.

Gruß Ralf
AW: CheckBox mit VBA auslesen
Joachim
Hallo Thorsten,

genau so ist es auch.
Ich möchte bei einem „True“-Wert einer Checkbox eine bestimmte Zelle beschreiben.

Und das funktioniert auch mit CheckBoxen, die ich in der Mappe erzeugt habe, aber nicht bei denen, die ich in die Mappe rein kopiert habe.

Die Frage ist jetzt , warum das so ist.

Viele Grüße
Joachim
AW: CheckBox mit VBA auslesen
Joachim
Hier der VBA Text

Sheets(„Fragebogen“).Select

If CheckBoxBetrieb1.Value = True Then
Sheets(„Prämissen“).Select
Cells(1, „A“).Value = „xxxxx“
End If

Wie schon gesagt bleibt das Makro in der If-Zeile hängen.
AW: CheckBox mit VBA auslesen
Oberschlumpf
und welchen Teil von "bitte zeig ne Bsp-Datei" hast du nicht..ähh..gelesen?
AW: CheckBox mit VBA auslesen
Joachim
Hallo Thorsten (Oberschlumpf)

Ich habe doch den VBA Text geschrieben.
Der Name der CheckBox stimmt auch.

Die ganze Datei möchte ich nicht anhängen. Weiß auch nicht ob mein Chef das gut fände. Außerdem lässt sich damit ja auch nicht das evtl. Problem, dass die CheckBox in die Mapoe kopiert und nicht darin erzeugt wurde, simulieren.

Evtl. gibt es ja noch einen anderen Syntax, um die Checkbox auslesen zu können.
AW: CheckBox mit VBA auslesen
Oberschlumpf
a) ich will (möchte bitte!) eine B S P = Beispiel! - Datei und nich das Original = wenn du Bsp-Daten verwendest, wird auch dein Chef nix dagegen haben
b) ich kann zwar nich das Gegenteil beweisen, glaub aber kein Wort, dass du VBA = gut bist, denn ActiveX-Standard-Controls zu überwachen, is mit VBA echt so einfach
c) ich bin raus, weil...fühl mich von dir nich ernst genommen, und...ich könnte mit Bsp-Datei testen, ohne Datei kann ich nur raten...im raten war ich noch nie gut...und ich hab zum Raten auch gar keine Lust, weil mit Datei = testen = soo viel einfacher, für dich ne Lösung zu erarbeiten....die, nach meiner jetzigen Idee auch n ganz anderen Weg geht, als die mit der Checkbox verknüpften Zelle zu kontrollieren - keine Angst, ich mach es wie du: du zeigst keine Bsp-Datei = ich verrat meine Idee nich...

Weiter viel Erfolg
Ciao
Thorsten
AW: CheckBox mit VBA auslesen
Joachim
Ok,
dann lass es halt, wenn du mir nicht helfen kannst/willst. Musst ja deshalb nicht pampig werden.

Die Frage ist, was bei dir oder bei mir gut ist. Ich kann mir schon helfen, bin kein Experte, aber auch kein Anfänger. Also - was ist gut ???

Du brauchst auch nicht raten, denn ich habe alles geschrieben. Im VBA ist wohl die CheckBox nicht bekannt, obwohl der Name stimmt und ich müsste nur wissen, ob es sein kann, dass da irgendwo noch Infos aus der alten Mappe reingerutscht sind, die ich nicht kenne.

Aber falls du einen anderen Ansatz hättest, kannst du ihn ja hier auch schreiben. Kleiner Syntax reicht ja. Ausprobieren und raten ob es funktioniert tue ich dann schon selber.
AW: CheckBox mit VBA auslesen
Oberschlumpf
ich müsste nur wissen, ob es sein kann, dass da irgendwo noch Infos aus der alten Mappe reingerutscht sind,

und bitte wie sollen wir das beantworten können...so ganz ohne Datei?

ja, du hast recht, jeder kann behaupten in VBA gut zu sein, weil es immer eine subjektive Einschätzung ist

ich finde, man ist gut in VBA, wenn man...
...die Standard-ActiveX-Controls sowohl im Blatt als auch im Userform beherrscht
...sich vor dem Start einer Beschreibung so viele Gedanken macht, dass man ein Programmier-Problem nicht wild hin und her, sondern strukturiert erklären kann, so dass ein Außenstehender das auch schnell(er) versteht
...sich in Klassenprogrammierung auskennt
...auch in VBA Excel-Formeln sinnvoll einsetzen kann
...vor allem auf zu viele .Selects und/oder .Activates verzichtet

AW: CheckBox mit VBA auslesen
Joachim
Sorry dass ich dir da nicht das Wasser reichen kann. Bin leider kein gelernter Programmierer, der vor 40 Jahren nur Dreher gelernt hat. Das was ich kann, und vieles besser als Excel, habe ich mir zum größten Teil autodidaktisch beigebracht. Und um auf Excel zurück zu kommen, auch das habe ich nicht bei einem Informatikstudium gelernt, sondern nur mit viel probieren und experimentieren selbst beigebracht. Und das finde ich, habe ich recht gut hinbekommen. Nur nun stehe ich vor einem Problem, bei dem ich nicht weiter komme und darum bitte/suche ich bei Menschen mit mehr Ahnung um Hilfe. Darum habe ich mich gestern bei diesem Forum angemeldet. Also bitte verzeih mir, dass ich unter deinem Niveau und nicht ganz so strukturiert bin. Obwohl - einen Plan hab ich mir schon gemacht!
Wenn du mir helfen willst, dann tue es oder laß es, aber spiel mir bitte nicht den Klugs…ẞer.
AW: CheckBox mit VBA auslesen
Oberschlumpf
ich hab weder ne Ausbildung und auch kein Studium zum Programmierer.
genau so wie du hab ich mir das, was ich in VBA kann, auch "nur selbst" beigebracht.

wieso nennst du mich Klugs??? soll das klugscheißer heißen?
wieso nennst du mich so? genau wie du hab auch ich nur meine Meinung geäußert...bist du nun auch ein Klugs...?

und ich würd ja gern helfen...aber, und das ist eben meine Grenze: ich kann ohne Bsp-Datei nicht helfen.