Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1584to1588
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Anfänger: Userform um Checkboxen erweitern

Anfänger: Userform um Checkboxen erweitern
22.10.2017 19:20:14
Rüdiger
Hallo zusammen,
könnte mir bitte jemand helfen ?
Ich habe eine Eingabemaske für eine simple Exceltabelle erstellt.
Ziel ist es mit dem Userform eine Exceltabelle zu füllen, aber auch gleichzeitig bereits eingetragene Daten mit dem Userform auszulesen.
Ich habe habe jetzt die Tabelle um 17 Spalten erweitert und jede Spalte(nbezeichnung) soll pro Zeile als Checkbox auswählbar sein.
Hier der jetzige Stand:

Die Datei https://www.herber.de/bbs/user/117156.xlsm wurde aus Datenschutzgründen gelöscht


(Userform ist nur funktional, noch nicht schön :-))
jetzt sollen die Spalten P bis AF noch per Checkbox im Userform an und abwählbar sein und in der Excelliste mit Ja oder Nein ausgegeben werden.
Im Userform selber habe ich bereits 17 Checkboxen und Labelboxen per Multipage hinzugefügt.

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Anfänger: Userform um Checkboxen erweitern
22.10.2017 19:50:45
Nepumuk
Hallo Rüdiger,
teste mal:
Private Sub EINTRAG_LADEN_UND_ANZEIGEN()
    Dim lZeile As Long
    Dim i As Integer
    
    'Eingabefelder resetten
    For i = 1 To iCONST_ANZAHL_EINGABEFELDER
        Me.Controls("TextBox" & i) = ""
    Next i
    
    'Nur wenn ein Eintrag selektiert/markiert ist
    If ListBox1.ListIndex >= 0 Then
        
        'Die Zeilennummer des Datensatzes steht in der ersten ausgeblendeten Spalte der Liste,
        'somit können wir direkt zugreifen.
        lZeile = ListBox1.List(ListBox1.ListIndex, 0)
        
        For i = 1 To iCONST_ANZAHL_EINGABEFELDER
            Me.Controls("TextBox" & i) = Tabelle1.Cells(lZeile, i).Text
        Next i
        
        For i = 1 To 16
            Controls("Checkbox" & CStr(i)).Value = Cells(lZeile, i + 18).Value = "Ja" ' ###NEU###
        Next
        
    End If
    
End Sub

Private Sub EINTRAG_SPEICHERN()
    Dim lZeile As Long
    Dim i As Integer
    
    'Wenn kein Datensatz in der ListBox markiert wurde, wird die Routine beendet
    If ListBox1.ListIndex = -1 Then Exit Sub
    
    'Zum Speichern benötigen wir die Zeilennummer des ausgewählten Datensatzes
    lZeile = ListBox1.List(ListBox1.ListIndex, 0)
    
    For i = 1 To iCONST_ANZAHL_EINGABEFELDER
        Tabelle1.Cells(lZeile, i) = Me.Controls("TextBox" & i)
    Next i
    
    For i = 1 To 16
        Cells(lZeile, i + 18).Value = IIf(Controls("Checkbox" & CStr(i)).Value, "Ja", "Nein") ' ###NEU###
    Next
    
    'Der Benutzer könnte die angezeigten Werte in der Liste geändert haben,
    'daher aktualisieren wir den ausgewählten Eintrag entsprechend.
    ListBox1.List(ListBox1.ListIndex, 1) = TextBox1
    ListBox1.List(ListBox1.ListIndex, 2) = Textbox2
    ListBox1.List(ListBox1.ListIndex, 3) = TextBox3
    
End Sub

Gruß
Nepumuk
Anzeige
Ooooops
22.10.2017 19:59:23
Nepumuk
Hallo Rüdiger,
ich bin durcheinander gekommen das es in deiner Liste in Spalte R nochmal "Anzahl Drucke" gibt. Du musst 2 Zeilen ändern:
Cells(lZeile, i + 15).Value = IIf(Controls("Checkbox" & CStr(i)).Value, "Ja", "Nein") ' ###NEU###
und:
Controls("Checkbox" & CStr(i)).Value = Cells(lZeile, i + 15).Value = "Ja" ' ###NEU###
Gruß
Nepumuk
AW: Ooooops
22.10.2017 20:15:58
Rüdiger
Hallo Nepumuk,
super vielen Dank !!!!
Habe die Spalte Anzahl Drucke gelöscht (sollte nur eine Textbox sein)
Danach noch den Wert Cells(lZeile, i + 18) auf Cells(lZeile, i + 15) abgeändert und nun klappt alles so wie es soll.
Danke :-)
Anzeige
AW: Ooooops
22.10.2017 20:40:13
Rüdiger
Nepumuk,
hättest du noch eine Idee, möchte noch 2 Buttons in dem Userform haben.
Button 1 "Auftrag drucken"
- Es soll eine DinA4 Seite quasi als Screenshot zusammengefasst werden.
Multipage Seite 1 und Seite 2 untereinander.
Button 2 "Auftrag per EMail senden"
- gleiche optik wie Auftrag drucken, nur halt im PDF-Format direkt in Outlook als Anhang zu öffnen.
Mein Ansatz war die im Excel Menü "Datei speichern und als PDF senden" Funktion in Excel zu nutzen, allerdings klappt dies ja nicht mit der Userform Zusammenfassung !
AW: Ooooops
22.10.2017 21:00:20
Nepumuk
Hallo Rüdiger,
ich würde ein Tabellenblatt entsprechend "schön" gestalten und da die Daten per Button reinschreiben und das dann drucken. Das sieht allemal besser aus.
Gruß
Nepumuk
Anzeige
AW: Ooooops
22.10.2017 21:07:06
Rüdiger
okay mit Pivot ja kein Problem :-)
AW: Ooooops
22.10.2017 22:06:36
Andreas
Kann man eigentlich diese ganzen Checkboxen auch mit dem Namen (CAption) alle zusammen in eine Zelle eintragen und auslesen lassen? Also dass ich bei 100 checkboxen nicht 100 spalten brauche, sondern alles in einer ZElle, zb. mit komma getrennt, und am besten mit der CAption BEzeichnung der CHeckbox
In einer Zelle dann quasi: Peter, Fritz, Lischen, Hans
ich hoffe ihr versteht was ich meine, bin auch absoluter anfänger :)
Jein
23.10.2017 10:47:56
Nepumuk
Hallo Andreas,
programmtechnisch ein erheblicher Mehraufwand. Und was soll's, du hast über 1.000.000 Zeilen und über 16.000 Spalten, das sind 17.179.869.184 in Worten über 17 Milliarden Zellen in einen Tabellenblatt, da muss man nicht geizen.
Gruß
Nepumuk
Anzeige
AW: Jein
24.10.2017 09:17:01
Larson-Sei180
Dann noch eine Frage:
Wenn ich genau in diesem o.g. Beispiel anstatt diese Checkboxen mehrere Comoboboxen einpflege. Kann ich die werte dann auch im Tabellenblatt in der passende zeile die werte der jeweiligen Comboboxen abspeichern bzw. auch wieder durch die Listbix abrufen?
AW: Jein
24.10.2017 10:39:32
Nepumuk
Hallo,
ja das geht.
Gruß
Nepumuk
AW: Jein
24.10.2017 10:57:43
Larson-Sei180
Kannst du mir sagen, was ich da beim Laden und Speichern eingeben muss ?
AW: Jein
24.10.2017 10:59:41
Larson-Sei180
Kannst du mir sagen, was ich da beim Laden und Speichern eingeben muss ?
Angelehnt am gleichen quelltext wie oben im Beispiel...
Anzeige
AW: Ooooops
25.10.2017 12:55:12
Larson-Sei180

Private Sub EINTRAG_LADEN_UND_ANZEIGEN()
Dim lZeile As Long
Dim i As Integer
'Eingabefelder resetten
For i = 1 To iCONST_ANZAHL_EINGABEFELDER
Me.Controls("TextBox" & i) = ""
Next i
'Nur wenn ein Eintrag selektiert/markiert ist
If ListBox1.ListIndex >= 0 Then
'Die Zeilennummer des Datensatzes steht in der ersten ausgeblendeten Spalte der Liste,
'somit können wir direkt zugreifen.
lZeile = ListBox1.List(ListBox1.ListIndex, 0)
For i = 1 To iCONST_ANZAHL_EINGABEFELDER
Me.Controls("TextBox" & i) = Tabelle1.Cells(lZeile, i).Text
Next i
For i = 1 To 16
Controls("Checkbox" & CStr(i)).Value = Cells(lZeile, i + 18).Value = "Ja" ' ###NEU## _
Next
End If
End Sub
Private Sub EINTRAG_SPEICHERN()
Dim lZeile As Long
Dim i As Integer
'Wenn kein Datensatz in der ListBox markiert wurde, wird die Routine beendet
If ListBox1.ListIndex = -1 Then Exit Sub
'Zum Speichern benötigen wir die Zeilennummer des ausgewählten Datensatzes
lZeile = ListBox1.List(ListBox1.ListIndex, 0)
For i = 1 To iCONST_ANZAHL_EINGABEFELDER
Tabelle1.Cells(lZeile, i) = Me.Controls("TextBox" & i)
Next i
For i = 1 To 16
Cells(lZeile, i + 18).Value = IIf(Controls("Checkbox" & CStr(i)).Value, "Ja", "Nein") '  _
###NEU###
Next
'Der Benutzer könnte die angezeigten Werte in der Liste geändert haben,
'daher aktualisieren wir den ausgewählten Eintrag entsprechend.
ListBox1.List(ListBox1.ListIndex, 1) = TextBox1
ListBox1.List(ListBox1.ListIndex, 2) = Textbox2
ListBox1.List(ListBox1.ListIndex, 3) = TextBox3
End Sub

Danke für deine Antwort. Leider kann ich mit dem File nicht viel anfangen, da ich die ganza ABfrage eigentlich in die o.g. Routine mit einbauen wollte. Bin mir leider nicht sicher, wie ich hier zum einen den Eintrag laden und aber auch speichern kann, wenn es sich um eine Combobox handelt
Anzeige
AW: Ooooops
25.10.2017 13:00:08
Nepumuk
Hallo,
bau dir das Userform so um wie du es benötigst und stell deine Fragen dann in einem neuen Thread. Sonst wird das hier nur ein Durcheinander, zudem wird dieser Thread ziemlich bald im Archiv verschwinden.
Gruß
Nepumuk

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige