Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Formatieren nur bis zur letzten Zeile

Forumthread: Formatieren nur bis zur letzten Zeile

Formatieren nur bis zur letzten Zeile
06.05.2002 16:23:46
Finus
Ich habe ein Makro aufgezeichnet, in dem unter anderem Zeilen formatiert werden sollen.

Da die zu formatierende csv-Dateien aber immer unterschiedliche Längen (30-150 Zeilen) haben, formatiere ich momentan immer bis zur Zeile 500, was beim Ausdrucken nachher aber alles als Leerzeilen mitkommt. :-(

Gibt es einen Makrobefehl, mit dem ich meine Formatierungsbefehle (Haarlinie, Zeilenhöhe, usw.) im Makro bis zur letzten Zeile (und letzten Spalte) intelligent begrenzen kann?

Danke
Gruß Finus

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Formatieren nur bis zur letzten Zeile
06.05.2002 16:28:08
Hajo
Hallo Finus

mal ein Ansatz

109. Letzte Zeile der Spalte C (=3)
Zeile als Long Definieren
Cells(Rows.Count, 3).End(xlUp).Row
oder
[C65536].End(xlUp).Row verursacht aber fehler wenn 65536 nicht leer
Hinweis von ManuelaM
If [a65536] = "" Then
letzte = [a65536].End(xlUp).Row
Else
letzte = 65536
End If

110. Letzte Spalte der Zeile 4
Cells(4, Columns.Count).End(xlToLeft).Column
Fehler falls letzte Spalte belegt wird diese nicht erkannt
[IV4] End(xlToLeft).Column
nach Hinweis von ManuelaM geändert
If [IV4] = "" Then
letzte =[IV4].End(xlToLeft).Column
Else
letzte = 256
End If

111. Letzte Zelle in eine Tabelle
Sub Test()
Name = ActiveSheet.Cells.SpecialCells(xlLastCell).Address(False, False)
End Sub
Funktion schießt gelegentlich über Ziel hinaus nach löschen von Zeilen, Spalten vorher speichern

112. benuzter Bereich einer Tabelle
Sub Test()
Name = Sheets("Tabelle1").UsedRange.Address
End Sub
z.B. Name = ($A$1:$F$8)

113. Letzte Zelladresse mit und ohne VBA
(unabhängig von der Spalte) Zeilennummer ermitteln
Die allerletzte benutzte Zeile, unabhängig von der Spalte liefert:
MsgBox Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row

Die Koordinaten (Zelladresse) aus der letzten belegten Zeile und der letzten belegten Spalte erhältst Du mit folgender Array-Formel in A1:
{=ADRESSE(MAX((A2:AV1000<>"")*ZEILE(A2:A1000));MAX((A2:AV1000<>"")*SPALTE(A2:AV2)))}
ARRAY-Formel {=geschweifte Klammern} nicht eingeben;
Abschluß der Formel mit gleichzeitig Strg / Shift / Enter; - das erzeugt sie.
Von WF

Gruß Hajo

Anzeige
Re: Formatieren nur bis zur letzten Zeile
06.05.2002 17:01:13
Finus
Hallo Hajo,

erstmal danke für deine Tips,
bin Anfänger in VBA, und brauche noch eine kleine weitere Hilfe!

also ich habe deinen Tip-Nr.113 ausprobiert, er liefert mir 116, d.h. dass ungefiltert die letzte Zeile=116 ist, (später filtere ich, dann ist es nur noch 115!)
Also muss ich mir im ungefilterten Zustand die Zeilenzahl (116) irgendwie in einer Variablen sichern, wie geht das?
Und nachher diese Variable als Zeilenzahl im Formatierungsbefehl verwenden, wie geht das?

Hier mein strarrer Formatierungsteil aus dem Makro:
'
' dünne Rahmen (Haarlinien) einfügen #2
Selection.AutoFilter Field:=8
Range("A6:AA249").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlHairline
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlHairline
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlHairline
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.RowHeight = 21


ich denke, dass an der Stelle:
Range("A6:AA249").Select

so was ähnliches wie
Range("A6:AA.ROW.").Select

sollte, aber bestimmt nicht so,

wer kann mir da einen Tip geben?

Anzeige
Re: Formatieren nur bis zur letzten Zeile
06.05.2002 17:09:33
Hajo
Hallo Fnus

Gruß Hajo

Re: Formatieren nur bis zur letzten Zeile
06.05.2002 17:28:50
Finus
Hallo Hajo,

ES LÄUFT!!!!!
DANKE!

Gruß Finus

;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Formatieren von Excel bis zur letzten Zeile


Schritt-für-Schritt-Anleitung

Um in Excel alles bis zur letzten Zeile zu formatieren, kannst Du ein einfaches Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeineDatei.xlsx)" -> Einfügen -> Modul.

  3. Kopiere den folgenden Code in das Modul:

    Sub FormatierenBisLetzteZeile()
       Dim letzteZeile As Long
       letzteZeile = Cells(Rows.Count, 1).End(xlUp).Row ' Letzte Zeile in Spalte A ermitteln
    
       ' Formatierungen anwenden
       With Range("A1:A" & letzteZeile)
           .Borders(xlEdgeTop).LineStyle = xlContinuous
           .Borders(xlEdgeBottom).LineStyle = xlContinuous
           .RowHeight = 21
       End With
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus: Gehe zu "Entwicklertools" -> "Makros" und wähle FormatierenBisLetzteZeile aus.

Mit diesem Makro kannst Du die Zeilen formatieren, bis zur letzten Zeile, die Daten enthält.


Häufige Fehler und Lösungen

  1. Fehler: "Typen sind inkompatibel"

    • Lösung: Überprüfe, ob die Zelle, die Du ansprechen möchtest, die richtige Datenart hat (z.B. Text oder Zahl).
  2. Fehler: Makro läuft nicht

    • Lösung: Stelle sicher, dass die Makros in Deinen Excel-Einstellungen aktiviert sind.
  3. Formatierung wird nicht angewendet

    • Lösung: Überprüfe, ob die Range korrekt definiert ist. Möglicherweise ist die letzte Zeile nicht richtig ermittelt.

Alternative Methoden

Es gibt auch andere Ansätze, um in Excel bis zur letzten Zeile zu markieren:

  • Mit der UsedRange Eigenschaft:

    Sub FormatierenMitUsedRange()
      Dim rng As Range
      Set rng = ActiveSheet.UsedRange
      rng.Borders(xlEdgeTop).LineStyle = xlContinuous
      rng.RowHeight = 21
    End Sub
  • Durch manuelles Markieren:

    • Du kannst auch einfach mit der Maus die Zellen bis zur letzten Zeile markieren und dann die gewünschten Formatierungen anwenden.

Praktische Beispiele

Hier sind einige Beispiele, wie Du in Excel bis zur letzten Zeile formatieren kannst:

  1. Zeilenhöhe anpassen:

    Range("A1:A" & letzteZeile).RowHeight = 21
  2. Zellen mit bestimmten Werten formatieren:

    Dim i As Long
    For i = 1 To letzteZeile
       If Cells(i, 1).Value = "Wert" Then
           Cells(i, 1).Interior.Color = RGB(255, 0, 0) ' Rot
       End If
    Next i
  3. Rahmen hinzufügen:

    With Range("A1:A" & letzteZeile).Borders
       .LineStyle = xlContinuous
       .Weight = xlMedium
    End With

Tipps für Profis

  • Nutze Application.ScreenUpdating = False, um das Flackern des Bildschirms während der Ausführung des Makros zu vermeiden.
  • Experimentiere mit verschiedenen xlBorderStyles, um individuelle Designs zu erstellen.
  • Wenn Du oft mit CSV-Dateien arbeitest, speichere Deine Makros in der Personal.xlsb, um sie jederzeit verfügbar zu haben.

FAQ: Häufige Fragen

1. Wie kann ich die letzte Zeile in einer bestimmten Spalte ermitteln? Um die letzte Zeile in einer bestimmten Spalte zu finden, kannst Du den folgenden Code verwenden:

letzteZeile = Cells(Rows.Count, 3).End(xlUp).Row ' Für Spalte C

2. Kann ich auch mehrere Spalten gleichzeitig formatieren? Ja, Du kannst mehrere Spalten formatieren, indem Du den Range entsprechend anpasst, zum Beispiel:

With Range("A1:C" & letzteZeile)
    .Borders(xlEdgeTop).LineStyle = xlContinuous
End With

3. Wie kann ich die Formatierung nur auf belegte Zellen anwenden? Verwende die UsedRange-Eigenschaft, um nur die belegten Zellen zu formatieren:

Set rng = ActiveSheet.UsedRange
rng.Borders(xlEdgeBottom).LineStyle = xlContinuous

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