online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon BenjaminM vom 12.04.2022, 13:42 Options

Lösung

Checkbox VBA Code?

Hallo @ all,

ich brauch mal wieder eure hilfe.

Ich habe eine Userform, in der ich 2 Text Boxen habe & 10 Checkboxen.
Nun möchte ich das wenn ich in die Textbox2 z:B. 5 eingebe
und dazu Checkbox 1 (Cbx) wähle, der Eintrag aus Textbox2 (Tbx)in meiner
Aufstellung in die erste Spalte nach dem Datum eingetragen wird.
Bsp.:
Box Spalte
Cbx1= "B"
Cbx2 = "D"
Cbx3= "F"
Cbx4= "H"
Cbx5= "J"
Cbx6= "L"
Cbx7= "N"
Cbx8= "P"
Cbx9= "R"
Cbx10= "T"

Das gleiche wenn nur ein Wert in Tbx3 steht.
Bsp.:
Box Spalte
Cbx1= "C"
Cbx2 = "E"
Cbx3= "G"
Cbx4= "I"
Cbx5= "K"
Cbx6= "M"
Cbx7= "O"
Cbx8= "Q"
Cbx9= "S"
Cbx10= "U"

Ist das umsetzbar?
Hier mein bisheriges Ergebnis, ich bekomme nur leider die Checkboxen nicht in den Code.

Datei

Mfg Benjamin


Antwort schreiben

Antwort 1 von finger59 vom 12.04.2022, 16:26 Options

Hi Benjamin,

leider sind meine VBA-Kenntnisse noch geringer wie Deine, aber dennoch mal eine generelle Frage dazu.

Du verwendest die Checkboxen zur Auswahl. Bei Checkboxen kann man allerdings immer mehrere ansprechen.

Frage... ist das so gewollt?

Bei den Optionsfeldern kann man es ja so einstellen, dass wenn eine Auswahl getroffen wurde, dass nur diese dann möglich ist.

Ich könnte mir vorstellen, dass Du nicht mehrere Dinge gleichzeitig einstellen möchtest... oder vielleicht doch?

Bei den Optionsfeldern könntest Du dann die - linked Cell - nach wahr abfragen - sprich wenn Feld A7 = wahr - dann übertrage den Eintrag in die Zelle xy...

Noch etwas war mir aufgefallen... Du hast zwar in den Textboxen Zahlen als Eingabepflicht drin, aber als Übertrag nur die Zahlen als Text. Von daher keine Summierung in den jeweiligen Spalten.

Vielleicht kannst Du ja mal für die VBA-Spezialisten schon mal reinschreiben ob Du eine Mehrfachauswahl und die entsprechende Übertragung wünscht. Könnte ja auch sein... 50 Kisten Bier erhalten und 50 Kisten Sprudel (vereinfacht geschrieben) und nur eine Erfassung statt zwei.

In diesem Sinne... have a nice Day... Gruß Helmut

Antwort 2 von BenjaminM vom 12.04.2022, 17:26 Options

Hallo,

Das ist richtig!
Ich hätte gern immer nur eine Auswahl!
Einen Übertrag pro Eingabe in die Userform.

Die selbe Lösung mit Optionsfeldern wäre auch okay.

MfG Benjamin

Antwort 3 von finger59 vom 12.04.2022, 18:34 Options

Hi Benjamin,

wie gesagt, meine VBA-Kenntnisse sind leider sehr beschränkt.

Was ich Dir als Idee mit auf dem Weg geben kann ist folgendes:

Egal ob Du die Checkboxen oder die Optionsfelder nimmst (vorteilhafter sind aber die Optionsfelder, da dann wirklich nur eine Auswahl gültig ist), so kannst Du folgendes erreichen:

Als Code hinterlegen:
Bei Optionsfeld1
Range("a1").Formula = 1

Bei Optionsfeld2
Range("a1").Formula = 2 usw....

D.h. jetzt würde in die Zelle A1 die 1, 2 usw. eingetragen.

Jetzt kommt leider wieder meine VBA-Schwäche...
mit If... eine Abfrage auf die Zelle A1 machen und bei
1, den Inhalt aus den Textboxen in die Spalte B und C in
dem Tabellenblatt Aufstellung
bei 2 - Inhalt in Spalte D und E usw...

Vielleicht hast Du mit sowas schon mal gearbeitet und es hilft Dir als Ansatz weiter. Ich selbst werde an diesem Punkt leider nicht mehr weiterkommen, es sei denn ich finde noch irgendwo eine ähnliche Anfrage und kann das irgendwie umsetzen.

Was den Übertrag aus den Textboxen als Zahl angeht, so ändere einfach den Code der Zeilen ab ( einfach * 1 dahinter stellen)

'Eintrag aus TextBox2 in erste freie Zelle übertragen
Cells(letzte_Zeile, 2) = TextBox2 * 1
'Eintrag aus TextBox3 in erste freie Zelle übertragen
Cells(letzte_Zeile, 3) = TextBox3 * 1

Leider kann ich Dir im Moment nicht weiterhelfen.

Wie gesagt, ich hoffe Du hattest schon mal mit einer Zellinhaltsabfrage zu tun und kannst das für Dich umsetzen.

Falls Du eine Lösung gefunden hast, wäre ich Dir dankbar, wenn
Du dieses entweder hier reinstellen könntest.

In diesem Sinne... have a nice Day... Gruß Helmut

Antwort 4 von fedjo vom 12.04.2022, 19:59 Options

Hallo Benjamin,
habe bei der UserForm Eingang die von Helmut vorgeschlagenen Optionsfelder eingefügt und mit ein paar If Abfragen erweitert.

Ist vielleicht ein Anfang: Getr-nkelieferungen

Gruß
fedjo

Antwort 5 von finger59 vom 12.04.2022, 21:57 Options

Hi fedjo,

das die Abfrage mit meiner A1 - Lösung einfacher geht, habe ich mir zwar auch gedacht, aber wußte nicht wie... jetzt weiß ich es :-).

Bin mal gespannt wie Benjamin Deine Lösung gefällt; ich jedenfalls habe wieder was dazu gelernt.. drum sage ich auch ..
vielen Dank dafür.

In diesem Sinne... have a nice Day... Gruß Helmut

Antwort 6 von BenjaminM vom 13.04.2022, 08:37 Options

Hey Fedjo,

danke das is es!
Man, sind die Sachen manchmal einfach!

Vielen Dank für die Hilfe auch an Helmut.

Hatte aber noch einen:

Habe bei den Textboxen diesen Code
If Not IsNumeric(TextBox2.Text) Then
TextBox2 = ""
MsgBox "Nur Zahlen gültig", , "Eingabe überprüfen"
TextBox2.SetFocus
Exit Sub
End If

If Not IsNumeric(TextBox3.Text) Then
TextBox3 = ""
MsgBox "Nur Zahlen gültig", , "Eingabe überprüfen"
TextBox3.SetFocus
Exit Sub
End If


Damit nur Zahlen eingegeben werden können.
nun ist es aber so das mit diesem Code immer in beiden Textboxen etwas stehen muss.
Das iat etwas unglücklich, es soll die Möglichkeit geben, das auch nur eine Textbox befüllt ist.
Es soll immer ein Textbox (oder auch beide) und eine Auswahl der Optiionsfelder befüllt sein.(Textboxen aber mit Abfrage auf Zahlen)
Könntet ihr noch mal schauen das noch in den Code zubekommen?

Also das der Übertrag nicht funktioniert wenn nicht min. eine Textbox und ein Optionsfeld befüllt sind?
Die MSGboxen würde ich mir dann selber anpassen.

Vielen vielen Dank schon mal

Benjamin

Antwort 7 von finger59 vom 13.04.2022, 10:39 Options

Hi Benjamin,

leider kann ich Dir ja nicht so richtig helfen und zum tüfteln fehlt mir leider im Moment die Zeit.

Ich würde behelfsmäßig so vorgehen:

Bei jedem Optionbuttons einen Code hinterlegen wie schon in AW 3
Range("a1").Formula = 1
bei jedem Optionsbutton

und beim übertragen dann danach abfragen ob das Feld A1 = 1 ist.
wenn nicht dann Msgbox - geht nicht, da kein Optionsbutton ausgewählt wurde.

Was den Eintrag in den Textboxen angeht, da kannst Du ja auch anstelle der "" die 0 setzen.

Dann hättest Du z.B. eben 10 Kisten aber 0 Flaschen drin.

Allerdings so ganz perfekt ist das auch nicht, da trotzdem erst mal der Hinweis kommt und erst bei der nächsten Übernahme klappt es dann.

Sorry... im Moment ist leider nicht mehr drin.... Gruß Helmut

Antwort 8 von finger59 vom 13.04.2022, 12:48 OptionsLösung

Lösung
Hi Benjamin,

bin wieder ein Stück weiter mit Deinem Problem.

Würde es ja als Datei ins Netz stellen, aber... die Jungs von der EDV wollen das nicht. War ja schon verwundert, dass das abholen der Datei klappte.

Eine Möglichkeit der Kommunikation wäre Du würdest mir eine Email-Adresse über den Pager zukommen lassen und ich würde Dir die Datei zumailen - das geht glücklicherweise noch.

Ansonsten müsste ich Dir hier beschreiben, was ich wo angepasst habe, wobei es sicherlich besser dann wäre, wenn Du die Datei wieder den anderen zur Verfügung stellen würdest, damit die evtl. Verbesserungen (die es mit Sicherheit gibt) vornehmen können.

Ansonsten kann ich Dir die Datei erst heute Abend hier als Link reinstellen, da ich mir die nach Hause schicke und von dort aus das reinstellen vornehmen würde.

Allgemein... wie in AW7 beschrieben.

Eine Zelle ausgesucht (A1) und diese wird von den Optionsbutton bei Aktivierung mit einer 1 gefüllt.

Abfrage auf Zelle A1 ob da eine 1 steht - wenn ja... dann weiter...
falls keine 1, dann eine Msgbox mit "is nich..." und Abbruch an der Stelle

Nach dem Übertrag die Zelle A1 wieder löschen, sowie alle Optionsbuttons auf leer stellen.

Bei Interesse bitte melden. Aber vielleicht bist Du ja schon viel weiter, da ich jetzt erst wieder dazu gekommen bin.

In diesem Sinne... have a nice Day... Gruß Helmut

Antwort 9 von BenjaminM vom 13.04.2022, 14:57 Options

Hallo Helmut,
hier nun noch mal die Datei.

Zwecks Upload von deiner Seite, hast du schon mal diesen Hoster probiert, das klappt bei mir wunderbar!

Gruß Benjamin

Antwort 10 von finger59 vom 13.04.2022, 18:36 Options

Hi Benjamin,

habe Deine Tabelle mit entsprechendem Text versehen, so dass ich mir hier den Rest erst mal erspare.

http://www.file-upload.net/download-2432539/Getraenkelieferungen-2-...

In der Hoffnung, dass es Dich ein Stück weiter bringt...

have a nice Day... Gruß Helmut

Antwort 11 von BenjaminM vom 14.04.2022, 10:30 Options

Danke Helmut,

Das bringt mich schon etwas weiter,
jedoch hat das jetzt noch nen Schönheitsfehler.

Habe im Code jetzt gesagt, das er beim laden der Userform in die Textboxen eine "0" setzen soll, damit er die Textboxen befüllt ohne das er nen Fehler ausgibt, wenn man nur einen Eintrag in eine Textbox setzt.
Jedoch, setzt er zwar beim laden der UserForm nen Focus in der Textbox2 aber man muss dann die "0" überschreiben und kann nicht sofort eine Eingabe machen!
Kennst du ne Möglichkeit das er die "0" gleich markiert, und man sie so mit einer Eingabe dann sofort überschreibt?

Ist halt notwendig wenn man nur in einer Textbox eine Eingabe macht, weil er sonst die Msgbox aufmacht wenn in einer der beiden Textboxen nichts steht.

Hoffe du verstehst mich!

MfG Benjamin
Datei

Antwort 12 von M.O. vom 14.04.2022, 12:08 Options

Hallo Benjamin,

ändere die Codes für die Aktivierung der Userformen wie folgt, dann wird die "0" in Textbox 2 schon markiert:

Private Sub UserForm_Activate()
TextBox1 = Date
TextBox2 = "0"
TextBox3 = "0"
TextBox2.SetFocus

'hier der zu ergänzende Teil für die Markierung des Inhalts von Textbox 2
With TextBox2
.SelStart = 0
.SelLength = Len(.Text)
End With

End Sub


Gruß

M.O.

Ähnliche Themen

Frage zu einem VBA-Code
Donjuandan  25.11.2008 - 43 Hits - 6 Antworten

Excel/VBA: Checkbox-Größe fixieren
Thorsten81  11.03.2009 - 670 Hits - 3 Antworten

Ergänzung zu VBA Code
DOMMEl  04.10.2009 - 323 Hits - 22 Antworten

VBA Code / Makro
DOMMEl  08.10.2009 - 186 Hits - 3 Antworten

VBA Code Ergänzung
DOMMEl  16.10.2009 - 373 Hits - 36 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026