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

VBA "Weiter"-Button umschreiben

VBA "Weiter"-Button umschreiben
19.07.2021 09:12:28
Daniel
Hallo Liebe Herber Forumer,
Ich bräuchte eure Hilfe.
Ich möchte einen Knopf wie diesen programmieren. Nur nicht das er in die Leeren Zeilen in Spalte 3 geht sondern:
In die Zeilen wo in Spalte 4 Weiß Steht.
Kann mir da jemand weiter Helfen?
Liebe Grüße
Daniel

Private Sub CommandButton1_Click()
Dim lngRow As Long
With Worksheets("Tabelle15")
.Cells(mlngRow, 3).Value = Now
.Cells(mlngRow, 4).Value = Bearbeiter.Box1
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

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA "Weiter"-Button umschreiben
19.07.2021 09:19:39
Werner
Hallo,
wenn ich dein Anliegen richtig verstanden habe dann:
Diese Codezeile löschen

If IsEmpty(.Cells(lngRow, 3).Value) Then
Und durch diese ersetzen

If .Cells(lngRow, 4) = "Weiß" Then
Gruß Werner
AW: VBA "Weiter"-Button umschreiben
19.07.2021 09:30:36
Daniel
Hallo Werner,
ich habe ein zweites Problem.
Das Makro müsste wieder von Zeile 2 Anfagen nach Weiß in Spalte 4 zu suchen.
da ich schon weiter unten in der Liste bin findet er keine Zeile wo "Weiß" eingetragen ist.
LG
Daniel
AW: VBA "Weiter"-Button umschreiben
19.07.2021 09:39:55
Werner
Hallo,
sorry, aber mit deiner Beschreibung kann ich nicht wirklich was anfangen.
Vielleicht beschreibst du mal, was, wann, wieso passieren soll - das weißt nämlich nur du.
Am besten eine Beispielmappe hier hochladen in der du aufzeigst, was passieren soll.
Mal so nebenbei:
In deinem geposteten Code hast du eine Variable mlngRow. Die ist aber im Code weder Dimensioniert, noch wird ihr irgendwo ein Wert zugewiesen.
Somit hat die Variable beim Start des Makros den Wert 0. Das hat zur Folge, dass der Code in dieser Zeile

.Cells(mlngRow, 3).Value = Now
in einen Fehler laufen müsste, weil es die Zelle C0 nicht gibt.
Außer, du hast die Variable als Public deklariert und ihr wird irgendwo anders ein Wert zugewiesen.
Aber das weißt halt nur du.
Gruß Werner
Anzeige
AW: VBA "Weiter"-Button umschreiben
19.07.2021 09:46:41
Daniel
Hallo Werner,
Ich habe die Zeile die du meinst so definiert das er seinen start findet idem er die erste Leere Zeile in Spalte 3 sucht und diese als referenzwert nimmt.
Unten steht der ganze code.
Button1: "Weiter" knopf
Button4: Zurück
Button6: das soll der knopf sein der die weißen Zeilen anzeigt
Ich programmiere hier eine Userform die Spalte für Spalte anzeigen kann.
Dann kann ich die Wichtigkeit mit "Rot" Weiß etc definieren
Und weiß möchte ich eben nochmal anzeigen lassen weil dies die "unklare" zeile war.
nur da ich ja im makro schon in z.b. Zeile 100 bin aber der status weiß in Zeile 66 68 und 76 ist z.b. kann ich nicht zurück springen.
Jetzt ist eben meine frage wie ich es schaffe zurück zu springen zu nur den weißen stati.
dafür bräuchte ich einen ansatz.
LG Daniel

Option Explicit
Private mlngRow As Long
Private mobjCollection As Collection
Private Sub UserForm_Initialize()
With Bearbeiter.Box1
.AddItem "Grün"
.AddItem "Gelb"
.AddItem "Rot"
.AddItem "Weiß"
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 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
.Cells(mlngRow, 4).Value = Bearbeiter.Box1
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 CommandButton4_Click()
Dim lngIndex As Long
With mobjCollection
For lngIndex = .Count To 1 Step -1
If .Item(lngIndex) 

Anzeige
AW: VBA "Weiter"-Button umschreiben
19.07.2021 10:36:43
Daniel
Weißt du wie ich die Programmierung sozusagen von Zeile 1 laufen lasse? und die Ex Notation der Zeile überschreibe`?
AW: VBA "Weiter"-Button umschreiben
19.07.2021 10:00:17
GerdL
Moin Daniel,
teste mal.

Private Sub CommandButton1_Click()
Dim lngRow As Long
Dim C As Range
With Worksheets("Tabelle15")
Set C = .Range(.Cells(mlngRow + 1, 4), Cells(.Rows.Count, 4)).Find("Weiß", after:=.Cells(mlngRow, 4), lookat:=xlWhole, LookIn:=xlValues)
If C Is Nothing Then
Set C = .Columns(4).Find("Weiß", after:=.Cells(1, 4), lookat:=xlWhole, LookIn:=xlValues)
End If
If C Is Nothing Then Exit Sub
lngRow = C.Row
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)
End With
End Sub
Gruß Gerd
Anzeige
AW: VBA "Weiter"-Button umschreiben
19.07.2021 10:06:15
Daniel
Hallo Gerd,
es kommt Laufzeitfehler 13:
Typen unverträglich, gleich bei Zeile:
Set C = .Range(.Cells(mlngRow + 1, 4), Cells(.Rows.Count, 4)).Find("Weiß", after:=.Cells(mlngRow, 4), lookat:=xlWhole, LookIn:=xlValues)
AW: VBA "Weiter"-Button umschreiben
19.07.2021 10:14:20
GerdL
Ja, halt ungetestet.
Probiers nochmal mit einem Punkt vor dem zweiten "Cells".
Gruß Gerd
AW: VBA "Weiter"-Button umschreiben
19.07.2021 10:20:30
Daniel
Hallo Gerd,
leider immernoch nicht ist noch der gleiche fehler.
Und ich möchte ja Zeile für Zeile anzeigen lassen. also ich zeige mir z.b. Zeile 68 an klicke auf den knopf un springe in die nächste zeile wo in spalte 4 weiß steht also z.b. 70
Geht das überhaupt mit range?
Anzeige
AW: VBA "Weiter"-Button umschreiben
19.07.2021 11:00:20
GerdL
Nächster Versuch.

Option Explicit
Dim mlngrow As Long
Private Sub CommandButton1_Click()
Dim lngRow As Long
Dim C As Range
If mlngrow = 0 Then mlngrow = 1
With Worksheets("Tabelle15")
Set C = .Range(.Cells(mlngrow, 4), .Cells(.Rows.Count, 4)).Find("Weiß", after:=.Cells(mlngrow, 4), lookat:=xlWhole, LookIn:=xlValues)
If C Is Nothing Then
Set C = .Columns(4).Find("Weiß", after:=.Cells(1, 4), lookat:=xlWhole, LookIn:=xlValues)
End If
If C Is Nothing Then Exit Sub
lngRow = C.Row
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)
End With
End Sub
Gruß Gerd
Anzeige
AW: VBA "Weiter"-Button umschreiben
19.07.2021 11:04:44
Daniel
Danke dir gerd!
Klappt einwandfrei!!
hast mir sehr weitergeholfen
LG
Daniel

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige