Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Textboxen in Zeile wenn nicht leer

Textboxen in Zeile wenn nicht leer
08.04.2021 13:06:48
Tim
Hallo zusammen,
ich habe auf einer Userform, 8 Textboxen, deren Inhalt ich in ein Tabellenblatt schreiben möchte. Der Inhalt aus den Textboxen soll ein eine Spalte untereinander geschrieben werden, das funktioniert. Meine Herausforderung besteht darin, dass ich nur die Einträge der gefüllten Textboxen in die Tabelle schreiben möchte, leere Textboxen sollen ignoriert werden. Zudem sind die Textboxen spezifisch benannt ("Name").
Könnt ihr mir bitte bei der Umsetzung behilflich sein?
Sub Zahlen()
Dim lngZeile As Long,Zahlen As Worksheet
Dim ctrl As Control
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
Set Zahlen = ThisWorkbook.Worksheets("Zahlen")
Zahlen.Range("A2:E65536").ClearContents
lngZeile = Zahlen.Cells(Zahlen.Rows.Count, 1).End(xlUp).Row
For Each ctrl In UserForm6.Controls
If TypeName(ctrl) = "TextBox" Then
If ctrl.Text  "" Then
With Zahlen
.Cells(lngZeile + 1, 2) = UserForm6.Zahl1.Text 'Anzahl
.Cells(lngZeile + 1, 1) = "Test1"  'Wer
.Cells(lngZeile + 1, 3) = Date
.Cells(lngZeile + 1, 4) = VBA.Environ("Username")
.Cells(lngZeile + 2, 2) = UserForm6.Zahl2.Text 'Anzahl
.Cells(lngZeile + 2, 1) = "Test2" 'Wer
End With
End If
End If
Next ctrl
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
Unload UserForm6
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Textboxen in Zeile wenn nicht leer
08.04.2021 15:58:06
MRUTOR
Hallo Tim,
versuch mal:

Sub Zahlen()
Dim lngZeile As Long,Zahlen As Worksheet
Dim ctrl As msforms.Control
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
Set Zahlen = ThisWorkbook.Worksheets("Zahlen")
Zahlen.Range("A2:E65536").ClearContents
lngZeile = Zahlen.Cells(Zahlen.Rows.Count, 1).End(xlUp).Row
For Each ctrl In UserForm6.Controls
If TypeOf ctrl Is msforms.TextBox Then
If ctrl.Text  "" Then
With Zahlen
.Cells(lngZeile + 1, 2) = UserForm6.Zahl1.Text 'Anzahl
.Cells(lngZeile + 1, 1) = "Test1"  'Wer
.Cells(lngZeile + 1, 3) = Date
.Cells(lngZeile + 1, 4) = VBA.Environ("Username")
.Cells(lngZeile + 2, 2) = UserForm6.Zahl2.Text 'Anzahl
.Cells(lngZeile + 2, 1) = "Test2" 'Wer
End With
End If
End If
Next ctrl
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
Unload UserForm6
End Sub

Gruss Tor
Anzeige
AW: Textboxen in Zeile wenn nicht leer
08.04.2021 16:18:09
Tim
Hallo Tor,
vielen Dank für deine Antwort, jedoch funktioniert es nicht.
Er schreibt weiterhin für die Textboxen ohne Inhalt eine weitere Zeile (Leerzeile).
AW: Textboxen in Zeile wenn nicht leer
08.04.2021 16:31:11
Herbert_Grom
Hallo Tim,
du bist doch auch nicht zum ersten Mal hier. Warum beherzigst du dann nicht diesen Hinweis?

Servus
AW: Textboxen in Zeile wenn nicht leer
08.04.2021 17:29:44
Tim
Hallo Herbert,
entschuldige bitte, der Hinweis ist natürlich berechtigt. Im Anhang dazu die Bsp.Datei.
Ziel Solle es sein, dass zu jeder Textbox die "" ist , eine Zeileneitrag in die Tabelle geschrieben wird.
https://www.herber.de/bbs/user/145402.xlsm
Anzeige
AW: Textboxen in Zeile wenn nicht leer
08.04.2021 22:11:50
Yal
Hallo Tim,
Eine Datei! ;-)
Da Du wiederum genau weisst, worum es geht, erlauben wir uns -freche Helfer- nur den Coding zu liefern.
Sub Zahlen()
Dim E
Dim i
SpeedUp
With ThisWorkbook.Worksheets("Zahlen")
.Range("A2:E999").ClearContents
For Each E In Array("Dirk", "Max", "Tim", "Elsa", "Hubert", "Lord", "Anna", "Test")
i = i + 1
If UserForm6.Controls(E).Text  "" Then
.Range("A999").End(xlUp).Range("A2:C2") = _
Array("Zahl" & i, UserForm6.Controls(E).Text, Date)
End If
Next
End With
SpeedUp False
Unload UserForm6
End Sub
Private Sub SpeedUp(Optional Schalter = True)
With Application
.ScreenUpdating = Schalter
.EnableEvents = Schalter
.Calculation = IIf(Schalter, xlCalculationManual, xlCalculationAutomatic)
End With
End Sub

Im Übrigens, teste mal:
Sub Test2()
Const l = "*+,-./0123456789"
Dim i
For i = 1 To Len(l)
Debug.Print Asc(Mid(l, i));
Next
End Sub
Was sagt uns das? ja genau:
Private Sub Zahl1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 57 Then KeyAscii = 0
End Sub

Wobei die Wirkung, eine Parameter der als Wert ("ByVal") übergeben wurde, zu ändern, relativ gering sein sollte.
VG
Yal
Anzeige
AW: Textboxen in Zeile wenn nicht leer
09.04.2021 08:48:46
Tim
Vielen Dank Yal, all deine Vorschläge funktionieren bestens!!!

331 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige