Anzeige
Archiv - Navigation
1612to1616
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
Wenn Zelle leer dann Zeile ausblenden
08.03.2018 08:34:59
Zoe401
Hallo, habe in meinem riesen Makro einen kleinen Abschnitt der nicht funktioniert, aber er meckert auch nicht. Es passiert einfach nichts.
Ich möchte, das wenn Cell(i, 1) leer ist, dass er die Zeile ausblendet.
Die Zeilen 19 bis 22 sind leer, werden aber nicht ausgeblendet:
das ist der Abschnitt im Makro:
Dim i As Byte
For i = 13 To 22
If Sheets("Zugversuch").Cells(i, 1) = "" Then
Rows(i).Hidden = True
End If
Next
Gruß,
Zoe

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn Zelle leer dann Zeile ausblenden
08.03.2018 08:41:09
UweD
Hallo
kann es sein, das du dich auf einem anderen Blatt befindest?
    Dim i As Byte
    For i = 13 To 22
        If Sheets("Zugversuch").Cells(i, 1) = "" Then
            Sheets("Zugversuch").Rows(i).Hidden = True
        End If
    Next

LG UweD
Anzeige
AW: Wenn Zelle leer dann Zeile ausblenden
08.03.2018 08:44:25
Zoe401
Ne ich bin auf dem richtigen Blatt "Zugversuch".
Muss ich ein
Else
Rows(i).Hidden = False

noch dranhängen? Aber eigentlich doch nicht oder?
Es gibt auch keine Fehlermeldung?!
AW: Wenn Zelle leer dann Zeile ausblenden
08.03.2018 08:56:35
Niclaus
"die Zeilen (Zellen?) 19 bis 22 sind leer, werden aber nicht ausgeblendet"
Sind sie denn wirklich leer? Keine Formel? kein Leerschlag?
Grüsse Niclaus
Absolut leer!
08.03.2018 09:01:45
Zoe401
Absolut leer!
dann bitte Musterdatei
08.03.2018 09:03:28
UweD
hochladen
Referenzierungen sind dein Problem
08.03.2018 09:14:38
EtoPHG
Hallo Zoe,
Ich habe in letzter Zeit Threads von Dir mitverfolgt. Ich glaube du hast ein grundsätzliches Problem, mit dem Verständnis und der Umsetzung von Objekt-Referenzierungen in VBA. Du postest immer auch nur irgendwelche Codeschnipsel, die den Helfern keine Rückschlüsse auf den Code-Kontext erlauben. So ist in diesem erneuten Beispiel nicht klar wo dieser Code in deiner Mappe steht!
In einem (Standard)Modul, in DieserArbeitsmappe, in einem Tabelleblatt, in einer Userform? Das ist eminent wichtig.
In dem If Sheets("Zugvers... wird das Blatt mit Name "Zugversuch" referenziert. Je nachdem in welcher Klasse der Code kann das die Mappe in welcher der Code steht oder eine andere aktive Mappe sein. Rows(... ist nicht vollständig referenziert. Je nachdem in welcher Klasse der Code kann das das aktive Tabellenblatt oder das Tabellenblatt in dem der Code steht sein.
Darum nochmals die Bitte:
Bei deinem VBA Level, bitte so vollständige Angaben wie möglich oder noch besser eine Beispielmappe hochladen.
Gruess Hansueli
Anzeige
AW: Referenzierungen sind dein Problem
08.03.2018 09:23:54
Zoe401
Alles klar, tut mir leid, werde mir mehr Mühe geben.
Der Code steht unter meinem CommandButton1 unter Click
Da ich möchte wenn ich den Button Drücke meine ganzen Daten die ich auf meiner "Startseite" eingetragen habe auf die Seite "Zugversuch rüberkopiert werden. und die Zeilen die dann darunter leer bleiben sollen ausgeblendet werden, damit meine Tabell, welche unter den kopierten Daten steht aufrutscht.
Das bedeutet mein Sub fängt so an:
Private Sub CommandButton1_Click()
'Zugversuch
If CheckBox14.Value = True Then
dann kommt viel copy paste und if then end if
und das ende ist dann eben:
 Dim i As Byte
For i = 13 To 22
If Sheets("Zugversuch").Cells(i, 1) = "" Then
Rows(i).Hidden = True
End If
Next
End If
End Sub

Anzeige
AW: Referenzierung ist immer noch dein Problem
08.03.2018 10:22:22
EtoPHG
Hallo Zoe,
Es ist nicht (oder weniger) wichtig, wie deine Prozedur heisst, sondern viel mehr
in welcher Code-Klasse sie steht.
Ein Code kann wie weiter oben ausgeführt stehen in:
DieserArbeitsmappe
Tabellenblatt
Modul
Klassenmodul
Userform

Ich kann nur wieder raten:
Dein Code steht in einem Tabellenblatt, das ziemlich sicher nicht "Zugversuch" heisst.
Dein Code testet Zellen im Blatt "Zugversuch"
Dein Code blendet Zeilen im Tabellenblatt aus, in dem der Code steht, also nicht im Blatt "Zugversuch" !
Also: in welchem Tabellenblatt(-Klasse) steht deine CommandButton1_Click() ?
Gruess Hansueli
Anzeige
Die vollständige Referenzierung:
08.03.2018 10:29:26
EtoPHG
wäre dann so:
    Dim i As Long       ' Zeilen und Spaltereferenzen immer in LONG
With ThisWorkbook.Worksheets("Zugversuch")      ' im Blatt "Zugversuch"
For i = 13 To 22
.Rows(i).Hidden = (.Cells(i, 1) = "")  ' Aus/Einblenden Zeilen
Next i
End With
Gruess Hansueli
...
08.03.2018 09:25:15
Zoe401
Ach ja und es steht in Tabelle 1 (Startseite) weil mein CommandButton1 auf der Startseite ist
Also werden auf der Startseite Zeilen ausgeblendet
08.03.2018 10:23:29
EtoPHG

Danke, jetzt funktionierts!
08.03.2018 11:15:14
Zoe401
Oh man! Klar. Ich mach immer den gleichen Fehler! Dankeschön für die Hilfe, jetzt funktionierts!
Noch eine kleine Erweiterung!?
09.03.2018 11:20:20
Zoe401
Wenn ich zu dem Code noch sagen möchte, wenn er z.B. Zeile 13 hier ausblendet, möchte ich das Zeile 43 wieder eingeblendet wird? Gibt es einen gegenteiligen Befehl Unhide oder so etwas?
Dim i As Long
With ThisWorkbook.Worksheets("Zugversuch")
For i = 13 To 22
.Rows(i).Hidden = (.Cells(i, 1) = "")
.Rows(i+30).Unhide = (.Cells(i, 1) = "")
Next i
End With

Anzeige
AW: Noch eine kleine Erweiterung!?
09.03.2018 12:02:27
Daniel
Hi
Ausblenden mit .Hidden = True
Einblenden mit .Hidden = False
dh in deinem Fall:
entweder: .Rows(i+30).Unhide = (.Cells(i, 1) "")
oder: .Rows(i+30).Unhide = Not (.Cells(i, 1) = "")
Gruß Daniel
sorry, meinte natürlich
09.03.2018 12:08:20
Daniel
entweder:
.Rows(i).hidden = (.Cells(i, 1) = "")
.Rows(i+30).hidden = (.Cells(i, 1) "")
oder:
.Rows(i).hidden = (.Cells(i, 1) = "")
.Rows(i+30).hidden = Not (.Cells(i, 1) = "")
Gruß Daniel
AW: Noch eine kleine Erweiterung!?
09.03.2018 13:57:23
EtoPHG
Hallo Zoe,
Das es keinen .UnHide gibt ist ersichtlich aus:
  • Hidden = TRUE (Ausblenden) Hidden = FALSE (Einblenden)

  • aus der Intellisense Hilfe

  • aus den Eigenschaften im Objektkatalog

  • Ein Vergleich, wie (.Cells(i, 1) = "") gibt automatisch TRUE oder FALSE zurück
    Will ich die Kondition umkehren genügt Not (.Cells(i, 1) = "")
    Somit müsstest du in der Lage sein, deine (nicht vollständig beschriebenen) Anforderungen umzusetzen.
    Gruess Hansueli
    Anzeige
    Super, klar! Danke an euch beide!!! owT
    09.03.2018 15:20:48
    Zoe401
    Super, klar! Danke an euch beide!!!

    300 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige