Hi,
die Lösung für die Msgbox hat Stefan ja schon gepostet.
Ich habe Dir mal Deine Mammut-Makros zusammengefasst und eine Formatierung für Zahlen und Telefonnummern eingebaut (die zwei Teile für die beiden Blätter könnten auch noch zusammengefasst werden):
Option Explicit
Private Sub CommandButton1_Click()
'Variable deklarieren
Dim erste_freie_Zeile As Long
Dim i As Integer
If TextBox1 = "" Then Exit Sub
'erste freie Zeile in Blatt "Master" ermitteln
'und in Variable "erste_freie_Zeile" schreiben
erste_freie_Zeile = Sheets("Master").Cells(Rows.Count, 1).End(xlUp).Row + 1 'Erste freie Zeile der Spalte A (1)
'In Blatt "Master"
With Sheets("Master")
'alle Textboxen durchgehen
For i = 1 To 35
'Entscheidung, welches Format die Werte haben
Select Case i
'Spaltennummer
' Case Is = 2, 18, 20, 22, 23 'Datumfelder
' If IsDate(Me.Controls("TextBox" & i)) Then
' Cells(erste_freie_Zeile, i).Value = CDate(Me.Controls("TextBox" & i))
' Else
' Cells(erste_freie_Zeile, i) = ""
' End If
'Spaltennummer
Case Is = 1, 3, 4 'Zahlenfelder
If IsNumeric(Me.Controls("TextBox" & i)) Then
.Cells(erste_freie_Zeile, i).Value = CLng(Me.Controls("TextBox" & i))
Else
.Cells(erste_freie_Zeile, i) = ""
End If
'Spaltennummer
Case Is = 18, 27 'Telefonnummer
.Cells(erste_freie_Zeile, i).Value = CStr(Me.Controls("TextBox" & i))
Case Else
.Cells(erste_freie_Zeile, i).Value = Me.Controls("TextBox" & i)
End Select
Next i
End With
'erste freie Zeile in Blatt "Projekt X" ermitteln
'und in Variable "erste_freie_Zeile" schreiben
erste_freie_Zeile = Sheets("Projekt X").Cells(Rows.Count, 1).End(xlUp).Row + 1 'Erste freie Zeile der Spalte A (1)
'In Blatt "Projekt X"
With Sheets("Projekt X")
'alle Textboxen durchgehen
For i = 1 To 35
'Entscheidung, welches Format die Werte haben
Select Case i
'Spaltennummer
' Case Is = 2, 18, 20, 22, 23 'Datumfelder
' If IsDate(Me.Controls("TextBox" & i)) Then
' Cells(erste_freie_Zeile, i).Value = CDate(Me.Controls("TextBox" & i))
' Else
' Cells(erste_freie_Zeile, i) = ""
' End If
'Spaltennummer
Case Is = 1, 3, 4 'Zahlenfelder
If IsNumeric(Me.Controls("TextBox" & i)) Then
.Cells(erste_freie_Zeile, i).Value = CLng(Me.Controls("TextBox" & i))
Else
.Cells(erste_freie_Zeile, i) = ""
End If
'Spaltennummer
Case Is = 18, 27 'Telefonnummer
.Cells(erste_freie_Zeile, i).Value = CStr(Me.Controls("TextBox" & i))
Case Else
.Cells(erste_freie_Zeile, i).Value = Me.Controls("TextBox" & i)
End Select
Me.Controls("TextBox" & i) = ""
Next i
End With
'Sortierung nach Spalte A
' Range("A3:AT" & xZeile).Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlYes, _
' OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Unload Me
End Sub