Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1164to1168
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

Zeilen ausblenden

Zeilen ausblenden
Gregor
Hallo zusammen
Ich habe eine anspruchsvolle Aufgabe für VBA. Auf einem Quellblatt Spalte 4 habe ich ca. 400 Codes. In einem Arbeitsblatt sind in den Spalten 23 bis 27, also in max 4 Zellen, diese Codes eingetragen. Wobei manchmal alle 4 Zellen oder aber nur eine, zwei oder drei ausgefüllt oder alle 4 Zellen leer sein können.
Nun sollten mittels einem Makro alle Spalten ausgeblendet werden (Rows(z).Hidden), welche in Spalten 23 bis 27 beispielsweise keine Code gemäss dem Quellblatt Spalte 4 Zeile 37 bis Zeile 63 enthalten. Das heisst, im Arbeitsblatt muss überprüft werden, ob die Codes in Spalten 23 bis 27 vorhanden, sonst ausblenden.
Wie löse ich das am Besten, kann mir jemand helfen?
Gruss Gregor

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zeilen ausblenden
09.07.2010 09:36:05
Klaus
Hallo Gregor,
ladst du eine Musterdatei hoch, kann man das direkt an deine Dateistruktur anpassen.
Als Anhaltspunkt: ich würd in einer Hilfsspalte per Formel abfragen, ob die welche der Codes beinhalten. Dass dann per WENN in eine WAHR/FALSCH aussage bringen. Mit dem Autofilter den Bereich nach WAHR oder FALSCH filtern. Den Vorgang des Filterns per Makrorekorder aufzeichnen, fertig.
Grüße,
Klaus M.vdT.
AW: Zeilen ausblenden
10.07.2010 00:01:34
Gregor
Hallo Klaus
Die Datei ist zu gross um hochzuladen, die Aufgabe ist aber einfach, nur die Lösung ist vermutlich komplex. Wie gesagt, will ich in einem Arbeitsblatt Zeilen ausblenden, welche in den Zellen 23 bis 27 keine der Codes enthalten, die in einem anderen Blatt in Spalte 4, zB von Zeile 37 bis 63 definiert sind.
Gruss Gregor
Anzeige
AW: Zeilen ausblenden
15.07.2010 03:08:10
fcs
Hallo Gregor,
die Formel-Lösung in Verbindung mit Autofilter schaut wie folgt aus.
Codes ist hierbei der Name des Zellbereichs mit den Codes.
Arbeitsblatt

 WXYZAAAB
1Spalte23Spalte24Spalte25Spalte26Spalte27Filter
2138  0
32    1

Formeln der Tabelle
ZelleFormel
AB2=WENN(ANZAHL2(W2:AA2)=0;0;WENN(((W2<>"")*ISTNV(VERGLEICH(W2;Codes;0)))+((X2<>"")*ISTNV(VERGLEICH(X2;Codes;0)))+((Y2<>"")*ISTNV(VERGLEICH(Y2;Codes;0)))+((Z2<>"")*ISTNV(VERGLEICH(Z2;Codes;0)))+((AA2<>"")*ISTNV(VERGLEICH(AA2;Codes;0))); 0;1))
AB3=WENN(ANZAHL2(W3:AA3)=0;0;WENN(((W3<>"")*ISTNV(VERGLEICH(W3;Codes;0)))+((X3<>"")*ISTNV(VERGLEICH(X3;Codes;0)))+((Y3<>"")*ISTNV(VERGLEICH(Y3;Codes;0)))+((Z3<>"")*ISTNV(VERGLEICH(Z3;Codes;0)))+((AA3<>"")*ISTNV(VERGLEICH(AA3;Codes;0))); 0;1))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Die entsprechende Makrolösung: Sub CompareCodes() Dim wksCodes As Worksheet, wksArbeit As Worksheet, rngCodes As Range Dim rngFinden As Range, vSuchen As Variant Dim Zeile As Long, Spalte As Long, bolAusblenden As Boolean Set wksCodes = Worksheets(1) 'oder = Worksheets("TabCodes") Set wksArbeit = Worksheets(2) 'oder = Worksheets("TabArbeit") With wksCodes 'Zellbereich mit Codes - anpassen! Set rngCodes = .Range(.Cells(4, 4), .Cells(10, 4)) End With With wksArbeit .Rows.Hidden = False 'Alles einblenden 'Startzeile der Schleife ggf. anpassen For Zeile = 2 To .Cells.SpecialCells(xlCellTypeLastCell).Row bolAusblenden = True For Spalte = 23 To 27 vSuchen = .Cells(Zeile, Spalte).Value If vSuchen = "" Then Else Set rngFinden = rngCodes.Find(What:=vSuchen, LookIn:=xlValues, lookat:=xlWhole) If rngFinden Is Nothing Then bolAusblenden = True Exit For Else bolAusblenden = False End If End If Next If bolAusblenden = True Then .Rows(Zeile).Hidden = True End If Next End With End Sub
Guß
Franz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige