Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

@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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...