Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: nächste zeile bzw. spalte ansprechen

nächste zeile bzw. spalte ansprechen
21.03.2008 16:27:03
Arno
ich benutze zum ermitteln der nächsten leere zeile:
For Each Cell In Range("B5:B7")
If ActiveCell >= "0" Then
ActiveCell(Selection.Rows.Count + 1, 1).Select
End If
Next
bei b8 fügt er nichts mehr ein weil der bereich dann ja beendet ist,
nun soll er wenn b7 ereicht ist das dann z.b. bei c5 weitergeht bis c7 dann z.b. e5 usw.
Wäre schön wenn mir jemand helfen könnte und allen schöne Oster.

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nächste zeile bzw. spalte ansprechen
21.03.2008 17:08:51
Daniel
Hi
wenn du alle leeren Zellen selektiern willst dann geht das auch so:

range("B5:C7,E5:E7").specialcells(xlCellTypeBlanks)(1).select


die erste leere Zelle in dem Bereich bekommst du mit


range("B5:C7,E5:E7").specialcells(xlCellTypeBlanks)(1).select


bzw wenn du mit allen leeren Zellen was vorhast dann auch so


for each Zelle in range("B5:C7,E5:E7").specialcells(xlCellTypeBlanks)
Zelle..... = ....
Next


unterbrochene Zellbereiche kannst du wie dargestellt eingeben (hier die Zeilen 5-7 der Spalten B,C und E ohne D)
aber auchtung, gibts keine Leeren Zellen, dann bricht das Makro mit Fehler ab.
Gruß, Daniel

Anzeige
AW: nächste zeile bzw. spalte ansprechen
21.03.2008 17:30:26
Arno
bin mir nicht sicher ob das so geht.
ich kopiere über eine schaltfläche von einer tabelle in die nächste.also h8 nach b5 nächsten tag h8 nach b6 nächsten tag h8 nach b7. wenn nun b7 belegt ist soll er den nächsten eintrag bei c5 machen das bis c7 wenn c7 geschrieben ist dann nach e5.
das ist ein tagesbericht und wird in einen monatsbericht eingetragen.
hoffe das es etwas klarer ist was ich meine :-)

Anzeige
AW: nächste zeile bzw. spalte ansprechen
21.03.2008 17:34:45
Daniel
Hi
etwas nebulös was du da schreibst
aber mit der 2. funktion sollte es doch funktionieren.
wenn die erste freie Zelle beschrieben wurde, ist sie ja nicht mehr frei und beim nächsten durchlauf ist dann die nächste freie Zelle dran.
aber lad doch mal ein beispiel hoch, damit es klarer wird, was du willst und man auch mal was ausprobieen kann.
gruß, Daniel

Anzeige
AW: nächste zeile bzw. spalte ansprechen
21.03.2008 18:58:29
fcs
Hallo Arno,
ich hab auch noch ein wenig probiert. Mit den SpecialCells gibt es bei mir unter Excel97 auch Probleme. Wenn alle 3 Zeilen einer Spalte gefüllt sind kommt eine Fehlermeldung, weil keine Leeren Zellen mehr vorhanden sind. Excel erfasst scheinbar nur die leeren Zellen, die innerhalb des UsedRange liegen, selbst dann wenn man einen größeren Bereich vorgibt. Die leeren Zellen werden auch zeilen- und nicht spaltenweise aufgefüllt.
Folgende Variante sollte es tun und zwar ohne Select und Selection. Tabellennamen muss du ggf. anpassen.
Gruß
Franz

Sub aaa1()
Dim Zeile As Long, Spalte As Long
Dim wsTag As Worksheet, wsMonat As Worksheet, Ziel As Range
Set wsTag = Worksheets("Tagesbericht")
Set wsMonat = Worksheets("Monatsbericht")
'Nächste freie Zelle im Bereich B5:IV7 suchen
With wsMonat
For Spalte = 2 To .Columns.Count
For Zeile = 5 To 7
If IsEmpty(.Cells(Zeile, Spalte)) Then GoTo weiter
Next
Next
weiter:
Set Ziel = .Cells(Zeile, Spalte)
End With
'Wert von Tages- in Monatsbeicht kopieren oder übertragen
wsTag.Range("H8").Copy Destination:=Ziel
Application.CutCopyMode = False
'oder
Ziel.Value = wsTag.Range("H8").Value
End Sub


Anzeige
AW: nächste zeile bzw. spalte ansprechen
21.03.2008 18:09:35
Schallbach
Hallo
Würde es mit If probieren ungefähr so:

Sub Einfügen()
For Each Cell In Range("B5:B7")
If ActiveCell >= "0" Then
ActiveCell(Selection.Rows.Count + 1, 1).Select
End If
Next
If Range("B7") > 0 Then
For Each Cell In Range("C5:C7")
If ActiveCell >= "0" Then
ActiveCell(Selection.Rows.Count + 1, 1).Select
End If
Next
If Range("C7") > 0 Then
For Each Cell In Range("D5:D7")
If ActiveCell >= "0" Then
ActiveCell(Selection.Rows.Count + 1, 1).Select
End If
Next
'u.s.w.
End Sub


Gruss
Schallbach

Anzeige
AW: nächste zeile bzw. spalte ansprechen
21.03.2008 22:40:35
Beate
Hallo,
gerade lief woanders ein ähnlicher Thread, daher ist der Code nicht von mir, der Link steht im Code:
Sub Uwe()
    'http://www.online-excel.de/fom/fo_read.php?f=1&bzh=26918&h=26914&ao=1#a123x
    Dim rngB As Range, rngL As Range
    Set rngB = Range("B5:IV7")
    On Error Resume Next
    Set rngL = rngB.Find(What:="", After:=rngB.Cells(rngB.Cells.Count), LookIn:=xlValues, LookAt:= _
        xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False)
    If Not rngL Is Nothing Then ActiveSheet.Paste rngL
End Sub


Gruß,
Beate
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Nächste Zeile oder Spalte Ansprechen in Excel


Schritt-für-Schritt-Anleitung

Um die nächste leere Zeile oder Spalte in Excel zu finden und diese zu nutzen, kannst du den folgenden VBA-Code verwenden. Dieser Code sucht die nächste leere Zelle in einem definierten Bereich:

Sub SucheNaechsteLeereZelle()
    Dim Zeile As Long, Spalte As Long
    Dim ws As Worksheet
    Set ws = Worksheets("Monatsbericht")

    For Spalte = 2 To ws.Columns.Count
        For Zeile = 5 To 7
            If IsEmpty(ws.Cells(Zeile, Spalte)) Then
                ws.Cells(Zeile, Spalte).Value = "Neuer Eintrag"
                Exit Sub
            End If
        Next Zeile
    Next Spalte
End Sub

Dieser Code durchläuft die Spalten B bis zu den letzten Spalten und sucht die nächste leere Zelle in den Zeilen 5 bis 7. Wenn eine leere Zelle gefunden wird, wird "Neuer Eintrag" eingefügt.


Häufige Fehler und Lösungen

  1. Problem: Fehler beim Suchen nach leeren Zellen.

    • Lösung: Stelle sicher, dass der Bereich, den du durchsuchst, tatsächlich leere Zellen enthält. Wenn alle Zellen gefüllt sind, kann der Code nicht fortfahren.
  2. Problem: Der Code funktioniert nicht in älteren Excel-Versionen.

    • Lösung: Überprüfe die Kompatibilität des Codes mit deiner Excel-Version. Insbesondere in Excel97 kann es zu Problemen kommen.

Alternative Methoden

Eine andere Methode, um die nächste leere Zelle zu finden, ist die Verwendung der SpecialCells-Methode. Hier ein Beispiel:

Sub NaechsteLeereZelleMitSpecialCells()
    On Error Resume Next
    Range("B5:C7,E5:E7").SpecialCells(xlCellTypeBlanks)(1).Value = "Neuer Eintrag"
    On Error GoTo 0
End Sub

Dieser Code setzt den Wert in die erste leere Zelle im angegebenen Bereich. Beachte, dass der Code bei Fehlern (wie wenn keine leeren Zellen vorhanden sind) nicht abbricht.


Praktische Beispiele

  • Täglicher Bericht: Wenn du einen täglichen Bericht führst und die Werte in die nächste leere Zelle übertragen möchtest, kannst du den ersten Code verwenden und anpassen, um den Wert von einer bestimmten Zelle in den Monatsbericht zu kopieren.

  • Dynamische Berichte: Verwende die SpecialCells-Methode, um schnell leere Zellen in einem größeren Bericht zu finden, ohne genau die Zeilen und Spalten anzugeben.


Tipps für Profis

  • Verwende Fehlerbehandlung: Implementiere On Error Resume Next, um zu verhindern, dass dein Makro bei einem Fehler abbricht.
  • Vermeide die Verwendung von Selektieren: Es ist effizienter, direkt auf die Zellen zuzugreifen, anstatt mit .Select zu arbeiten.
  • Optimiere deine Bereiche: Definiere die zu durchsuchenden Bereiche präzise, um die Leistung zu verbessern, besonders bei großen Datenmengen.

FAQ: Häufige Fragen

1. Wie finde ich die nächste leere Zeile in Excel?
Du kannst VBA verwenden, um die nächste leere Zeile zu finden, indem du den Code anpasst, der die IsEmpty-Funktion nutzt.

2. Funktioniert dieser Code in allen Excel-Versionen?
Der Code ist für neuere Versionen von Excel optimiert. Bei älteren Versionen, wie Excel97, kann es zu Problemen kommen, insbesondere mit der SpecialCells-Methode.

3. Kann ich den Bereich, den ich durchsuchen möchte, anpassen?
Ja, du kannst die Bereiche in den Codes ändern, um auf andere Zellen oder Spalten zuzugreifen, je nach deinen Anforderungen.

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