Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
652to656
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
652to656
652to656
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Leerzeilen in best. Bereichen auf 0 setzen

Leerzeilen in best. Bereichen auf 0 setzen
16.08.2005 09:37:25
Sascha
Guten Morgen,
habe folgendes Problem:
In drei jeweils sechszeiligen Bereichen soll per Makro geprüft, ob sich in den jeweiligen Bereichen Leerzeilen befinden.
Falls ja, dann soll die betreffende Zeile nicht gelöscht, sondern auf RowHeight = 0 gesetzt werden.
Habe mir bislang folgende Gedanken gedacht, die aber nicht so ganz funktionieren:
Dim Bereich1, Bereich2, Bereich3 As Range
Set Bereich1 = ActiveSheet.Rows("1:6")
Set Bereich2 = ActiveSheet.Rows("10:16")
Set Bereich3 = ActiveSheet.Rows("20:26")
Dann per If jeden Bereich abfragen - aber wie?
Wer kann mit dabei helfen?
Gruß
Sascha

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leerzeilen in best. Bereichen auf 0 setzen
16.08.2005 09:43:32
Eule
Hi Sascha
dies kannst Du Dir ja etwas anpassen:

Sub procLeereZeilenVerdecken()
ActiveSheet.UsedRange.Select
lngAnzahl = Selection.Rows.count
For i = 1 To lngAnzahl
If Application.CountA(Selection.Rows(i)) = 0 Then
Selection.Rows(i).Hidden = True
End If
Next i
End Sub

Gruss Eule
AW: Leerzeilen in best. Bereichen auf 0 setzen
16.08.2005 10:20:25
Sascha
Hab's jetzt so gemacht:

Sub procLeereZeilenVerdecken()
Dim Bereich1 As Range
Set Bereich1 = ActiveSheet.Rows("49:54")
ActiveSheet.Bereich1.Select
lngAnzahl = Selection.Rows.Count
For i = 1 To lngAnzahl
If Application.CountA(Selection.Rows(i)) = 0 Then
Selection.Rows(i).Hidden = True
End If
Next i
End Sub

Funktioniert aber nicht. Er sagt immer "Objekt unterstützt diese Eigenschaft oder Methode nicht". Was muss ich ändern und wie kann ich alle drei Bereiche abfragen?
Anzeige
AW: Leerzeilen in best. Bereichen auf 0 setzen
16.08.2005 11:17:39
Harald
Hallo Sascha,
hier eine alternativer Ansatz.

Sub leere()
Dim i As Integer
For i = 1 To 6
If WorksheetFunction.CountA(Rows(i)) >= 1 Then
Rows(i).RowHeight = 12.75 'Standardhöhe
Else
Rows(i).RowHeight = 0
End If
Next i
End Sub

...und wieder zurück

Sub reset()
Dim x As Integer
For x = 1 To 26
Rows(x).RowHeight = 12.75
Next x
End Sub

Gruß
Harald
AW: Leerzeilen in best. Bereichen auf 0 setzen
16.08.2005 11:42:00
Sascha
Problem gelöst.
Super, danke!!
Danke für Rückmeldung ;-)) o.w.T
16.08.2005 11:52:14
Harald
Gruß
AW: Danke für Rückmeldung ;-)) o.w.T
16.08.2005 13:09:26
Sascha
...hab doch noch was.
In manchen Zeilen, die optisch leer sind, sind Formeln hinterlegt.
Diese Zeilen blendet er dann leider nicht aus.
Kann man das auch irgendwie hinbekommen?
Gruß und Dank,
Sascha
Anzeige
AW: Danke für Rückmeldung ;-)) o.w.T
16.08.2005 13:55:00
Harald
Hi nochmal,
Änderung der If Abfrage
If WorksheetFunction.CountIf(Rows(i), "&gt0") &gt= 1 Then
Gruß
Harald
AW: Danke für Rückmeldung ;-)) o.w.T
16.08.2005 15:17:09
Sascha
Allerletzte Frage (für heute...) :-) :
Bei der letzten Variante von Dir löscht er mir nun alle sechs Zeilen weg.
Das Kriterium "leer" oder "nicht leer" müsste aber bei mir auch in Spalte B abgefragt werden. Was muss da geändert werden?
Gruß und Dank,
Sascha
AW: Danke für Rückmeldung ;-)) o.w.T
16.08.2005 15:40:24
Harald
Hi Sascha,
hab schon Feierabend und bin wieder zuhause und hab nur kurz nochmal reingeschaut.
Muss dich auf morgen vertrösten, da der Nachbau im Firmen-PC schlummert und ich das hier nicht auch nochmal aufbauen kann (zeitlich)
Gruß
Harald
Anzeige
AW: Danke für Rückmeldung ;-)) o.w.T
17.08.2005 08:11:00
Harald
Moin Sascha,
ich habs so getestet und er nimmt mir Leere sowie ergebnislose Formeln raus.
Zahlen bleiben stehen. Text wird allerdings auch rausgenommen.
Du schreibst es müßten nur die ersten beiden Spalten abgefragt werden. Der Code fragt die gesamte Zeile ab. Daher hab ich unter die Zeile auch noch die Formel für die Abfrage der Spalte A und B eingefügt (auskommentiert).

Sub leere()
Dim i As Integer
For i = 1 To 6
If WorksheetFunction.CountIf(Rows(i), ">0") >= 1 Then
'If WorksheetFunction.CountIf(Range("A" & i & ":B" & i), ">0") >= 1 Then
Rows(i).RowHeight = 12.75 'Standardhöhe
Else
Rows(i).RowHeight = 0
End If
Next i
End Sub


Sub reset()
Dim x As Integer
For x = 1 To 26
Rows(x).RowHeight = 12.75
Next x
End Sub

Hoffe das hilft
Harald
Anzeige
AW: Danke für Rückmeldung ;-)) o.w.T
17.08.2005 10:18:02
Sascha
Recht herzlichen Dank für Deine Hilfe.
Jetzt läuft es.
Dieses Forum hier ist wirklich Gold wert!
gern geschehen o.w.T
17.08.2005 11:02:47
Harald
Gruß
Harald
AW: gern geschehen o.w.T
17.08.2005 16:54:50
Sascha
Noch eine allerallerletzte Frage:
Im Moment fragt er die Zeilen 1-6 jeweils ab und setzt die Zeilenhöhe gleich Null oder eben nicht. Das ist klar.
Wie sähe es bei folgender Prüfung aus:
- Prüfe, ob A1 = leer
- wenn A1 = leer, dann setze Zeilen 2-6 auf Höhe 0
- wenn nicht, dann mache nix
Solltest Du mir nochmal helfen können?
Danke vorweg....
Gruß
Sascha
AW: gern geschehen o.w.T
18.08.2005 07:33:18
Harald
Moin Sascha

Sub leerinA1()
If Range("a1") <> "" Then
Range("a2:a6").RowHeight = 12.75 'Standardhöhe
Else
Range("a2:a6").RowHeight = 0
End If
End Sub

Gruß
Harald
Anzeige
AW: gern geschehen o.w.T
18.08.2005 08:06:31
Sascha
Letztmalig herzlichen Dank. Funktioniert wunderbar.

141 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige