Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1748to1752
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
Inhaltsverzeichnis

Zeile Ausblenden

Zeile Ausblenden
31.03.2020 11:05:21
Michi
Hallo Ihr Excel Profis
Mein Problem wenn ich auf den CommandButton Klicke sollte es mir in der Tabelle "Anwesenheit" in der Spalte Bj durchsuchen auf den Wert "Inaktiv" und wenn es Inaktiv ist sollte es mir die entsprechenden Zeilen ausblenden.
Aber ich bringe es einfach nicht hin.
Ich hoffe Ihr könnt mir bei meinem Problem behilflich sein. Danke für eure Zeit und Bemühungen.
  • Private Sub CommandButton12_Click()
    Dim Zelle As Range
    With Worksheets("Anwesenheit").Range(Cells(3, 62), Cells(3, 62).End(xlDown))
    Range("3:" & Rows.Count).EntireRow.Hidden = False
    Set Zelle = .Find(What:="Inaktiv", LookIn:=xlValues, lookat:=xlWhole)
    If Not Zelle Is Nothing Then .ColumnDifferences(Zelle).EntireRow.Hidden = True
    End With
    End Sub
    


  • Lg Michi

    16
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    Schon zum 3ten Mal! ohne Beispielmappe sinnlos!
    31.03.2020 11:12:44
    EtoPHG

    AW: Schon zum 3ten Mal! ohne Beispielmappe sinnlos!
    31.03.2020 11:40:44
    AlterDresdner
    Hallo Michi,
    Sub ausblenden()
    Dim Zelle As Object
    With Worksheets("Anwesenheit")
    .Cells.EntireRow.Hidden = False
    Set Zelle = .Columns("BJ").Find(What:="Inaktiv", LookIn:=xlValues, lookat:=xlWhole)
    If Not Zelle Is Nothing Then
    Do
    .Rows(Zelle.Row).EntireRow.Hidden = True
    Set Zelle = .Columns("BJ").FindNext(Zelle)
    Loop Until Zelle Is Nothing
    End If
    End With
    End Sub
    

    Gruß der AlteDresdner
    Anzeige
    Vielleich so,
    31.03.2020 11:45:37
    EtoPHG
    Michi,
    Private Sub CommandButton12_Click()
    Dim Zelle As Range, wbT as Worksheet
    set wbT = Worksheets("Anwesenheit")
    For each Zelle in wbT.Range(wbT.Cells(3, 62), wbT.Cells(wbT.rows.count, 62).End(xlUp))
    Zelle.EntireRow.Hidden = lCase(Zelle) = "inaktiv"
    next
    End sub
    
    Aber für neue Probleme bitte ich um vollständigere Beschreibungen.
    Als Helfer muss man Suchen, bis man etwas findet, das CommandButto12 heisst und wo er sich versteckt.
    Gruess Hansueli
    AW: Vielleich so,
    31.03.2020 11:55:58
    Michi
    Hallo Hansueli
    Ich bedanke mich für deine Hilfe und werde nächstes mal mein Problem besser beschreiben mit einer Beispielmappe dabei.
    Noch eine frage, ich habe ja plätze 1 bis 8 für jeweils die Tage, ist es möglich das ich nach dem Ausblenden automatisch neue leere plätze einfügen kann
    Also z.B. Montagvormittag Platz 1 ist nun inaktiv (möchte aber nicht gelöscht haben)
    Jetzt kommt eine neue Person und ich möchte gerne denn Platz 1 Montagvormittag wieder neu vergeben.
    Kann ich vorher einfach noch eine Kopie machen und oberhalb einfügen?
    Lg Michi
    Anzeige
    Neue Anforderung: Leere Zeile Einfügen
    31.03.2020 12:38:43
    EtoPHG
    Hallo,
    Da frag ich mich, was denn die ausgeblendete Zeile noch für einen Nutzen hat?
    Braucht die Information noch jemand?
    Wenn nicht, würde ich anstelle des Ausblendens einfach (mind.) die Inhalte der Zeile aus Spalte D und E löschen. Was die nachfolgenden Zellen für Bedeutung haben, weiss ich nicht. In diesen als ggf. ebenfalls die Inhalte löschen.
    Gruess Hansueli
    AW: Neue Anforderung: Leere Zeile Einfügen
    31.03.2020 12:41:46
    Michi
    Hallo Hansueli
    Ja die Informationen werden noch gebraucht.
    Darum die frage ob eine Kopie zuerst noch möglich wäre.
    Lg Michi
    Anzeige
    AW: Neue Anforderung: Leere Zeile Einfügen
    31.03.2020 12:51:42
    EtoPHG
    Hallo,
    Wieder so eine dürftige Aussage (...werden noch gebraucht)
    Für was, wen und wann werden die Informationen noch gebraucht?
    Was passiert oder soll passieren wenn der Teilnehmer wieder "Aktiv" wird?
    Natürlich ist vieles möglich. Das wird aber kompliziert. Es ist immer alles eine Frage des Aufwand/Nutzen.
    Vielleicht wäre es einfacher, die Inhalte in ein Historienblatt wegzuschreiben, und dann zu Löschen, so dass die Zeilen im Anwesenheitsblatt statisch bleiben. Ich weiss ja nicht einmal was du mit dem Ganzen vor hast und was passiert, wenn es wieder einmal bergauf geht ;-) und das Datum vom 6.7.2020 überschritten wird...
    Gruess Hansueli
    Anzeige
    AW: Neue Anforderung: Leere Zeile Einfügen
    31.03.2020 13:17:00
    Michi
    Hallo Hansueli
    Die Excel Datei wird immer von August bis ende Juli gebraucht.
    Nachher wird die Datei Archiviert. Und es startet dann neu wieder mit August bis ende Juli.
    Die Daten werden gebraucht um zu Kontrollieren wie oft die Person anwesend, entschuldigt oder unentschuldigt war. Dies wird monatlich und zum Schluss vom Kurs gibt es eine komplett Übersicht der Daten. Die Daten werden darum gebraucht um Auswertungen durchzuführen.
    Lg Michi
    AW: Neue Anforderung: Leere Zeile Einfügen
    31.03.2020 13:23:20
    Michi
    Die Idee mit dem Historienblatt wäre echt super.
    Dann könnte ich anhand von dort alle Daten für die Auswertung nehmen.
    Lg Michi
    Anzeige
    AW: Neue Anforderung: Zeile Kopieren wenn Inaktiv
    31.03.2020 17:30:19
    Michi
    Hallo Ihr Excel Profis
    Mein Problem. Wie kann ich eine "Person" kopieren von der "Tabelle Anwesenheit" und dann in die "Tabelle Inaktiv" einfügen. Wenn die Person auf inaktiv gesetzt wird soll die gesamte Zeile kopiert und in die Tabelle Inaktiv eingefügt werden, wo die anderen inaktive Mitglieder sich befinden.
    Das zweite Problem das ich auch noch habe wenn es kopiert wurde möchte ich das es in der Tabelle "Anwesenheit" die entsprechende Zeile die Inhalte löscht d bis bf (zb. d3 bis bf3)
    Wie könnte ich sowas schreiben?
    Bei meinem Code für das Kopieren habe ich schon das Problem das es in der Tabelle Inaktiv zwar Kopiert aber fängt schon bei A2 an hätte aber gerne das es erst bei A3 anfängt.
    Was mache ich da falsch?
        Dim wsSource    As Worksheet
    Dim wsTarget    As Worksheet
    Dim rngRow      As Range
    Set wsSource = Worksheets("Anwesenheit")
    Set wsTarget = Worksheets("Inaktiv")
    For Each rngRow In wsSource.Range("A3", wsSource.Range("A3").SpecialCells( _
    xlCellTypeLastCell)).Rows
    If rngRow.Cells(1, 62) = "Inaktiv" Then
    rngRow.Copy wsTarget.Cells(wsTarget.Rows.Count, 1).End(xlUp).Offset(1)
    End If
    Next rngRow
    

    https://www.herber.de/bbs/user/136302.xlsm
    Danke für eure Hilfe.
    Lg Michi
    Anzeige
    AW: Neue Anforderung: Zeile Kopieren wenn Inaktiv
    02.04.2020 19:40:54
    Matthias
    Moin!
    Hier mal ein Vorschlag. Bzgl. des Starts in A2, schreibe dort einfach was rein und ändere die SChriftfarbe auf weiß. Ist die einfachste Lösung.
    Für das kopieren und Löschen würde ich es so ändern.
    For Each rngRow In wsSource.Range("A3", wsSource.Range("A3").SpecialCells(xlCellTypeLastCell)). _
    Rows
    If rngRow.Cells(1, 62) = "Inaktiv" Then
    rngRow.Copy wsTarget.Cells(wsTarget.Rows.Count, 1).End(xlUp).Offset(1)
    If wsTarget.Cells(wsTarget.Rows.Count, 1).End(xlUp).Offset(1) = "" Then wsTarget. _
    Cells(wsTarget.Rows.Count, 1).End(xlUp).Offset(1) = wsSource.Cells(rngRow.Row - wsSource.Range("C" & rngRow.Row) + 1, 1)
    wsSource.Range(wsSource.Cells(rngRow.Row, 4), wsSource.Cells(rngRow.Row, "BG")). _
    ClearContents
    End If
    Next rngRow
    

    Die erst Zeile im if kopiert den Text. Die zweite trägt den Tag ein. Außer bei Nr. 1 wäre der sonst leer, was wieder Problem beim letzte Zeile finden macht (außer du suchst nicht in Spalte A sondern B, da steht immer was)
    Die dritte Zeile löscht dann nur den Bereich von D bis BG. Habe es in Zwei Varianten eingetragen (einmal als Zahl und dann als Buchstabe). Kannst du den COde so anpassen, wie du magst.
    VG
    Anzeige
    AW: Neue Anforderung: Zeile Kopieren wenn Inaktiv
    03.04.2020 07:34:51
    Michi
    Hallo Matthias
    Danke für deine Hilfe und Bemühungen. Dein Code habe ich eingefügt und funktioniert eigentlich sehr gut.
    Habe den Code schon paar mal angepasst, aber ich bring das einfach nicht hin.
    Wie kann ich den Code so anpassen das es mir in Tabelle "Inaktiv" nicht immer dazwischen nur den Tag einträgt (weil die muss ich jetzt immer manuel von hand in der Tabelle "Inaktiv" löschen). Es kann auch in der Spalte B suchen.
    Wie würde ich den Code anpassen?
    Ich lade die Beispiel Mappe mal hoch, da sieht man es.
    Hoffe kannst mir nochmal helfen.
    https://www.herber.de/bbs/user/136370.xlsm
    Lg Michi
    Anzeige
    AW: Neue Anforderung: Zeile Kopieren wenn Inaktiv
    03.04.2020 15:22:26
    Matthias
    MOin!
    Der Fehler trat m.E. nur auf, wenn die Erste Zeile eines Blocks kopiert wurde. Dann war ja schon der Tag drin. Habe den Code mal angepasst. Das hier sollte passen:
    For Each rngRow In wsSource.Range("A3", wsSource.Range("A3").SpecialCells(xlCellTypeLastCell)). _
    Rows
    If rngRow.Cells(1, 62) = "Inaktiv" And rngRow.Cells(1, 5)  "" Then
    rngRow.Copy wsTarget.Cells(wsTarget.Rows.Count, 1).End(xlUp).Offset(1)
    If wsSource.Cells(rngRow.Row, 3)  1 And wsTarget.Cells(wsTarget.Rows.Count, 1). _
    End(xlUp).Offset(1) = "" Then wsTarget.Cells(wsTarget.Rows.Count, 1).End(xlUp).Offset(1) = wsSource.Cells(rngRow.Row - wsSource.Range("C" & rngRow.Row) + 1, 1)
    wsSource.Range(wsSource.Cells(rngRow.Row, 4), wsSource.Cells(rngRow.Row, "BG")). _
    ClearContents
    End If
    Next rngRow
    

    Damit wird auch nur ein Wert übertragen, wenn ein Name drin steht. Zudem wird der Tag nur eingefügt, wenn es nicht die erste Zeile des Blockes ist.
    VG
    Anzeige
    AW: Neue Anforderung: Zeile Kopieren wenn Inaktiv
    03.04.2020 16:13:15
    Michi
    Hallo Matthias
    Danke viel mal für deine Hilfe und Zeit die du Investierst hast.
    Vielen Danke nochmal für deine Hilfe und wünsche Dir einen schönen Abend.
    Lg Michi

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige