Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1836to1840
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

Userform Anzeige - spaltenweise Ansicht

Userform Anzeige - spaltenweise Ansicht
15.07.2021 17:30:35
Daniel
Hallo Liebe Forumer,
ich habe hier einen Code welcher mir eine Userform ausgibt und diese wird automatisch mit der ersten Zeile beschriftet die in Spalte D nichts stehen hat.
Über einen "Weiter" Knopf kann ich in die nächste Zeile springen wo in Spalte C nichts beschriftet ist.
Meine Fragen sind:
1. Ich hätte gerne einen Zeitstempel der bei drücken des "Weiter" butons in die spalte C schreibt wann auf den Knopf gedrückt wird (Datum und Uhrzeit), da ich diese Zeile dann bearbeitet habe.
2. würde ich gerne wissen wie ich den code erweitern muss, wenn ich mir z.b. in einer Textbox3 die infos von Spalte D anzeigen lassen möchte
Userbild

Option Explicit
Private Lozahl As Long
Private Sub UserForm_Initialize()
Dim objCell As Range
With Worksheets("Tabelle3").Columns(3)
For Each objCell In .Cells
If IsEmpty(objCell.Value) Then
TextBox1.Text = objCell.Offset(0, -2).Value
TextBox2.Text = objCell.Offset(0, -1).Value
Lozahl = objCell.Row
Exit For
End If
Next
End With
End Sub
Private Sub CommandButton1_Click()
Dim lngRow As Long
With Worksheets("Tabelle3")
For lngRow = Lozahl + 1 To .Rows.Count
If IsEmpty(.Cells(lngRow, 3).Value) Then
TextBox1.Text = .Cells(lngRow, 1).Value
TextBox2.Text = .Cells(lngRow, 2).Value
Lozahl = lngRow
Exit For
End If
Next
End With
End Sub

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform Anzeige - spaltenweise Ansicht
15.07.2021 18:12:24
Nepumuk
Hallo Daniel,
so:

Private Sub CommandButton1_Click()
Dim lngRow As Long
With Worksheets("Tabelle3")
.Cells(Lozahl, 3).Value = Now
For lngRow = Lozahl + 1 To .Rows.Count
If IsEmpty(.Cells(lngRow, 3).Value) Then
TextBox1.Text = .Cells(lngRow, 1).Value
TextBox2.Text = .Cells(lngRow, 2).Value
Lozahl = lngRow
Exit For
End If
Next
End With
End Sub
Gruß
Nepumuk
AW: Userform Anzeige - spaltenweise Ansicht
15.07.2021 18:23:41
Daniel
Hallo Nepumuk,
und wie schaffe ich es, dass ich eine 3 oder 4 Textbox anschließe die dann Spalte D oder E auslesen? :)
also mit Textbox3 würde ich jetzt D auslesen oder? :)
LG Daniel

Option Explicit
Private Lozahl As Long
Private Sub UserForm_Initialize()
Dim objCell As Range
With Worksheets("Tabelle3").Columns(3)
For Each objCell In .Cells
If IsEmpty(objCell.Value) Then
TextBox1.Text = objCell.Offset(0, -2).Value
TextBox2.Text = objCell.Offset(0, -1).Value
TextBox3.Text = objCell.Offset(0, +1).Value
Lozahl = objCell.Row
Exit For
End If
Next
End With
End Sub
Private Sub CommandButton1_Click()
Dim lngRow As Long
With Worksheets("Tabelle3")
For lngRow = Lozahl + 1 To .Rows.Count
If IsEmpty(.Cells(lngRow, 3).Value) Then
TextBox1.Text = .Cells(lngRow, 1).Value
TextBox2.Text = .Cells(lngRow, 2).Value
TextBox3.Text = .Cells(IngRow, 4).Value
Lozahl = lngRow
Exit For
End If
Next
End With
End Sub

Anzeige
AW: Userform Anzeige - spaltenweise Ansicht
15.07.2021 18:27:21
Nepumuk
Hallo Daniel,
ja genau. Nur das + hier:
TextBox3.Text = objCell.Offset(0, +1).Value
ist nicht richtig.
Gruß
Nepumuk
AW: Userform Anzeige - spaltenweise Ansicht
15.07.2021 18:58:19
Daniel
Super danke dir Nepumuk du hilfst mir damit wirklich wirklich weiter!
Jetzt hätte ich noch eine frage.
ich möchte auch einen zurück button programmieren. Weißt du wie ich da rangehen soll? das der nicht in die letzte zeile springt sondern sozusagen die letzte befüllte zeile?
weil über den weiter button ist es ja möglich wenn z.b. wie in dem beispiel:
wenn ich Zeile 4 bearbeitet habe. Dann springe ich ja nicht in 5 sondern in 9, da dort ja die unbefüllte zeile ist. nur wie komme ich wieder zurück?
Userbild
LG
Daniel
Anzeige
AW: Userform Anzeige - spaltenweise Ansicht
15.07.2021 19:05:30
Nepumuk
Hallo Daniel,
teste mal:

Private Sub CommandButton2_Click()
With Worksheets("Tabelle3")
Lozahl = Lozahl - 1
TextBox1.Text = .Cells(Lozahl, 1).Value
TextBox2.Text = .Cells(Lozahl, 2).Value
TextBox3.Text = .Cells(Lozahl, 4).Value
End With
End Sub
Gruß
Nepumuk
AW: Userform Anzeige - spaltenweise Ansicht
16.07.2021 09:23:35
Daniel
Hallo Nepumuk,
ich konnte es jetzt erst testen.
Alles funktioniert nur der Zurück button leider nicht.
bzw. er funktioniert aber er geht nur "stur" in die nächst obere Zeile und nicht die zuletzt aufgerufene.
Hast du noch eine Idee?
LG und danke für die hilfe!
Daniel
Anzeige
AW: Userform Anzeige - spaltenweise Ansicht
16.07.2021 09:35:26
Nepumuk
Hallo Daniel,
zeig mal den gesamten Code im Userform.
Gruß
Nepumuk
AW: Userform Anzeige - spaltenweise Ansicht
16.07.2021 09:53:34
Daniel
Hallo Nepumuk,
das ist der gesamte code bisher :).
LG Daniel
Userbild
AW: Userform Anzeige - spaltenweise Ansicht
16.07.2021 10:11:24
Nepumuk
Hallo Daniel,
es geht aber "nur" einmal zurück:
Code:

[Cc][+][-]

Option Explicit Private Lozahl As Long Private mlngEditRow As Long Private Sub UserForm_Initialize() Dim objCell As Range With Worksheets("Tabelle15").Columns(3) For Each objCell In .Cells If IsEmpty(objCell.Value) Then TextBox1.Text = objCell.Offset(0, -2).Value TextBox2.Text = objCell.Offset(0, -1).Value TextBox3.Text = objCell.Offset(0, 1).Value Lozahl = objCell.Row Exit For End If Next End With End Sub Private Sub CommandButton1_Click() Dim lngRow As Long mlngEditRow = Lozahl With Worksheets("Tabelle15") .Cells(Lozahl, 3).Value = Now For lngRow = Lozahl + 1 To .Rows.Count If IsEmpty(.Cells(lngRow, 3).Value) Then TextBox1.Text = .Cells(lngRow, 1).Value TextBox2.Text = .Cells(lngRow, 2).Value TextBox3.Text = .Cells(lngRow, 4).Value Lozahl = lngRow Exit For End If Next End With End Sub Private Sub CommandButton2_Click() Lozahl = mlngEditRow With Worksheets("Tabelle15") TextBox1.Text = .Cells(mlngEditRow, 1).Value TextBox2.Text = .Cells(mlngEditRow, 2).Value TextBox3.Text = .Cells(mlngEditRow, 4).Value End With End Sub

Gruß
Nepumuk
Anzeige
AW: Userform Anzeige - spaltenweise Ansicht
16.07.2021 10:20:11
Daniel
Hallo Nepumuk,
hättest du einen Tipp wie das öfter als einmal geht?
und es funktioniert danke dir!
LG
Daniel
AW: Userform Anzeige - spaltenweise Ansicht
16.07.2021 10:38:50
Nepumuk
Hallo Daniel,
teste mal:
Code:

[Cc][+][-]

Option Explicit Private mlngRow As Long Private mobjCollection As Collection Private Sub UserForm_Initialize() Dim objCell As Range Set mobjCollection = New Collection With Worksheets("Tabelle15").Columns(3) For Each objCell In .Cells If IsEmpty(objCell.Value) Then TextBox1.Text = objCell.Offset(0, -2).Value TextBox2.Text = objCell.Offset(0, -1).Value TextBox3.Text = objCell.Offset(0, 1).Value mlngRow = objCell.Row Call mobjCollection.Add(Item:=mlngRow) Exit For End If Next End With End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Set mobjCollection = Nothing End Sub Private Sub CommandButton1_Click() Dim lngRow As Long With Worksheets("Tabelle15") .Cells(mlngRow, 3).Value = Now For lngRow = mlngRow + 1 To .Rows.Count If IsEmpty(.Cells(lngRow, 3).Value) Then TextBox1.Text = .Cells(lngRow, 1).Value TextBox2.Text = .Cells(lngRow, 2).Value TextBox3.Text = .Cells(lngRow, 4).Value mlngRow = lngRow Call mobjCollection.Add(Item:=mlngRow) Exit For End If Next End With End Sub Private Sub CommandButton2_Click() Dim lngIndex As Long With mobjCollection For lngIndex = .Count To 1 Step -1 If .Item(lngIndex) < mlngRow Then mlngRow = .Item(lngIndex) Exit For End If Next End With With Worksheets("Tabelle15") TextBox1.Text = .Cells(mlngRow, 1).Value TextBox2.Text = .Cells(mlngRow, 2).Value TextBox3.Text = .Cells(mlngRow, 4).Value End With End Sub

Gruß
Nepumuk
Anzeige
AW: Userform Anzeige - spaltenweise Ansicht
16.07.2021 10:49:15
Daniel
Es klappt!
du bist echt ein gott! :D
danke dir für die hilfe!
AW: Userform Anzeige - spaltenweise Ansicht
16.07.2021 10:49:53
Daniel
könntest du mir vllt nur kurz erklären wie du das mit dem zurück button gemacht hast?
LG
daniel
AW: Userform Anzeige - spaltenweise Ansicht
16.07.2021 10:54:07
Nepumuk
Hallo Daniel,
die angesprungenen Zeilennummern werden in einer Collection gespeichert und durch den Zurück-Button wird die nächste niedrigere Zeilennummer in der Collection angesprungen.
Gruß
Nepumuk

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige