barakuda Geschrieben 15. November 2002 Geschrieben 15. November 2002 Hallo FI's, ich habe eine Exceltabelle, in der gibt es 100 Spalten mit ca. 8500 Zeilen. In jeder Zelle sind Zahlen enthalten von 0 bis 9. Ich habe nun zwei For Schleifen erstellt, die werden zeilenweise durchlaufen bis zur letzten Spalte und dann die nächste Zeile. Suchkriterium (mit einer IF-Anweisung) ist, alle Zeilen werden ausgeblendet (EntireRow), wenn nicht mindestens einmal pro Zeile irgendwo in den 100 Spalten eine 3 eingetragen ist. Bis jetzt blendet mein Programm alle Zeilen aus (da ja nicht überall eine 3 vorhanden ist) Wie kann ich es anstellen, das das Programm erst am Ende einer Zeile prüft, ob eine "3" vorhanden war oder nicht und erst dann kann es die Zeile ausblenden. Ich hoffe es ist nicht allzu kompliziert geschrieben Bin für jeden Hinweis dankbar. Franz Zitieren
tauron Geschrieben 17. November 2002 Geschrieben 17. November 2002 Moin ! hmm wenn ich dich richtig verstehe, könntest Du das so machen: beim überprüfen der Spalten in der Zeile gucken ob die Zelle eine 3 enthält. Wenn ja setzt Du eine Variable auf True. Am Ende der Schleife guckst Du dann ob die Variable True ist (also ob mindestens einmal ein 3 kam) und blendest dann erst die Zeile aus oder nicht. Dann gehts weiter mit der nächsten Zeile.. Hoffe das hilft Dir weiter ! gruß Christian Zitieren
barakuda Geschrieben 18. November 2002 Autor Geschrieben 18. November 2002 @tauron Hallo Tauron, ich habe das mal versucht mit der Boolschen Variable und es hat, nahc vielem probieren, geklappt. Falls es dich interessiert, nachfolgend der Source-Code: Public Sub Finde_3() Dim CSpalte As Long Dim xRow As Long Dim wks As Excel.Worksheet Dim LetzteZeileInSpalte As Long Dim xCol As Long Dim yCol As Long Dim Ausgeblendet As Long Dim DreiGefunden As Long Dim SucheDrei As Boolean xRow = 3 xCol = 3 yCol = 102 Application.ScreenUpdating = False Set wks = Worksheets(1) Suche = 0 DreiGefunden = 0 LetzteZeileInSpalte = wks.Cells(Rows.Count, 1).End(xlUp).Row For xRow = 3 To LetzteZeileInSpalte SucheDrei = False For xCol = 3 To yCol If wks.Cells(xRow, xCol).Value = "3" Then SucheDrei = True DreiGefunden = DreiGefunden + 1 Exit For End If Next xCol If Not SucheDrei Then wks.Rows(xRow).Hidden = True Ausgeblendet = Ausgeblendet + 1 End If Next xRow MsgBox "Es wurden insgesamt (inkl. Überschrift) " & LetzteZeileInSpalte & " Zeilen gefunden, davon wurden " & Ausgeblendet & " ausgeblendet, verbleiben noch " & DreiGefunden & " zum Weiterverarbeiten", vbOKOnly Application.ScreenUpdating = True End Sub Ich hoffe es ist einigermaßen nachvollziehbar, da ich die keine Kommentare, die ich normalerweise schreibe, eingefügt habe. Barakuda Zitieren
barakuda Geschrieben 18. November 2002 Autor Geschrieben 18. November 2002 Originally posted by barakuda @tauron Suche = 0 Soll natürlich Ausgeblendet = 0 heißen Barakuda Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.