Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1464to1468
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeilen Umbruch nach With Anweisung

Zeilen Umbruch nach With Anweisung
05.01.2016 11:35:15
Niklas
Hallo ich bin neu hier im Forum und hab ein Problem mit einem VBA-Code Bitte euch um Hilfe.
Mein Problem ich habe ein Arbeitsmappe mit mehreren Tabellen in einer der Tabellen ist ein Auftragsplan+Kalender der durch eine Bedingte Formatierung den Tag einträgt wann gerüstet und montiert wird .
Im Vorderen Teil der Tabelle soll Excel Daten in eine Zeile eingetragen etwa das Datum und der Arbeitsplatz ; Rüstplatz usw. Dies habe ich über eine User Form mit mehreren Buttons und TextBoxen gemacht das Funktioniert auch gut leider schreibt Excel immer nur in die erste Zeile und wechselt nicht in die nächste Zeile.
Das ist der Code für denn Button Speichern also nach Betätigung soll Excel in der Tabelle die Werte eintragen in die Zeile A14 und dann in die nächste leere Zeile sprich A15 um dort wieder so einen Eintrag zumachen . Sobald man auf speichern drückt wird die Form gelehrt und die nächste Eingabe kann starten .
Private Sub cmdSpeichern_Click()
'UserInput Prüfen+ Msg Box
Dim RowCount As Long
Dim ctl As Control
Sheets("Fertigungsplan").Activate
NextRow = Application.WorksheetFunction.CountA(Range("A:A")) + 1
'Check User Input
'Msgbox GeräteName
If Me.txtGerät.Value = "" Then
MsgBox "Bitte gebeb sie eine Gerätenamen ein .", vbExclamation, "Staff Expenses"
Me.txtGerät.SetFocus
Exit Sub
End If
'Msgbox WANummer
If Me.txtwanu.Value = "" Then
MsgBox "Bitte geben sie eine Werksauftragsnummer ein .", vbExclamation, "Staff Expenses" _
_
Me.txtGerät.SetFocus
Exit Sub
End If
'Msgbox Stückzahl
If Me.cboStk.Value = "" Then
MsgBox "Bitte geben sie eine Anzahl an wieviel Stück sie Produzieren wollen.",  _
vbExclamation, "Staff Expenses"
Me.txtGerät.SetFocus
Exit Sub
End If
'MsgBox Zeichungsnummer
If Me.txtZeichungsnummer.Value = "" Then
MsgBox "Bitte geben sie eine Zeichnungsnummer ein.", vbExclamation, "Staff Expenses"
Me.txtGerät.SetFocus
Exit Sub
End If
'MsgBox Kurztext
If Me.txtKurztext.Value = "" Then
MsgBox "Bitte geben sie einen Bezeichnung des Auftrags an.", vbExclamation, "Staff  _
Expenses"
Me.txtGerät.SetFocus
Exit Sub
End If
'MsgBox von Arbeitsplatz
If Me.cboVonAP.Value = "" Then
MsgBox "Bitte geben sie einen Start-Arbeitsplatz an.", vbExclamation, "Staff Expenses"
Me.txtGerät.SetFocus
Exit Sub
End If
'MsgBox nach Arebitspaltz
If Me.cboZuAP.Value = "" Then
MsgBox "Bitte geben sie einen End-Arbeitsplatz an.", vbExclamation, "Staff Expenses"
Me.txtGerät.SetFocus
Exit Sub
End If
'MsgBox Startdatum
If Me.txtStartDatum.Value = "" Then
MsgBox "Bitte geben sie ein Startdatum an.", vbExclamation, "Staff Expenses"
Me.txtGerät.SetFocus
Exit Sub
End If
'Msgbox Dauer Arbeitstage
If Me.cboDauerArbeitstaginTagen.Value = "" Then
MsgBox "Bitte geben sie die Dauer des Auftrags an.", vbExclamation, "Staff Expenses"
Me.txtGerät.SetFocus
Exit Sub
End If
'MsgBox Rüsttage
If Me.cboRüsttage.Value = "" Then
MsgBox "Bitte geben sie die Dauer der Rüsttage an.", vbExclamation, "Staff Expenses"
Me.txtGerät.SetFocus
Exit Sub
End If
'MsgBox Bemerkung
If Me.txtBemerkung.Value = "" Then
MsgBox "Bitte geben sie eine Bemerkung an.", vbExclamation, "Staff Expenses"
Me.txtGerät.SetFocus
Exit Sub
End If
'Msgbox Fertigungsbegleitpapier
If Me.chkFertigungsbegleitpapierausgeben.Value = "" Then
MsgBox "Bitte geben sie an ob die Papiere in der Platafel sind.", vbExclamation, "Staff  _
_
Expenses"
Me.txtGerät.SetFocus
Exit Sub
End If
'Msgbox Rüstliste
If Me.chkRüstlisteausgeben.Value = "" Then
MsgBox "Bitte geben sie an ob die Papiere in der Lagerplantafel sind.", vbExclamation, " _
_
Staff Expenses"
Me.txtGerät.SetFocus
Exit Sub
End If
' Das habe ich alles Ausprobiert Funktioniert leider nicht
'Sheets("Fertigungsplan").Activate
'Range("A" & NewRow).Select
'Range("A14").End(xlDown).Offset(1, 0).Select
'Write data to Worksheet
'NextFreeRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
'Worksheets("Fertigungsplan").OnEntry = "nächste_Zeile"
With Worksheets("Fertigungsplan").Range("A14")
.Offset(RowCount, 0).Value = Me.txtGerät.Value
.Offset(RowCount, 1).Value = Me.txtwanu.Value
.Offset(RowCount, 2).Value = Me.cboStk.Value
.Offset(RowCount, 3).Value = Me.txtZeichungsnummer.Value
.Offset(RowCount, 4).Value = Me.txtKurztext.Value
.Offset(RowCount, 5).Value = Me.cboVonAP.Value
.Offset(RowCount, 6).Value = Me.cboZuAP.Value
.Offset(RowCount, 7).Value = Me.cboTeam.Value
.Offset(RowCount, 8).Value = Me.cboAnzahlPersonen.Value
If Me.chkFertigungsbegleitpapierausgeben.Value = True Then
.Offset(RowCount, 9).Value = "x"
Else
.Offset(RowCount, 9).Value = ""
End If
If Me.chkRüstlisteausgeben.Value = True Then
.Offset(RowCount, 10).Value = "x"
Else
.Offset(RowCount, 10).Value = ""
End If
.Offset(RowCount, 11).Value = Me.cboRüsttage.Value
.Offset(RowCount, 14).Value = Me.txtStartDatum.Value
.Offset(RowCount, 15).Value = Me.cboDauerArbeitstaginTagen.Value
.Offset(RowCount, 21).Value = Me.txtBemerkung.Value
End With
'Clear the Form complett
For Each ctl In Me.Controls
If TypeName(ctl) = "TextBox" Or TypeName(ctl) = "ComboBox" Then
ctl.Value = ""
ElseIf TypeName(ctl) = "CheckBox" Then
ctl.Value = False
End If
Next ctl
End Sub

