• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

regel met een kleur niet verbergen andere regels wel

Status
Niet open voor verdere reacties.

spokkem

Gebruiker
Lid geworden
28 feb 2008
Berichten
108
hallo forum

ik wil in een overzicht met een bepaalde waarde de rgel laten verbergen of niet.
nu lukt het met het eerste stukje wel de <> "01" maar de kleur regel herkennen en laten staan lukt niet.
kan iemand hier naar kijken ik het bestand niet meesturen omdat het te groot is en er info in staat die niet over het net kan.
ik voeg bij wat ik aan code heb.
alvast bedankt


Sub Verbergen_BWST_01()

'regels verbergen die niet nodig zijn
Application.EnableEvents = False
Application.ScreenUpdating = False

For i = 28 To 4 Step -1
If Cells(i, 8).Value <> "01" Or Cells(i, 11).Interior.Color = "55" Then
Cells(i, 1).EntireRow.Hidden = True
Else
Cells(i, 1).EntireRow.Hidden = False
End If

Next

Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

vr gr spokkem
 
In excel 2007 en hoger kun je met het datafilter filteren op kleur.
Als dat niet je oplossing is, plaats dan een voorbeeldbestand, waarbij je het 'echte' bestand verkleint en ontdoet van gevoelige informatie.
 
Precies. Daarnaast neem ik aan dat het moet zijn:
.Interior.ColorIndex = 55

Maar dat is zoals gezegd een aanname.
 
hallo

de oplossingen werken niet
hier een bestand uitgekleed
bwst 01 moet blijven staan en de gekleurde blauwe balken over hethele veld

alvast bedankt
 

Bijlagen

Ik kom er de kleur 55 helemaal niet in tegen. Die blauwe kleur is ColorIndex 42 of Color 13995347
 
In Kolom K (cells(i,11) staan geen kleuren. In kolom M (cells(i,13) komen de de kleuren door een VO. Deze zijn niet (eenvoudig) met VBA op te vragen. Gebruik in de code dan ook niet de kleur maar de voorwaarde die deze kleur 'veroorzaakt'.

Met deze code zal je zien dat naast de door edmoor genoemde ColorIndex 42. alle andere kleuren dezelfde waarde krijgen.
Code:
Sub VenA()
For i = 28 To 4 Step -1
    c00 = c00 & Cells(i, 13).Address & " kleur " & Cells(i, 13).Interior.Color & " CI " & Cells(i, 13).Interior.ColorIndex & Chr(13)
Next i
MsgBox c00
End Sub
 
Laatst bewerkt:
Edmoor: ik heb de codes in mijn routine gezet maar bij de code 42 gaat de regel die blauw is ook weg
VenA: ik heb jou routine ook gedraaid en met de kleurcode die daar uit kwam ook ingevuld maar de regel gaat nog steeds weg.
is het uberhaubt wel mogelijk om een regel op kleurcode te laten staan en de rest te verbergen.??
 
Het werkt hier in je eigen voorbeeld prima met ColorIndex=42. De blauwe regel blijft staan. De kleurcodes die ik noemde zijn goed.
 
Laatst bewerkt:
edmoor ik twijfel ook niet aan de gevonden codes.
maar als ik bij mijn module dit invul dan verdwijnt bij mij de blauwe regel 26 wel
ik snap het niet hoe dat dan kan??
Sub Verbergen_BWST_01()

'regels verbergen die niet nodig zijn
Application.EnableEvents = False
Application.ScreenUpdating = False

For i = 28 To 4 Step -1
If Cells(i, 8).Value <> "01" Or Cells(i, 11).Interior.ColorIndex = 42 Then
Cells(i, 1).EntireRow.Hidden = True
Else
Cells(i, 1).EntireRow.Hidden = False
End If

Next

Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
 
Daar zeg je dus dat alle regels met iets anders dan 01 in kolom H verborgen moeten worden en tevens de regels met ColorIndex 42. Moet je daar True en False niet omdraaien?
 
ik zeg inderdaad dat alle regels anders dan 01 en blauw verborgen moeten worden maar dat doet hij niet bij mij.
maar jij zegt dat het bij jou in het voorbeeld het wel doet heb jij daar true en false omgedraaid dan
 
Precies. En dan zeg je eigenlijk dat alleen de regels met 01 in kolom H verborgen moeten worden. Volgens je voorbeeld dan.
 
edmoor
ik heb de boel omgedraaid en ja nu werkt het bedankt
Sub Verbergen_BWST_01()

'regels verbergen die niet nodig zijn
Application.EnableEvents = False
Application.ScreenUpdating = False

For i = 35 To 4 Step -1
If Cells(i, 8).Value = "01" Or Cells(i, 11).Interior.ColorIndex = 42 Then
Cells(i, 1).EntireRow.Hidden = False
Else
Cells(i, 1).EntireRow.Hidden = True
End If

Next

Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
 
edmoor
de routine werkt maar door de vele regels duurt het minuten voordat hij klaar is.
en aangezien ik 13 tabbladen heb gaat dit een ewigheid duren
is er een mogelijkheid dmv filtering te filteren op twee waardes het getal 01 en de celkleur.
ik heb geprobeerd in excel bij fliter maar deze filtert alleen op kleur of op waarde.

alvast bedankt
spokkem
 
Het duurt zo lang vanwege de Voorwaardelijke Opmaak. Niet door de VBA routine.
 
oke maar daar kan ik niks aan veranderen.
maar met filtering gaat het wel sneller weet jij hoe je dit in een filter opdracht zet.
ik heb het geprobeerd met een macro te maken met filter maar dat kan alleen of met 01 of met celkleur.
weet jij hoe ik deze samenvoeg zodat hij dit tegelijk doet.
filter op kleur
Sub Macro1()
'
' Macro1 Macro
'

'
ActiveSheet.Range("$H$1:$H$842").AutoFilter field:=1, Criteria1:=RGB(83, _
141, 213), Operator:=xlFilterCellColor
End Sub
en op 01
Sub Macro2()
'
' Macro2 Macro
'

'
ActiveSheet.Range("$H$1:$H$842").AutoFilter field:=1, Criteria1:="01"
End Sub
 
Ik denk dat je gewoon de VBA routine kan blijven gebruiken. Zorg er bijvoorbeeld voor in de formules van de VO dat deze alleen hun werk doen als bijvoorbeeld cel A1 een 1 bevat. De formules vul je dan aan met EN(A1=1). In de VBA routine zet je dan eerst de waarde van die cel op 0, doe je wat moet gebeuren en aan het einde van de routine zet je dan de waarde van die cel weer op 1.

Zo wordt de Voorwaardelijke Opmaak voorwaardelijk uitgevoerd :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan