Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Nächste leere Zeile suchen und ausfüllen

Nächste leere Zeile suchen und ausfüllen
04.07.2005 15:18:20
Regnar
Moin liebe Excelgemeinde,
ich habe eine User Form die Daten in ein Excelblatt übertragen soll. Bisher tut sie das logischerweise nur für die zweite Zeile.
Ich möchte, daß er das in die nächste freie Zeile schreibt so, dass er die Daten nicht überschreibt!
Der Code sieht so aus:

Private Sub Fertig_Click()
Tabelle1.Cells(2, 2).Value = Zollnummer
Tabelle1.Cells(2, 3).Value = Artikelpreis
Tabelle1.Cells(2, 4).Value = LandBox
Tabelle1.Cells(2, 6).Value = Versandkosten
Me.Hide
Positionenbildschirm.Show
End Sub

Wie muss dieser ergänzt werden?
Und nöch eine Frage wie lautet der Code wenn man für einen Button den "Datei Öffnen" Befehl hinterlegen will?
Gruß und Vielen Dank
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nächste leere Zeile suchen und ausfüllen
04.07.2005 15:24:56
Ceci
Hallo, versuche folgendes:

Private Sub Fertig_Click()
Dim Zaehler As Long
Zaehler= 2
Do while Worksheets("Tabelle1).cells(Zaehler,2).value <> empty
Zaehler=Zaehler+1
Loop
Tabelle1.Cells(Zaehler, 2).Value = Zollnummer
Tabelle1.Cells(Zaehler, 3).Value = Artikelpreis
Tabelle1.Cells(Zaehler, 4).Value = LandBox
Tabelle1.Cells(Zaehler, 6).Value = Versandkosten
Me.Hide
Positionenbildschirm.Show
End Sub

mfg Cäcilia
Anzeige
AW: Nächste leere Zeile suchen und ausfüllen
04.07.2005 15:27:43
Ceci
Hallo, bin's nochmal,
hab einen Rechtschreibfehler:
Worksheets("Tabelle1").cells(Zaehler,2).value
Habe das Schlusszeichen nach Tabelle1 vergessen, sorry...
mfg Cäcilia
AW: Nächste leere Zeile suchen und ausfüllen
04.07.2005 15:32:53
Regnar
Moin Cacilia,
vielen Dank für deinen Tip.
Leider sagt er mir index liegt ausserhalb des gültigen Bereiches?
Was heisst das bzw. wie kann ich das beheben?
Anzeige
AW: Nächste leere Zeile suchen und ausfüllen
04.07.2005 15:35:47
Dieter
Hi Regnar
hier hast Du was zur Auswahl:

Function LetzteZeile _
(objSheet As Worksheet, _
strStartCell As String) As Range 'fuer die letzte Zeile eines zusammenhaengenden Bereichs:
Dim objRange As Range
Dim lngLastRow As Long
Dim lngLastCol As Long
Set objRange = objSheet _
.Range(strStartCell).CurrentRegion
lngLastRow = objRange.Row + _
objRange.Rows.count - 1
lngLastCol = objRange.Column + _
objRange.Columns.count - 1
With objSheet
Set LetzteZeile = .Range _
(.Cells(lngLastRow, objRange.Column), _
.Cells(lngLastRow, lngLastCol))
End With
End Function


Function LetzteSpalte _
(objSheet As Worksheet, _
strStartCell As String) As Range 'fuer die letzte Spalte eines zusammenhaengenden Bereichs:
Dim objRange As Range
Dim lngLastCol As Long
Dim lngLastRow As Long
Set objRange = objSheet _
.Range(strStartCell).CurrentRegion
lngLastCol = objRange.Column + _
objRange.Columns.count - 1
lngLastRow = objRange.Row + _
objRange.Rows.count - 1
With objSheet
Set LetzteSpalte = .Range _
(.Cells(objRange.Row, lngLastCol), _
.Cells(lngLastRow, lngLastCol))
End With
End Function


Function AbsLetzteZeile _
(objSheet As Worksheet) As Range 'fuer die letzte benutzte Zeile eines Tabellenblatts:
Dim objLastCell As Range
Dim lngLastRow As Long
Set objLastCell = objSheet _
.Cells.SpecialCells(xlCellTypeLastCell)
lngLastRow = objLastCell.Row
Set AbsLetzteZeile = objSheet _
.Rows(lngLastRow).EntireRow
End Function


Function AbsLetzteSpalte _
(objSheet As Worksheet) As Range 'fuer die letzte benutzte Spalte eines Tabellenblatts:
Dim objLastCell As Range
Dim lngLastCol As Long
Set objLastCell = objSheet _
.Cells.SpecialCells(xlCellTypeLastCell)
lngLastCol = objLastCell.Column
Set AbsLetzteSpalte = objSheet _
.Columns(lngLastCol).EntireColumn
End Function

'z.B.LetzteZeile(ActiveSheet, "A3").Offset(1, 0).Select
oder auch noch:

Sub letzteZelle()
Dim lR
lR = Worksheets("Tabelle1").Cells(Rows.count, 1).End(xlUp).Row
MsgBox lR
End Sub

Ich hoffe, Du hast genügend Auswahlmöglichkeit
Gruss Dieter
Anzeige
AW: Nächste leere Zeile suchen und ausfüllen
04.07.2005 15:44:11
Regnar
Moin Dieter,
danke für die Tipps!
Im ersten Moment war ich doch leicht schockiert, weil das sieht für einen Laien arg kompliziert aus...
Kann ich den einfach vor meinen Code setzen?
AW: Nächste leere Zeile suchen und ausfüllen
05.07.2005 10:34:55
Regnar
Moin vielleicht kann mir einer meine noch offene Frage beantworten.
Welchen der Codevorschläge muss ich wie einbinden?
Habe da nur die Hälfte von verstanden...
Gruß
Anzeige
AW: Nächste leere Zeile suchen und ausfüllen
05.07.2005 11:36:27
Rainer
Hallo Regnar,
habe gestern bereits versucht, Deine Frage zu beantworten, aber scheinbar ist meine Mail im Datennirwana gelandet. Also, zweiter Versuch.
Ich gehe davon aus, dass der Zellzeiger in einer Spalte steht, in der alle Zeilen beschrieben sind (sonst muß man ihn in eine solche bewegen). Dann findet Excel die erste freie Zelle mit folgendem Code:
Dim iZeile as Int
iZeile = Selection.End(xlDown).Row + 1
Der Wert kann dann z.B so verwendet werden:
cells(iZeile,1).Select
Mit ähnlichen Code kann man auch die erste leere Spalte ermitteln; der Parameter heißt dann xlRight.
Beste Grüße aus Recklinghausen
Rainer Weiß
Anzeige
AW: Nächste leere Zeile suchen und ausfüllen
05.07.2005 12:04:14
Regnar
Danke Rainer
ich habe das ganze jetzt so gelöst:
' Freie Zeile ermitteln
z = 2
Do While Cells(z, 2) ""
z = z + 1
Loop
'Wert(e) übertragen

Tabelle1.Cells(z, 2) = Artikel
Tabelle1.Cells(z, 3) = Artikelpreis
Tabelle1.Cells(z, 4) = Versandart
Klappt bisher auch aber alleine das lesen deiner Vorschläge hat mich schon wieder weiter gebracht im VBA verstehen!
Gruß
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Nächste leere Zeile in Excel finden und ausfüllen


Schritt-für-Schritt-Anleitung

Um mit Excel VBA die nächste leere Zeile zu finden und dort Werte zu schreiben, kannst Du den folgenden Code verwenden. Dieser Code sucht in der Spalte B der Tabelle nach der ersten leeren Zeile und schreibt die Daten in die entsprechende Zelle.

Private Sub Fertig_Click()
    Dim Zaehler As Long
    Zaehler = 2
    ' Nächste leere Zeile finden
    Do While Worksheets("Tabelle1").Cells(Zaehler, 2).Value <> ""
        Zaehler = Zaehler + 1
    Loop
    ' Werte einfügen
    Tabelle1.Cells(Zaehler, 2).Value = Zollnummer
    Tabelle1.Cells(Zaehler, 3).Value = Artikelpreis
    Tabelle1.Cells(Zaehler, 4).Value = LandBox
    Tabelle1.Cells(Zaehler, 6).Value = Versandkosten
    Me.Hide
    Positionenbildschirm.Show
End Sub

Dieser Code überprüft die Zellen in der Spalte B, bis eine leere Zelle gefunden wird. Hierbei wird die Funktion excel vba nächste leere zeile finden verwendet, um sicherzustellen, dass diese Methode nicht die bereits vorhandenen Daten überschreibt.


Häufige Fehler und Lösungen

  1. Index liegt außerhalb des gültigen Bereichs

    • Dieser Fehler tritt auf, wenn Du versuchst, auf eine Zelle zuzugreifen, die nicht existiert. Stelle sicher, dass die Arbeitsmappe und das Arbeitsblatt korrekt benannt sind. Überprüfe auch, ob Du beim Zugriff auf Zellen den richtigen Index verwendest.
  2. Rechtschreibfehler im Code

    • Achte darauf, dass Du alle Anführungszeichen korrekt setzt, z. B. Worksheets("Tabelle1").Cells(Zaehler, 2).Value.
  3. Zugriff auf nicht vorhandene Zelle

    • Vergewissere Dich, dass Du die richtige Tabelle und Spalte angibst. Bei der Verwendung von Cells und Range ist es wichtig, dass die Spalten- und Zeilenindices innerhalb des gültigen Bereichs liegen.

Alternative Methoden

Es gibt verschiedene Methoden, um die nächste leere Zelle in Excel zu finden. Hier sind einige Alternativen:

  1. Verwendung von End(xlUp)

    Dim lR As Long
    lR = Worksheets("Tabelle1").Cells(Rows.Count, 2).End(xlUp).Row + 1
    Tabelle1.Cells(lR, 2).Value = Zollnummer
  2. Funktion zur Ermittlung der letzten Zeile Du kannst auch eine Funktion erstellen, um die letzte benutzte Zeile zu ermitteln und diese dann anpassen, um in die nächste leere Zeile zu schreiben.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du den Code anpassen kannst:

  1. Werte in die nächste leere Zeile schreiben

    ' Freie Zeile ermitteln
    Dim z As Long
    z = 2
    Do While Cells(z, 2) <> ""
       z = z + 1
    Loop
    ' Werte in die nächste leere Zeile schreiben
    Tabelle1.Cells(z, 2).Value = Artikel
    Tabelle1.Cells(z, 3).Value = Artikelpreis
  2. Erste leere Zeile finden

    Dim ersteLeereZeile As Long
    ersteLeereZeile = Worksheets("Tabelle1").Cells(Rows.Count, 2).End(xlUp).Row + 1

Tipps für Profis

  • Nutze die Funktion SpecialCells um nur die benutzten Zellen zu betrachten, was die Leistung bei großen Datenmengen verbessern kann.
  • Wenn Du häufig mit VBA arbeitest, erstelle Dir eine Sammlung von nützlichen Funktionen, die Du immer wieder verwenden kannst, wie z.B. vba erste leere zeile finden und einfügen.
  • Achte darauf, Deine Variablen gut zu benennen, um die Lesbarkeit Deines Codes zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich die nächste leere Zelle in einer bestimmten Spalte finden? Du kannst den Code entsprechend anpassen, indem Du die Spaltennummer in Cells(z, Spaltennummer) änderst.

2. Was mache ich, wenn ich mehrere Daten auf einmal eingeben möchte? Du kannst die Schleife erweitern, um mehrere Werte gleichzeitig zu erfassen und in die entsprechende Zeile zu schreiben.

3. Was sind die besten Methoden, um Fehler im VBA-Code zu beheben? Nutze die Debug.Print-Anweisung, um den Wert von Variablen während der Ausführung zu überprüfen, oder setze Haltepunkte, um den Code Schritt für Schritt zu durchlaufen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige