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

VBA: nächste Zeile

VBA: nächste Zeile
23.08.2004 10:42:36
Marsi
Hallo zusammen!
Ich komme nicht weiter.Ih habe folgenden VBA-Befehl:
Dim Zeile As Long
Zeile = Range("A65536").End(xlUp).Offset(1, 0).Row
Mit diesem Befehl springe ich automatisch in die nächste Zeile, wenn in der 1. Zeile schon was steht....
So weit so gut. Ich möchte nun aber, dass erst geprüft wird ob die Zelle in der Tabelle noch leer ist. Wenn sie noch leer ist soll dann dort hinein geschrieben werden. Ein Beispiel:
Textbox1 Vorname Spalte A
Textbox2 Nachname Spalte B
In Zelle A1 steht ein Tim, B1 ist leer. Nun soll Textbox 2 auch das Feld B1 füllen und nicht wie bei meinem Befehl oben B2.
Kommt rüber was ich will?

Danke schon mal im voraus....
Marsi

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: nächste Zeile
23.08.2004 11:47:38
Marcl
Hi Marsi,

Sub d()
Range("A1").Select
If ActiveCell <> "" Then
ActiveCell.Offset(1, 0).Select
' weitere Bearbeitung eine Zelle tiefer
Else
Exit Sub
End If
' weitere Bearbeitung in gleicher Zelle
End Sub

Gruß
Marcl
AW: VBA: nächste Zeile
23.08.2004 13:16:15
Marsi
Hallo Marcl,
ich glaub das geht schon in die Richtung was ich brauche. Dein Script bezieht sich aber auf die Zelle A1, richtig? heißt, dass ich müsste das bei jeder textbox schreiben? irgendwie versteh ich die funktionsweise nicht richtig...kannste mir das mal erklären?
Danke
AW: VBA: nächste Zeile
23.08.2004 13:23:51
Marcl
Bezieht sich auf diese Nachricht:
Hi Marsi,


Sub d()
' Beginn in Zelle A1
Range("A1").Select
' wenn active Zelle nicht leer ist (<>"")
If ActiveCell <> "" Then
' dann von aktiver Zelle eine weiter nach unten
ActiveCell.Offset(1, 0).Select
' hier kann dann der Wert aus der Textbox eingetragen werden (eine Zeile tiefer)
' wenn die Zelle leer ist, dann
Else
' hier kann dann der Wert aus der Textbox eingetragen werden (gleiche Zeile)
' beendet die wenn, sonst Abfrage
End If
' beendet das Makro
End Sub

Wie man die Textboxeinträge in die Zellen bekommt, ist Dir bekannt?
Gruß
Marcl
Anzeige
AW: VBA: nächste Zeile
23.08.2004 13:53:08
Marsi
Hi,
also ich übertrage immer mit dem Range-Befehl.

Private Sub CommandButton1_Click()
Range("A1").Select
If ActiveCell <> "" Then
ActiveCell.Offset(1, 0).Select
Range("A1") = TextBox1.Text (diesen wert schreibt er immer nicht ins Tabellenblatt)
' weitere Bearbeitung eine Zelle tiefer
Else
Range("B1") = TextBox2.Text
Exit Sub
End If
' weitere Bearbeitung in gleicher Zelle
also ich versuch das mal zu verstehen....ich habe da echt ein brett vor dem kopf....
das script schaut in zelle a1 nach ob da schon was steht....steht da nix sollte es ja in zelle a1 was reinschreiben, aber irgendwie tuts das bei mir nicht....bei mir bleibt die zelle a1 immer leer.
ich bin echt am verzweifeln.
Anzeige
AW: VBA: nächste Zeile
23.08.2004 14:21:27
Marsi
so jetzt habe ich es geblickt!
Also dein VBA macht folgendes. es schaut nach, ob in zeile a1 was drin steht wenn nicht, dann schreibts was rein, wenn doch dann hüpfts ne zeile tiefer, aber ab da schreibts dann nix mehr rein. Weil es ja bloß in Zelle A1 nachsieht. aber es müsste dann ja in zelle b1 nachsehen, damit ne endlosschleife endsteht oder? auf jeden fall geht es dann in der zweiten zeile nicht mehr weiter....
AW: VBA: nächste Zeile
23.08.2004 14:38:24
Marcl
was ist TextBox1.txt?
ich versteh Dich nicht ganz. Geht es vielleicht um InputBox?

Private Sub CommandButton1_Click()
Name = InputBox("Vorname")
Range("A1").Select
If ActiveCell <> "" Then
ActiveCell.Offset(1, 0).Select
ActiveCell = Name
Else
ActiveCell = Name
End If
Nachname = InputBox("Nachnname")
Range("B1").Select
If ActiveCell <> "" Then
ActiveCell.Offset(1, 0).Select
ActiveCell = Nachname
Else
ActiveCell = Nachname
End If
End Sub

Anzeige
AW: VBA: nächste Zeile
23.08.2004 15:13:49
Marsi
Hallo,
ich habe mal ne beispiel datei hochgeladen. So soll es sein nur, dass in meinem Beispiel nur eine zeile gefüllt ist. Ich möchte, dass wenn auf der Position datum schon was steht und mann möchte noch einen Vornamen oder nachnamen hinzufügen dann soll das funktionieren. Sowie man aber ein neues datum eingibt soll dann alles komplett in die nächste zeile rutschen

Die Datei https://www.herber.de/bbs/user/9970.xls wurde aus Datenschutzgründen gelöscht

AW: VBA: nächste Zeile
23.08.2004 15:46:48
Marcl
Jaja, mein Brett vor dem Kopf war schon ein ganzer Zaun.
Hier der funktionierende Code für Deine UserForm

Private Sub CommandButton1_Click()
Datum = TextBox1.Value
' Suche Spalte A nach erster leerer Zelle
Columns("A:A").Select
Selection.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
' Active Zelle Datum eintragen
ActiveCell = Datum
Vorname = TextBox2.Text
' Suche Spalte B nach erster leerer Zelle
Columns("B:B").Select
Selection.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
' Active Zelle Vorname eintragen
ActiveCell = Vorname
Nachname = TextBox3.Text
' Suche Spalte C nach erster leerer Zelle
Columns("C:C").Select
Selection.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
' Active Zelle Nachname eintragen
ActiveCell = Nachname
Range("a1").Select
End Sub


Private Sub CommandButton2_Click()
Unload UserForm1
End Sub


Gruß
Marcl
Anzeige
AW: VBA: nächste Zeile
23.08.2004 16:01:09
Marsi
Also bei mir bringt Dein Script nen Fehler und zwar an der
Selection.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
stelle....
ich muss zugeben. ich habe keinen blaßen was Du da geschrieben hast. Das ist mir nicht nur eine Nummer zu hoch. Wo kann ich das lernen? Gibt's da ein Buch was empfehlenswert wäre?
Danke nochmal für die Hilfe
AW: VBA: nächste Zeile
23.08.2004 16:11:58
Marcl
Falls sich unten stehenden Frage wegen der Punkte im Datumsformat darauf bezogen, in der Userform nur 6 Zahlen ein zu geben und dann macht Excel daraus Datum mit Punkten, dann nimm diesen Code:

Private Sub CommandButton1_Click()
Datum = TextBox1.Value
Columns("A:A").Select
Selection.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
ActiveCell = Datum
ActiveCell.Offset(0, 3).Select
ActiveCell.FormulaR1C1 = "=MID(RC[-3],1,2)"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=MID(RC[-4],3,2)"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=MID(RC[-5],5,2)"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=CONCATENATE(RC[-3],""."",RC[-2],""."",RC[-1])"
Selection.Copy
ActiveCell.Offset(0, -6).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveCell.Offset(0, 3).ClearContents
ActiveCell.Offset(0, 4).ClearContents
ActiveCell.Offset(0, 5).ClearContents
ActiveCell.Offset(0, 6).ClearContents
Vorname = TextBox2.Text
Columns("B:B").Select
Selection.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
ActiveCell = Vorname
Nachname = TextBox3.Text
Columns("C:C").Select
Selection.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
ActiveCell = Nachname
Range("a1").Select
End Sub


Private Sub CommandButton2_Click()
Unload UserForm1
End Sub

Gruß
Marcl
Anzeige
AW: VBA: nächste Zeile
23.08.2004 17:16:45
Marsi
also bei mir kommt immer der laufzeitfehler 91
Objektvariable oder WITH_blockvariable nicht festgelegt.....
was auch immer das heißen mag :o)
AW: VBA: nächste Zeile
23.08.2004 19:53:57
Marcl
Was für ne Version hast denn Du? Bei mir auf XP läuft der Kram super.
AW: VBA: nächste Zeile
23.08.2004 19:57:17
Marcl
hier Deine Datei zurück. Wenn´s jetzt nicht läuft, habe ich auch keine Ahnung mehr. Bei mir (XP) klappt das super.
Gruß
Marcl
https://www.herber.de/bbs/user/9990.xls
AW: VBA: nächste Zeile
23.08.2004 20:23:59
Marsi
bei deiner version macht er's!
He, tausend Dank Marcl!!!!!!!!!!
AW: VBA: nächste Zeile
24.08.2004 06:19:34
Marcl
Ich hab die Spalten D-G benötigt, um das Datum zu basteln. Die müssen ausgeblendet werden.
Gruß
Marcl
Anzeige
AW: VBA: nächste Zeile
24.08.2004 07:56:29
Marsi
Kann es sein, dass die ganze Programmierung Versionsabhängig ist??
Unter XP läuft es super. Nun wollte ich das ganze auf ner Excel 2000 Version zum laufen bringen auf Windows 2000 Rechner und er bringt mir nen Laufzeitfehler 448, benanntes Argument nicht gefunden.In dieser Zeile:
Selection.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
also ich habe mir die ganze lange angeschaut und festgestellt, dass ich nichts kapiere was da drin steht.
Mit den Spalten, die ich freihalten muss, dass ist gar kein Problem, dass kann ich mir ja noch selbst anpassen wo ich die hinhaben will.
Anzeige
AW: VBA: nächste Zeile
24.08.2004 09:26:51
Marcl
aha, das kann sein,
und wenn Du nur
Selection.Find(What:="", After:=ActiveCell).Activate
schreibst? Habe ich aber nich tgetestet !
Gruß
Marcl
AW: VBA: nächste Zeile
24.08.2004 16:16:22
Marsi
Krass Du hast es drauf, jetzt klappts!
Danke viel Mal!
Marsi

84 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige