gehtnetgibtsnet
Cadet 4th Year
- Registriert
- März 2019
- Beiträge
- 124
Hallo Forum,
mit folgenden Befehlen ermittle ich die Eckpunkte meiner Tabelle:
MaxCols = ActiveSheet.UsedRange.Columns.Count
MaxRows = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
Wenn ich dann anschließend den ermittelten Bereich durch
Range(Cells(1,1),Cells(MaxRows,MaxCols)).Select
sichtbar mache, stelle ich bei vielen meiner Tabellen fest, dass in diesem Bereich (jeweils am Ende) unbenutzte Zeilen bzw. Spalten enthalten sind.
Jetzt möchte ich überprüfen, ob jeweils am Ende ungenutzte Bereiche vorhanden sind. Deshalb habe ich mit folgenden Code das Ende jeder Spalte bzw. jeder Zeile ermittelt:
Sub die_Letzten()
MaxCols = ActiveSheet.UsedRange.Columns.Count
MaxRows = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
Range(Cells(1,1),Cells(MaxRows,MaxCols)).Select
MaxZeile = 0
MaxSpalte = 0
For Loop1 = 1 To MaxCols
LZeile = Cells(Rows.Count, Loop1).End(xlUp).Row
If LZeile > MaxZeile Then MaxZeile = LZeile
Next Loop1
For Loop1 = 1 To MaxRows
LSpalte = Cells(Loop1, Columns.Count).End(xlToLeft).Column
If LSpalte > MaxSpalte Then MaxSpalte = LSpalte
Next Loop1
Debug.Print "MaxRows = " & MaxRows
Debug.Print "MaxCols = " & MaxCols
Debug.Print "L. Zeile = " & MaxZeile
Debug.Print "L. Spalte = " & MaxSpalte
End Sub
Ergebnis:
MaxRows = 100
MaxCols = 22
L. Zeile = 106
L. Spalte = 19
Leider sind die ermittelten Werte nicht korrekt, und ich habe auch die Ursache gefunden: in manchen Zeilen sind die letzten Spalten miteinander verbunden, und in den dazugehörenden Spalten ist in keiner anderen Zeile ein Wert vorhanden.
Und in Zeile 106 ist eine Hintergrundfarbe eingetragen!
Hat jemand eine Idee zu Lösung des Problems?
mit folgenden Befehlen ermittle ich die Eckpunkte meiner Tabelle:
MaxCols = ActiveSheet.UsedRange.Columns.Count
MaxRows = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
Wenn ich dann anschließend den ermittelten Bereich durch
Range(Cells(1,1),Cells(MaxRows,MaxCols)).Select
sichtbar mache, stelle ich bei vielen meiner Tabellen fest, dass in diesem Bereich (jeweils am Ende) unbenutzte Zeilen bzw. Spalten enthalten sind.
Jetzt möchte ich überprüfen, ob jeweils am Ende ungenutzte Bereiche vorhanden sind. Deshalb habe ich mit folgenden Code das Ende jeder Spalte bzw. jeder Zeile ermittelt:
Sub die_Letzten()
MaxCols = ActiveSheet.UsedRange.Columns.Count
MaxRows = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
Range(Cells(1,1),Cells(MaxRows,MaxCols)).Select
MaxZeile = 0
MaxSpalte = 0
For Loop1 = 1 To MaxCols
LZeile = Cells(Rows.Count, Loop1).End(xlUp).Row
If LZeile > MaxZeile Then MaxZeile = LZeile
Next Loop1
For Loop1 = 1 To MaxRows
LSpalte = Cells(Loop1, Columns.Count).End(xlToLeft).Column
If LSpalte > MaxSpalte Then MaxSpalte = LSpalte
Next Loop1
Debug.Print "MaxRows = " & MaxRows
Debug.Print "MaxCols = " & MaxCols
Debug.Print "L. Zeile = " & MaxZeile
Debug.Print "L. Spalte = " & MaxSpalte
End Sub
Ergebnis:
MaxRows = 100
MaxCols = 22
L. Zeile = 106
L. Spalte = 19
Leider sind die ermittelten Werte nicht korrekt, und ich habe auch die Ursache gefunden: in manchen Zeilen sind die letzten Spalten miteinander verbunden, und in den dazugehörenden Spalten ist in keiner anderen Zeile ein Wert vorhanden.
Und in Zeile 106 ist eine Hintergrundfarbe eingetragen!
Hat jemand eine Idee zu Lösung des Problems?