Bitte könnt ihr mir Helfen .
Besten Dank im Voraus .

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen Umbruch nach With Anweisung
05.01.2016 11:52:49
Rudi
Hallo,
With Worksheets("Fertigungsplan").Range("A14")
.Offset(NextRow - 14, 0).Value = Me.txtGerät.Value
.Offset(NextRow - 14, 1).Value = Me.txtwanu.Value
'etc.

AW: Zeilen Umbruch nach With Anweisung
05.01.2016 22:17:44
Niklas
Hallo Rudi
Danke für deine schnelle Antwort leider funktionierts nicht hab den Code geändert und jetzt erscheint ein Laufzeitfehler .

AW: Zeilen Umbruch nach With Anweisung
06.01.2016 10:38:56
Rudi
dann wohl ohne -14.
Gruß
Rudi

AW: Zeilen Umbruch nach With Anweisung
07.01.2016 08:46:20
Niklas
Hei
Leider ist das erwünschte Ziel nicht erreicht .
Das Eintragen in die Tabelle funktioniert perfekt doch der Zeilenumbruch nicht .
Also Excel schreibt alle Daten wunderbar in die Zeile A14 sobald diese befüllt ist soll Excel den nächste Eintrag in A15;A16;A17-A200 machen.
Jeder Eintrag aus der Form soll in die nächst freie Zeile eingetragen werden .
Alle Einträge werden immer aus der Form gemacht diese wird über eine Button aus der Tabellen Blatt aufgerufen.
Derzeitiger Code :
Private Sub CmdAbbrechen_Click()
Unload Me
End Sub

Private Sub cmdFelderLöschen_Click()
'Felder Löschen in der Form
For Each ctl In Me.Controls
If TypeName(ctl) = "TextBox" Or TypeName(ctl) = "ComboBox" Then
ctl.Value = ""
ElseIf TypeName(ctl) = "CheckBox" Then
ctl.Value = False
End If
Next ctl
End Sub

Private Sub cmdSpeichern_Click()
'UserInput Prüfen+ Msg Box
Dim NextRow As Long
'Dim RowCount As Long
Dim ctl As Control
Sheets("Fertigungsplan").Activate
'Check User Input
'Msgbox GeräteName
If Me.txtGerät.Value = "" Then
MsgBox "Bitte gebeb sie eine Gerätenamen ein .", vbExclamation, "Staff Expenses"
Me.txtGerät.SetFocus
Exit Sub
End If
'Msgbox WANummer
If Me.txtwanu.Value = "" Then
MsgBox "Bitte geben sie eine Werksauftragsnummer ein .", vbExclamation, "Staff Expenses" _
Me.txtGerät.SetFocus
Exit Sub
End If
'Msgbox Stückzahl
If Me.cboStk.Value = "" Then
MsgBox "Bitte geben sie eine Anzahl an wieviel Stück sie Produzieren wollen.",  _
vbExclamation, "Staff Expenses"
Me.txtGerät.SetFocus
Exit Sub
End If
'MsgBox Zeichungsnummer
If Me.txtZeichungsnummer.Value = "" Then
MsgBox "Bitte geben sie eine Zeichnungsnummer ein.", vbExclamation, "Staff Expenses"
Me.txtGerät.SetFocus
Exit Sub
End If
'MsgBox Kurztext
If Me.txtKurztext.Value = "" Then
MsgBox "Bitte geben sie einen Bezeichnung des Auftrags an.", vbExclamation, "Staff  _
Expenses"
Me.txtGerät.SetFocus
Exit Sub
End If
'MsgBox von Arbeitsplatz
If Me.cboVonAP.Value = "" Then
MsgBox "Bitte geben sie einen Start-Arbeitsplatz an.", vbExclamation, "Staff Expenses"
Me.txtGerät.SetFocus
Exit Sub
End If
'MsgBox nach Arebitspaltz
If Me.cboZuAP.Value = "" Then
MsgBox "Bitte geben sie einen End-Arbeitsplatz an.", vbExclamation, "Staff Expenses"
Me.txtGerät.SetFocus
Exit Sub
End If
'MsgBox Startdatum
If Me.txtStartDatum.Value = "" Then
MsgBox "Bitte geben sie ein Startdatum an.", vbExclamation, "Staff Expenses"
Me.txtGerät.SetFocus
Exit Sub
End If
'Msgbox Dauer Arbeitstage
If Me.cboDauerArbeitstaginTagen.Value = "" Then
MsgBox "Bitte geben sie die Dauer des Auftrags an.", vbExclamation, "Staff Expenses"
Me.txtGerät.SetFocus
Exit Sub
End If
'MsgBox Rüsttage
If Me.cboRüsttage.Value = "" Then
MsgBox "Bitte geben sie die Dauer der Rüsttage an.", vbExclamation, "Staff Expenses"
Me.txtGerät.SetFocus
Exit Sub
End If
'MsgBox Bemerkung
If Me.txtBemerkung.Value = "" Then
MsgBox "Bitte geben sie eine Bemerkung an.", vbExclamation, "Staff Expenses"
Me.txtGerät.SetFocus
Exit Sub
End If
'Msgbox Fertigungsbegleitpapier
If Me.chkFertigungsbegleitpapierausgeben.Value = "" Then
MsgBox "Bitte geben sie an ob die Papiere in der Platafel sind.", vbExclamation, "Staff  _
Expenses"
Me.txtGerät.SetFocus
Exit Sub
End If
'Msgbox Rüstliste
If Me.chkRüstlisteausgeben.Value = "" Then
MsgBox "Bitte geben sie an ob die Papiere in der Lagerplantafel sind.", vbExclamation, " _
Staff Expenses"
Me.txtGerät.SetFocus
Exit Sub
End If
'Write data to Worksheet
With Worksheets("Fertigungsplan").Range("A14")
.Offset(NextRow, 0).Value = Me.txtGerät.Value
.Offset(NextRow, 1).Value = Me.txtwanu.Value
.Offset(NextRow, 2).Value = Me.cboStk.Value
.Offset(NextRow, 3).Value = Me.txtZeichungsnummer.Value
.Offset(NextRow, 4).Value = Me.txtKurztext.Value
.Offset(NextRow, 5).Value = Me.cboVonAP.Value
.Offset(NextRow, 6).Value = Me.cboZuAP.Value
.Offset(NextRow, 7).Value = Me.cboTeam.Value
.Offset(NextRow, 8).Value = Me.cboAnzahlPersonen.Value
If Me.chkFertigungsbegleitpapierausgeben.Value = True Then
.Offset(NextRow, 9).Value = "x"
Else
.Offset(NextRow, 9).Value = ""
End If
If Me.chkRüstlisteausgeben.Value = True Then
.Offset(NextRow, 10).Value = "x"
Else
.Offset(NextRow, 10).Value = ""
End If
.Offset(NextRow, 11).Value = Me.cboRüsttage.Value
.Offset(NextRow, 14).Value = Me.txtStartDatum.Value
.Offset(NextRow, 15).Value = Me.cboDauerArbeitstaginTagen.Value
.Offset(NextRow, 21).Value = Me.txtBemerkung.Value
End With
'Clear the Form complett
For Each ctl In Me.Controls
If TypeName(ctl) = "TextBox" Or TypeName(ctl) = "ComboBox" Then
ctl.Value = ""
ElseIf TypeName(ctl) = "CheckBox" Then
ctl.Value = False
End If
Next ctl
End Sub
Besten Dank im Voraus

Anzeige
AW: Zeilen Umbruch nach With Anweisung
07.01.2016 11:32:36
Rudi
Hallo,
With Worksheets("Fertigungsplan").Range("A14")
NextRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Cells(NextRow, 1).Value = Me.txtGerät.Value
.Cells(NextRow, 2).Value = Me.txtwanu.Value
.Cells(NextRow, 3).Value = Me.cboStk.Value
'etc.
Gruß
Rudi

AW: Zeilen Umbruch nach With Anweisung
11.01.2016 09:55:45
Niklas
Hallo
Danke für den Tipp leider ohne Erfolg .
Jetzt passiert folgendes der Eintrag aus der User-Form funktioniert jedoch beginnt Excel in der Zeile A27 und nicht A14 es trägt dann die Daten ein und geht nicht in die nächste Zeile weiter also (A15;A16;A17).
Wenn man also denn nächsten Eintrag macht so wird A27 erneut befüllt und die alten Daten werden überschrieben .
Besten Dank im Voraus .
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige