Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA-Projekt_Hilfe alles
#11
Hallöchen,

ja, das hat Stefan in der Änderung seiner Antwort (zeitlich nach Deiner Frage) geschrieben.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#12
Jut, jut... Dann schau ich mir das morgen weiter an.
Antworten Top
#13
Das mit dem Datum klappt... Danke dafür.

Code:
.Cells(letzte_Zeile, 13) = CDate(TextBox13.Text)
Antworten Top
#14
...vor dem Fehler ist nach dem Fehler oder so Wink... "Fremdsprachen" sind ein Graus für mich  Dodgy ...

Code:
Private Sub CommandButton3_Click()
'Variable deklarieren
Dim letzte_Zeile As String
Dim Ende As String
Dim ctrElement As Control

With Worksheets("Daten_WS")

'Die letzte beschrieben Zeile in Spalte A ermitteln
letzte_Zeile = .Range("A65536").End(xlUp).Offset(1, 0).Row
'Eintrag aus TextBox1 (W-Listen-Nr.) in erste freie Zelle  übertragen
.Cells(letzte_Zeile, 1) = TextBox1.Text
'Eintrag aus TextBox2 (Aktenzeichen) in erste frei Zeile  übertragen
.Cells(letzte_Zeile, 2) = TextBox2.Text
'Eintrag aus TextBox3 (Name) in erste frei Zeile  übertragen
.Cells(letzte_Zeile, 3) = TextBox3.Text
'Eintrag aus TextBox4 (Vorname) in erste freie Zelle  übertragen
.Cells(letzte_Zeile, 4) = TextBox4.Text
'Eintrag aus TextBox5 (Wohn A/B/C) in erste freie Zelle  übertragen
.Cells(letzte_Zeile, 5) = TextBox5.Text
'Eintrag aus TextBox6 (Bescheid vom) in erste freie Zelle  übertragen
.Cells(letzte_Zeile, 6) = TextBox6.Text
'Eintrag aus TextBox7 (Bescheid Nr.) in erste freie Zelle  übertragen
.Cells(letzte_Zeile, 7) = TextBox7.Text
'Eintrag aus TextBox8 (Widerspruchsrate) in erste freie Zelle  übertragen
.Cells(letzte_Zeile, 8) = TextBox8.Text
'Eintrag aus TextBox9 (Rückforderung) in erste freie Zelle  übertragen
.Cells(letzte_Zeile, 9) = TextBox9.Text
'Eintrag aus TextBox10 (Widerspruch vom) in erste freie Zelle  übertragen
.Cells(letzte_Zeile, 10) = TextBox10.Text
'Eintrag aus TextBox11(Eingang 1. Instanz) in erste freie Zelle  übertragen
.Cells(letzte_Zeile, 11) = CDate(TextBox11.Text)
'Eintrag aus TextBox12 (Eingang 2. Instanz) in erste freie Zelle  übertragen
.Cells(letzte_Zeile, 12) = CDate(TextBox12.Text)
'Eintrag aus TextBox13 (Erledigt am) in erste freie Zelle  übertragen
.Cells(letzte_Zeile, 13) = CDate(TextBox13.Text)
'Eintrag aus TextBox14 (Erledigungsart) in erste freie Zelle  übertragen
.Cells(letzte_Zeile, 14) = CDbl(TextBox14.Text)
'Eintrag aus TextBox15 (Standort) in erste freie Zelle  übertragen
.Cells(letzte_Zeile, 15) = TextBox15.Text
'Eintrag aus TextBox16 (Vermerk) in erste freie Zelle  übertragen
.Cells(letzte_Zeile, 16) = TextBox16.Text

End With

'Formular Löschen
 For Each ctrElement In Controls
   Select Case TypeName(ctrElement)
     Case "TextBox": ctrElement = ""
     End Select
 Next
 
'Listbox löschen
ListBox1.Clear


'Sichtbarkeit Button
Me.CommandButton3.Enabled = False
CommandButton3.Visible = False
CommandButton10.Visible = True

End Sub

Lasse ich TextBox 12, 13  oder 14 leer, dann kommt "Laufzeitfehler '13' Typen Unverträglichkeit." Ick versteh det nich Huh...

EDIT: Soll es so "einfach" sein? Habe noch folgendes eingefügt:
Code:
Private Sub CommandButton3_Click()
On Error GoTo EERR

Exit Sub
EERR:
End Sub
Antworten Top
#15
Hallo,

einen Leerstring (oder Text) kann CDate nicht in ein Datum umwandeln. Versuche es mal so

Code:
If IsNumeric(TextBox11.Text) Then .Cells(letzte_Zeile, 11) = CDate(TextBox11.Text)
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • sandormiles
Antworten Top
#16
Hallo Stefan... So soll es dann wohl aussehen.
Code:
'Eintrag aus TextBox11(Eingang 1. Instanz) in erste freie Zelle  übertragen
If IsNumeric(TextBox11.Text) Then .Cells(letzte_Zeile, 11) = CDate(TextBox11.Text)
'Eintrag aus TextBox12 (Eingang 2. Instanz) in erste freie Zelle  übertragen
If IsNumeric(TextBox12.Text) Then .Cells(letzte_Zeile, 12) = CDate(TextBox12.Text)
'Eintrag aus TextBox13 (Erledigt am) in erste freie Zelle  übertragen
If IsNumeric(TextBox13.Text) Then .Cells(letzte_Zeile, 13) = CDate(TextBox13.Text)
'Eintrag aus TextBox14 (Erledigungsart) in erste freie Zelle  übertragen
If IsNumeric(TextBox14.Text) Then .Cells(letzte_Zeile, 14) = CDbl(TextBox14.Text)
'Eintrag aus TextBox15 (Standort) in erste freie Zelle  übertragen

und zur Sicherheit gleich gefragt. Mit TextBox14 (eine einfache Zahl zwischen 0 und 9) geht das so in Ordnung?
Antworten Top
#17
Hallo,

da wäre CInt bzw CLng besser geeignet denn Du brauchst hier ganze Zahlen und keine Fließkommazahlen.
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#18
Danke Stefan!

Hab alles eingearbeitet und funktioniert.

Schönen Abend!
Grüße

Sandor
Antworten Top
#19
Neue Frage neues Glück... Mit nachfolgendem Code soll die Userform geschlossen werden. Das klappt soweit, aber die Frage nach Speichern mit "nein" wird zweimal gestellt. Bei "ja" läuft das Script richtig durch.

Code:
Private Sub CommandButton13_Click() 'Änderungen an Daten speichern

Dim letzte_Zeile As Integer
Dim ctrElement As Control

    If TextBox1.Text = "" Then
    'UserForm schließen
    Unload Me
    Exit Sub

Else

    If MsgBox("Den angezeigten Datensatz speichern ?", 36, "Sicherheitsabfrage") = vbYes Then

    '
    '   ändern
    '


   If TextBox2.Text = "" Then
        MsgBox "Sie müssen ein Aktenzeichen eingeben - Danke.", _
             48, "   Hinweis für " & Application.UserName
        TextBox2.SetFocus
        Exit Sub
    End If
  
  
   If TextBox3.Text = "" Then
        MsgBox "Sie müssen einen Namen eingeben - Danke.", _
            48, "   Hinweis für " & Application.UserName
        TextBox3.SetFocus
        Exit Sub
    End If
  
  
   If TextBox4.Text = "" Then
      MsgBox "Sie müssen einen Vornamen eingeben - Danke.", _
         48, "   Hinweis für " & Application.UserName
      TextBox4.SetFocus
      Exit Sub
   End If
  
  
    '
    '   die Daten sind geprüft und können in die Tabelle eingetragen werden
    '
  
Application.ScreenUpdating = True

   With Worksheets("Daten_WS")
      
        'Die letzte beschrieben Zeile in Spalte A ermitteln
        letzte_Zeile = .Range("A65536").End(xlUp).Offset(1, 0).Row
        'Eintrag aus TextBox1 (W-Listen-Nr.) in erste freie Zelle  übertragen
        .Cells(letzte_Zeile, 1) = TextBox1.Text
        'Eintrag aus TextBox2 (Aktenzeichen) in erste frei Zeile  übertragen
        .Cells(letzte_Zeile, 2) = TextBox2.Text
        'Eintrag aus TextBox3 (Name) in erste frei Zeile  übertragen
        .Cells(letzte_Zeile, 3) = TextBox3.Text
        'Eintrag aus TextBox4 (Vorname) in erste freie Zelle  übertragen
        .Cells(letzte_Zeile, 4) = TextBox4.Text
        'Eintrag aus TextBox5 (Wohn A/B/C) in erste freie Zelle  übertragen
        .Cells(letzte_Zeile, 5) = TextBox5.Text
        'Eintrag aus TextBox6 (Bescheid vom) in erste freie Zelle  übertragen
        .Cells(letzte_Zeile, 6) = TextBox6.Text
        'Eintrag aus TextBox7 (Bescheid Nr.) in erste freie Zelle  übertragen
        .Cells(letzte_Zeile, 7) = TextBox7.Text
        'Eintrag aus TextBox8 (Widerspruchsrate) in erste freie Zelle  übertragen
        .Cells(letzte_Zeile, 8) = TextBox8.Text
        'Eintrag aus TextBox9 (Rückforderung) in erste freie Zelle  übertragen
        .Cells(letzte_Zeile, 9) = TextBox9.Text
        'Eintrag aus TextBox10 (Widerspruch vom) in erste freie Zelle  übertragen
        .Cells(letzte_Zeile, 10) = TextBox10.Text
        'Eintrag aus TextBox11(Eingang 1. Instanz) in erste freie Zelle  übertragen
        If IsNumeric(TextBox11.Text) Then .Cells(letzte_Zeile, 11) = CDate(TextBox11.Text)
        'Eintrag aus TextBox12 (Eingang 2. Instanz) in erste freie Zelle  übertragen
        If IsNumeric(TextBox12.Text) Then .Cells(letzte_Zeile, 12) = CDate(TextBox12.Text)
        'Eintrag aus TextBox13 (Erledigt am) in erste freie Zelle  übertragen
        If IsNumeric(TextBox13.Text) Then .Cells(letzte_Zeile, 13) = CDate(TextBox13.Text)
        'Eintrag aus TextBox14 (Erledigungsart) in erste freie Zelle  übertragen
        If IsNumeric(TextBox14.Text) Then .Cells(letzte_Zeile, 14) = CDbl(TextBox14.Text)
        'Eintrag aus TextBox15 (Standort) in erste freie Zelle  übertragen
        .Cells(letzte_Zeile, 15) = TextBox15.Text
        'Eintrag aus TextBox16 (Vermerk) in erste freie Zelle  übertragen
        .Cells(letzte_Zeile, 16) = TextBox16.Text
      
   End With
  
    'Formular Löschen
    For Each ctrElement In Controls
    Select Case TypeName(ctrElement)
    Case "TextBox": ctrElement = ""
    End Select
  
  Next
  
    'Listbox löschen
    ListBox1.Clear

Unload Me

Else

    If MsgBox("Den angezeigten Datensatz speichern ?", 36, "Sicherheitsabfrage") = vbNo Then

    Unload Me


End If
End If
End If

End Sub
Antworten Top
#20
Neue Frage neues Glück... Mit nachfolgendem Code soll die Userform geschlossen werden. Das klappt soweit, aber die Frage nach Speichern mit "nein" wird zweimal gestellt. Bei "ja" läuft das Script richtig durch.

Code:
Private Sub CommandButton13_Click() 'Änderungen an Daten speichern

Dim letzte_Zeile As Integer
Dim ctrElement As Control

   If TextBox1.Text = "" Then
   'UserForm schließen
   Unload Me
   Exit Sub

Else

   If MsgBox("Den angezeigten Datensatz speichern ?", 36, "Sicherheitsabfrage") = vbYes Then

   '
   '   ändern
   '


  If TextBox2.Text = "" Then
       MsgBox "Sie müssen ein Aktenzeichen eingeben - Danke.", _
            48, "   Hinweis für " & Application.UserName
       TextBox2.SetFocus
       Exit Sub
   End If
 
 
  If TextBox3.Text = "" Then
       MsgBox "Sie müssen einen Namen eingeben - Danke.", _
           48, "   Hinweis für " & Application.UserName
       TextBox3.SetFocus
       Exit Sub
   End If
 
 
  If TextBox4.Text = "" Then
     MsgBox "Sie müssen einen Vornamen eingeben - Danke.", _
        48, "   Hinweis für " & Application.UserName
     TextBox4.SetFocus
     Exit Sub
  End If
 
 
   '
   '   die Daten sind geprüft und können in die Tabelle eingetragen werden
   '
 
Application.ScreenUpdating = True

  With Worksheets("Daten_WS")
     
       'Die letzte beschrieben Zeile in Spalte A ermitteln
       letzte_Zeile = .Range("A65536").End(xlUp).Offset(1, 0).Row
       'Eintrag aus TextBox1 (W-Listen-Nr.) in erste freie Zelle  übertragen
       .Cells(letzte_Zeile, 1) = TextBox1.Text
       'Eintrag aus TextBox2 (Aktenzeichen) in erste frei Zeile  übertragen
       .Cells(letzte_Zeile, 2) = TextBox2.Text
       'Eintrag aus TextBox3 (Name) in erste frei Zeile  übertragen
       .Cells(letzte_Zeile, 3) = TextBox3.Text
       'Eintrag aus TextBox4 (Vorname) in erste freie Zelle  übertragen
       .Cells(letzte_Zeile, 4) = TextBox4.Text
       'Eintrag aus TextBox5 (Wohn A/B/C) in erste freie Zelle  übertragen
       .Cells(letzte_Zeile, 5) = TextBox5.Text
       'Eintrag aus TextBox6 (Bescheid vom) in erste freie Zelle  übertragen
       .Cells(letzte_Zeile, 6) = TextBox6.Text
       'Eintrag aus TextBox7 (Bescheid Nr.) in erste freie Zelle  übertragen
       .Cells(letzte_Zeile, 7) = TextBox7.Text
       'Eintrag aus TextBox8 (Widerspruchsrate) in erste freie Zelle  übertragen
       .Cells(letzte_Zeile, 8) = TextBox8.Text
       'Eintrag aus TextBox9 (Rückforderung) in erste freie Zelle  übertragen
       .Cells(letzte_Zeile, 9) = TextBox9.Text
       'Eintrag aus TextBox10 (Widerspruch vom) in erste freie Zelle  übertragen
       .Cells(letzte_Zeile, 10) = TextBox10.Text
       'Eintrag aus TextBox11(Eingang 1. Instanz) in erste freie Zelle  übertragen
       If IsNumeric(TextBox11.Text) Then .Cells(letzte_Zeile, 11) = CDate(TextBox11.Text)
       'Eintrag aus TextBox12 (Eingang 2. Instanz) in erste freie Zelle  übertragen
       If IsNumeric(TextBox12.Text) Then .Cells(letzte_Zeile, 12) = CDate(TextBox12.Text)
       'Eintrag aus TextBox13 (Erledigt am) in erste freie Zelle  übertragen
       If IsNumeric(TextBox13.Text) Then .Cells(letzte_Zeile, 13) = CDate(TextBox13.Text)
       'Eintrag aus TextBox14 (Erledigungsart) in erste freie Zelle  übertragen
       If IsNumeric(TextBox14.Text) Then .Cells(letzte_Zeile, 14) = CDbl(TextBox14.Text)
       'Eintrag aus TextBox15 (Standort) in erste freie Zelle  übertragen
       .Cells(letzte_Zeile, 15) = TextBox15.Text
       'Eintrag aus TextBox16 (Vermerk) in erste freie Zelle  übertragen
       .Cells(letzte_Zeile, 16) = TextBox16.Text
     
  End With
 
   'Formular Löschen
   For Each ctrElement In Controls
   Select Case TypeName(ctrElement)
   Case "TextBox": ctrElement = ""
   End Select
 
 Next
 
   'Listbox löschen
   ListBox1.Clear

Unload Me

Else

   If MsgBox("Den angezeigten Datensatz speichern ?", 36, "Sicherheitsabfrage") = vbNo Then

   Unload Me


End If
End If
End If

End Sub
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste