Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
976to980
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
976to980
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Userform Maske

Userform Maske
20.05.2008 10:32:00
Petersdorff
Hallo, ich möchte mit der Formular schauen ob in Spate E Zeile 5 was steht und dann in die darunterliegene Zeile schreiben. Er fängt aber immer von der Spalte A an.
In der ersten Maske geben wir die daten von Sparte A -D an und in der 2 Maske geben wir dann 10 oder 20 dazugehörige daten an. Die sollen aber abwärts in Spalte E-M. Wenn ich aber wieder in die erste maske gehe möchte ich dann unterhalb von der letzten eingabe Spalte E anfange (Spalte A-D).
Viele Dank für die Bemühungen.
anbei den bisherigen VBA Code.
Option Explicit

Private Sub CommandButton1_Click()
Dim liZeile As Integer
Dim lcTXTbox As Control, liSpalte As Integer
liZeile = 5
Do Until Sheets("Verpackungsdaten").Range("E" & liZeile) = ""
liZeile = liZeile + 1
Loop
liSpalte = 65
For Each lcTXTbox In Controls
If TypeName(lcTXTbox) = "TextBox" Then
If IsNumeric(lcTXTbox) = True And Not IsDate(lcTXTbox) = True Then
Sheets("Verpackungsdaten").Range(Chr(liSpalte) & liZeile).Value =  _
Val(lcTXTbox)
Else
Sheets("Verpackungsdaten").Range(Chr(liSpalte) & liZeile).Value =  _
lcTXTbox
End If
lcTXTbox = ""
liSpalte = liSpalte + 1
End If
Next
End Sub



Private Sub CommandButton2_Click()
Unload Me
End Sub



Private Sub CommandButton3_Click()
Unload Me
End Sub



Private Sub UserForm_Click()
End Sub


Grüße Andreas

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform Maske
20.05.2008 11:24:00
fcs
Hallo Andreas,
du hast im Code liSpalte auf 65 gesetzt das ist dann mit Chr(liSpalte) = Spalte A
Zeilenvariablen sollten immer als Long und nicht als Integer deklariert werden. bei mehr als 32000 ungerad Zeilen gibt es sonst Probleme wegen des Wertebereichs für Integer-Variablen.
Es ist im VBA-Code meistens einfacher und übersichtlicher mit "Cells" statt mit "Range" zu arbeiten, um Daten in Zellen zu schreiben. Das ist einfacher zu programmieren und auch ein wenig schneller bei der Verarbeitung der Daten.
Dein Code schaut dann wie folgt aus, wobei ich aus Gründen der Vereinfachung das Tabellenblatt einer Variablen zugewiesen hab.
Für das andere Userform kannst du dann den gleichen Code zur Ermittlung der nächsten freien Zeile für die Eintrage in A bis D verwenden wie hier.
Gruß
Franz

Private Sub CommandButton1_Click()
Dim liZeile As Long
Dim lcTXTbox As Control, liSpalte As Integer
Dim objWksVerp As Worksheet
Set objWksVerp = Sheets("Verpackungsdaten")
With objWksVerp
'Nächste freie Zeile in Spalte 5 (E) suchen
If .Cells(.Rows.Count, 5).End(xlUp).Row 


Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige