Formatieren nur bis zur letzten Zeile

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox


Excel-Version: 97 SR-2
nach unten

Betrifft: Formatieren nur bis zur letzten Zeile
von: Finus
Geschrieben am: 06.05.2002 - 16:23:46

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

nach oben   nach unten

Re: Formatieren nur bis zur letzten Zeile
von: Hajo
Geschrieben am: 06.05.2002 - 16:28:08

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

nach oben   nach unten

Re: Formatieren nur bis zur letzten Zeile
von: Finus
Geschrieben am: 06.05.2002 - 17:01:13

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?

nach oben   nach unten

Re: Formatieren nur bis zur letzten Zeile
von: Hajo
Geschrieben am: 06.05.2002 - 17:09:33

Hallo Fnus

Sub Test()
    Selection.AutoFilter Field:=8
    With Range("A6:AA" & Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row)
        .Borders(xlDiagonalDown).LineStyle = xlNone
        .Borders(xlDiagonalUp).LineStyle = xlNone
        .Borders(xlEdgeLeft).LineStyle = xlNone
        .Borders(xlEdgeRight).LineStyle = xlNone
        .Borders(xlInsideVertical).LineStyle = xlNone
        .Borders(xlEdgeRight).LineStyle = xlNone
        .Borders(xlInsideVertical).LineStyle = xlNone
        .RowHeight = 21
        With .Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .Weight = xlHairline
        End With
        With .Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .Weight = xlHairline
        End With
        With .Borders(xlInsideHorizontal)
            .LineStyle = xlContinuous
            .Weight = xlHairline
        End With
    End With
End Sub

Gruß Hajo

nach oben   nach unten

Re: Formatieren nur bis zur letzten Zeile
von: Finus
Geschrieben am: 06.05.2002 - 17:28:50

Hallo Hajo,

ES LÄUFT!!!!!
DANKE!

Gruß Finus


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Formatieren nur bis zur letzten Zeile"