Office-Fragen.de

Normale Version: Überarbeitung einer kleinen Kunden-/Adreßverwaltung
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,
unter  Excel VBA-Forum - Das Forum zu Microsoft Excel VBA habe ich schon mal gefragt. Aber da komme ich nicht weiter. Deswegen versuche ich es hier mal, zumal ich hier auch meine Excelmappe hochladen kann.



Ich habe unter Excel 2021 eine Mappe mit Makros angelegt. Dort ein Formular mit mehreren TextBoxen/Labels, 2 ComboBoxen und einem Button zum Speichern.

Geht um eine kleine Kunden-/Adreßverwaltung. Ich würde Euch gerne mal meine Mappe zeigen. Kann ich hier keine Anlagen beifügen?

Ich frage die wichtigsten TextBoxen auf Inhalt ab. Ist kein Eintrag, kommt eine Fehlermeldung.
Gebe ich die Daten ein und klicke auf Speichern, werden die Daten in einer Tabelle reinkopiert. Danach werden die TextBoxen gelöscht, um dann weitere Daten einfügen zu können.

Ich hatte schon was in Facebook-Gruppe (Excel VBA Programmierung | Facebook) geschrieben. Aber mir konnte da scheinbar niemand mehr helfen, es kam zumindest nix mehr.

Ich hatte die Mappe in FB hochgeladen. Jetzt schreibt mir einer, das UserForm sollte sich automatisch öffnen (das bekomme ich noch hin), die Quelltexte könnten optimiert werden und eine Funktion zum Suchen/Ändern von Einträgen. Ich weiß nicht wo ich da was optimieren könnte. Und Daten suchen/ändern, wie mache ich das? Muß ich ein neues zusätzliches Formular für die Suche/Änderung anlegen und dann ne Abfrage machen? Da ich gerade erst ein Fernstudium VBA-Programmierung mache, habe ich noch nicht viele Kenntnisse.



LG
Heiko
Hallo Heiko,

ich habe mal eine Listobjekt (formatierte Tabelle "Tbl_Stammdaten") draus gemacht und den Code zum Eintragen dazu passend geschrieben.
Code:
Option Explicit

Private Sub cmd_Speichern_Click()
    Dim i&, arrZ(), arrCnt(): arrCnt = Array("cmb_Anrede", "txt_Titel", "txt_Vorname", "txt_Name", "txt_Strasse", "txt_Hausnummer", "txt_PLZ", "txt_Ort", "cmb_Land", "txt_Telefon", "txt_Handy", "txt_EMail", "txt_Internet", "txt_Kundennummer")
    ReDim arrZ(1 To 1, 1 To UBound(arrCnt) + 1)
    For i = LBound(arrCnt) To UBound(arrCnt)
        arrZ(1, i + 1) = Controls(arrCnt(i))
        arrCnt(i) = ""
    Next i
    Tabelle1.ListObjects(1).ListRows.Add.Range.Resize(1, UBound(arrZ, 2)) = arrZ
End Sub

Private Sub UserForm_Initialize()
    cmb_Anrede.List = Array("Frau", "Herr", "Divers")
    cmb_Land.List = Array("Deutschland", "Österreich", "Schweiz", "Spanien")
    cmb_Anrede.ListIndex = 0
    cmb_Land.ListIndex = 0
End Sub
Mehr braucht es dafür eigentlich nicht.
[attachment=1597]

Gruß Uwe
sorry Pflichtfelder hatte ich vergessen. Die Prozedur mit Pflichtfelder dann so:
Code:
Private Sub cmd_Speichern_Click()
    Dim i&, arrZ(), arrCnt(): arrCnt = Array("cmb_Anrede", "txt_Titel", "txt_Vorname", "txt_Name", "txt_Strasse", "txt_Hausnummer", "txt_PLZ", "txt_Ort", "cmb_Land", "txt_Telefon", "txt_Handy", "txt_EMail", "txt_Internet", "txt_Kundennummer")
    ReDim arrZ(1 To 1, 1 To UBound(arrCnt) + 1)
    For i = 2 To 7
        If Controls(arrCnt(i)) = "" Then
            MsgBox "Das Feld """ & arrCnt(i) & """ darf nicht leer bleiben!", vbExclamation, "fehlende Eingabe"
            Controls(arrCnt(i)).SetFocus
            Exit Sub
        End If
    Next i
    For i = LBound(arrCnt) To UBound(arrCnt)
        arrZ(1, i + 1) = Controls(arrCnt(i))
        arrCnt(i) = ""
    Next i
    Tabelle1.ListObjects(1).ListRows.Add.Range.Resize(1, UBound(arrZ, 2)) = arrZ
End Sub

Gruß Uwe
Hallo Heiko,
 
hier mal ein erster Schritt zum Weg einer brauchbaren Tabellenverwaltung via Userform. Erst mal habe ich nur Neu Eintragen nebst Fehlerbehandlung eingebaut.
Dies funktioniert auf Basis Listobjekt. Den Rest: Filtern / Eintrag ändern / Löschen kann ich bei Bedarf noch nachreichen.
Aber versuche erst mal auf dieser Basis weiter zu bauen.
[attachment=1598]
 
Gruß Uwe