Thema Datum  Von Nutzer Rating
Antwort
Rot VBA Excel Eingabemaske Speicherbutton
05.05.2017 14:30:20 CodeBert
Solved
06.05.2017 13:27:03 BigBen
Solved
24.05.2017 16:25:27 Codebert
Solved
02.06.2017 13:33:39 CodeBert
Solved

Ansicht des Beitrags:
Von:
CodeBert
Datum:
05.05.2017 14:30:20
Views:
1001
Rating: Antwort:
 Nein
Thema:
VBA Excel Eingabemaske Speicherbutton

Moinmoin an alle fleißigen Foristen hier! :)

Ich bin VBA- und generell Programmieranfänger und stehe gerade vor meinem ersten größeren Projekt sag ich mal, eine Mini-Datenbank in Excel, gerade schreibe ich eine Eingabemaske. Die Eingabemaske besteht aus einer Listbox links, einigen Textfeldern/Comboboxen, und 3 Buttons: "Neuer Eintrag", "Speichern" und "Löschen". Die Listbox besteht aus zwei Spalten, ID & Vermieter, die ID-Spalte ist  ausgeblendet, ist nur da um den passenden Datensatz zu finden. Eigentlich funktioniert alles wie von mir gewollt außer der Speichern Button. Er soll Änderungen in den Textboxen in die passenden Zellen im Datensatz eintragen, stattdessen macht er zur Zeit das gleiche wie ein Klick in die Listbox und schreibt den Inhalt der Zellen in die Textboxen, also quasi verkehrt herum. Bin den Code auch schon Schritt für Schritt durchgegangen, alle Schritte davor funktionieren wie gewollt. Hier der code:

 

Private Sub cmd_VSave_Click()


  Dim iRow As Long
  
    
    If Lst_Vrmtr.ListIndex = -1 Then Exit Sub
    
    
    If Trim(CStr(txt_VName.Text)) = "" Then
        
        MsgBox "Bitte trage einen Namen ein!", vbCritical + vbOKOnly, "Fehler!"
        Exit Sub
    End If
    
    
    
    iRow = 2
   
    Do While Trim(CStr(WksVrmtr.Cells(iRow, 1).Value)) <> ""
    
         
        If Lst_Vrmtr.List(Lst_Vrmtr.ListIndex, 0) = Trim(CStr(WksVrmtr.Cells(iRow, 1).Value)) Then
        
            With WksVrmtr
             .Cells(iRow, 1).Value = Trim(CStr(txt_VID.Text))
             .Cells(iRow, 2).Value = txt_VName.Text
             .Cells(iRow, 3).Value = cmb_VAnrede.Text
             .Cells(iRow, 4).Value = txt_VHandyA.Text
             .Cells(iRow, 5).Value = txt_VHandyB.Text
             .Cells(iRow, 6).Value = txt_VFestnetz.Text
             .Cells(iRow, 7).Value = txt_VFax.Text
             .Cells(iRow, 8).Value = txt_VMail.Text
             .Cells(iRow, 9).Value = txt_VHomepage.Text
             .Cells(iRow, 10).Value = txt_VAnmerkung.Text
            End With
            
            
            If Lst_Vrmtr.List(Lst_Vrmtr.ListIndex, 1) <> Trim(CStr(txt_VName.Text)) Then
                Call UserForm_Initialize 
                If Lst_Vrmtr.ListCount > 0 Then ListBox1.ListIndex = 0
            'End If
            
            Exit Do
            
        End If
    
        iRow = iRow + 1
    Loop
    

End Sub

Mein nächster Ansatz wäre hier irgendwas mit .ControlSource zu bauen, dass quasi einmal kurz die direkte Verknüpfung zur Tabelle gemacht wird um die Daten eintragen zu lassen, und dann die die Verknüpfung wieder zu kappen, damit man wieder in die Textfelder schreiben kann ohne dass es gleich übertragen wird. Habe aber das Gefühl, das ist sehr umständlich und geht irgendwie auch einfacher, übersehe ich gerade irgendwas simples?

Vielen Dank im Vorraus schonmal, ich freue mich auf eure beiträge! :)


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot VBA Excel Eingabemaske Speicherbutton
05.05.2017 14:30:20 CodeBert
Solved
06.05.2017 13:27:03 BigBen
Solved
24.05.2017 16:25:27 Codebert
Solved
02.06.2017 13:33:39 CodeBert
Solved