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

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...