nun benötige seid langer Zeit mal wieder Hilfe.
Mein Code Sieht folgendermassen aus:
Option Explicit
Private Sub cbbName_Exit(ByVal Cancel As MSForms.ReturnBoolean)
On Error GoTo ErrHandler
'brutale Prüfung, ob für den Namen ein Blatt existiert
'wenn nicht gehts mit dem Errorhandler weiter
Worksheets(cbbName.Value).Select
Exit Sub
ErrHandler:
'txbFehler wird eingeblendet und legt sich über die
'weiteren Eingabefelder
txbFehler.Visible = True
End Sub
Private Sub cmbAbbruch_Click()
Unload Me
End Sub
Private Sub cmbOkay_Click()
'Variable um Daten in Zielblatt und Gedsamtübersicht
'in die erste freie Zeile schreiben zu können
Dim lgLetzte As Long
'Prüfung, ob die Fehlerbox sichtbar ist
'falls ja das Blatt einfügen
If txbFehler.Visible = True Then
Worksheets.Add After:=Worksheets(Worksheets.Count)
With ActiveSheet
.Name = cbbName
'die Titelzeile generieren
.Cells(1, 1) = "Datum"
.Cells(1, 2) = "Name"
.Cells(1, 3) = "Ort"
.Cells(1, 4) = "Bemerkung"
.Cells(1, 5) = "Zahl1"
.Cells(1, 6) = "Zahl2"
.Cells(1, 8) = "TextBox3"
'Titelzeile FETT
.Rows("1:1").Font.Bold = True
'Spalte A als Datum
'.Columns("A:A").NumberFormat = "mm/dd/yyyy"
End With
'und die Fehlerbox verschwinden lassen
txbFehler.Visible = False
Else
'Fehlerbox ist nicht eingeblendet also alles speichern
'erst in der Namenstabelle
With Worksheets(cbbName.Value)
lgLetzte = .Range("A65536").End(xlUp).Row + 1
.Cells(lgLetzte, 1) = CDate(DTPicker)
.Cells(lgLetzte, 2) = cbbName.Value
.Cells(lgLetzte, 3) = txbOrt
.Cells(lgLetzte, 4) = txbBemerk
.Cells(lgLetzte, 5) = CInt(txbZahl)
.Cells(lgLetzte, 6) = CInt(txbZahl)
.Cells(lgLetzte, 8) = TextBox3
End With
'und dann in der Gesamtüberblick
With Worksheets("Gesamtüberblick")
lgLetzte = .Range("A65536").End(xlUp).Row + 1
.Cells(lgLetzte, 1) = CDate(DTPicker)
.Cells(lgLetzte, 2) = cbbName.Value
.Cells(lgLetzte, 3) = txbOrt
.Cells(lgLetzte, 4) = txbBemerk
'falls mit den Zahlen gerechnet werden muss
'ist eine Umwandlung CInt beispielsweise nötig
'hier müsste dann noch eine Fehlerüberprüfung
'für den Fall rein, dass keine Zahl eingegeben wird
.Cells(lgLetzte, 5) = CInt(txbZahl)
.Cells(lgLetzte, 6) = CInt(txbZahl)
.Cells(lgLetzte, 8) = TextBox3
'einfacher ist es, wenn nicht gerechnet werden soll
'dann gehts mit
'.Cells(lgLetzte, 5) = txbZahl
End With
'damit man sich in den Blättern nicht verirrt und
'da wieder rauskommt, wo man angefangen hat
Worksheets("Gesamtüberblick").Activate
'fertig
Unload Me
End If
End Sub
Private Sub txbOrta_Change()
End Sub
Private Sub TextBox3_Change()
End Sub
Private Sub txbFehler_Change()
End Sub
Private Sub txbOrt_Change()
End Sub
Private Sub UserForm_Initialize()
'für die Combobox ermitteln, welche Blätter vorhanden sind
Dim iCount As Integer
For iCount = 1 To Worksheets.Count
If Worksheets(iCount).Name "Gesamtüberblick" Then
cbbName.AddItem (Worksheets(iCount).Name)
End If
Next
'Fehlerbox ausblenden
txbFehler.Visible = False
End Sub
haut soweit auch alle sganz prima hin.
Nun mein Wunsch um Hilfe.
Nach Eingabe in die UserForm werden die daten aus der TextBox3 in die nächste freie Zeile der Spalte H geschrieben. Ich möchte nun aber das die Daten aus der Textbox3 unter die Daten der Textbos CbbName geschrieben werden.
Wird dann ein weiterer Datensatz eingegeben muss die automatische Eintragung 2 Spalten weiter beginnen.
Wie muss ich den Code umändern
Lieben Gruss
Stefan