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

Voorwaardelijke opmaak op basis van gegevens in cel en opmaak daarvan kopieren

Status
Niet open voor verdere reacties.

rvanderkruijs

Gebruiker
Lid geworden
19 nov 2015
Berichten
6
Hallo,

Ik heb een naar mijn mening uitdagende vraag.

Ik wil de opmaak van een rij zodanig laten opmaken op basis van een verticaal zoeken functie.

Ik heb een bestand toegevoegd en wat ik wil is als volgt.

In de rijen 10 t/m 12 staan in de eerste kolom werknummers. Deze werknummers moeten gezocht worden in de eerste 5 rijen. Als een van deze rijen overeenkomt met de zoekwaarde dan dient de rij 10, 11 of 12 dezelfde opmaak te krijgen als de gevonden match uit de rijen 1 t/m 5.

Wie kan mij hier mee verder helpen?

Bekijk bijlage VRAAG.xlsx
 
Bekijk bijlage Antwoord MB..xlsm

Met verticaal zoeken kun je geen celeigenschappen overnemen (anders dan de waarde).

Nu wil het toeval dat ik me aan het verdiepen ben in VBA, dus een mooie oefening. :cool:

Dit is het geworden (zie ook de bijlage):

Code:
Option Explicit

Sub Antwoord()

    Dim RefCells As Range
    Dim RefCell As Range
    Dim CrtCell As Range
    Dim CrtCells As Range
    Dim SearchString As String
    
    Set RefCells = Range("A1:A5")
    Set CrtCell = Range("A10")
        
    Do While CrtCell.Value <> "":
        Set CrtCells = Range(CrtCell, CrtCell.End(xlToRight))
        SearchString = CrtCell.Value
        Set RefCell = RefCells.Find(SearchString)
        If RefCell Is Nothing Then
        Else:
            CrtCells.Interior.Color = RefCell.Interior.Color
            CrtCells.Font.Color = RefCell.Font.Color
        End If
              
        Set CrtCell = CrtCell.Offset(1, 0)
    Loop

End Sub
 
Zonder VBA maar met 'Voorwaardelijke Opmaak' kan het ook.
 

Bijlagen

Alleen zolang de opmaak van A1:A5 niet wijzigt
Daar heb je gelijk in.
Maar aan VBA kleven ook nadelen.

Als je de kleuren van A1:A5 veranderd dan veranderen de kleuren van rij A10:A13 niet direct mee
Je zult het voor elke rij opnieuw moeten bevestigen.
Dit kan je natuurlijk doen via VBA met een worksheet event maar dat werkt weer vertragend en de 'undo' knopt werkt dan niet meer.

Dus aan rvanderkruijs wat hij wilt.
 
Daar heb je gelijk in.
Maar aan VBA kleven ook nadelen.

Als je de kleuren van A1:A5 veranderd dan veranderen de kleuren van rij A10:A13 niet direct mee
Je zult het voor elke rij opnieuw moeten bevestigen.
Dit kan je natuurlijk doen via VBA met een worksheet event maar dat werkt weer vertragend en de 'undo' knopt werkt dan niet meer.

Dus aan rvanderkruijs wat hij wilt.
Helemaal mee eens. De oplossing met een worksheet event heb ik in versie 2 toegepast (post #4).
Me dunkt dat rvanderkruijs een redelijk onderbouwde beslissing kan nemen. :cool:
 
Alleen zolang de opmaak van A1:A5 niet wijzigt en de VO identiek is gedefinieerd.

Van de gelegenheid maak ik gebruik om versie 2 van mijn oplossing bij te voegen: nu zonder knop en met reset van de opmaak, als de waarde niet meer voorkomt in A1:A5.

Bekijk bijlage 251187

Dit lijkt mij een mooie oplossing.
Ik heb deze code nu gekopieerd in mijn eigen excelblad. Echter werkt nu de automatische update van de opmaak niet.
Hoe stel ik deze in?
 
Er is nog een event procedure bij het betreffende werkblad. Deze start de macro als er iets wijzigt in kolom A:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

    Dim TargetinColA As Range
    
    Set TargetinColA = Intersect(Target, Range("A:A"))
    
    If TargetinColA Is Nothing Then Exit Sub
    
    Antwoord

End Sub
 
Ik ga hier na het weekend eens verder mee experimenteren.

Tot zover even bedankt voor jullie hulp en medewerking.
 
Dag MarcelBeug,

Ik probeer e.e.a. over te zetten in een bestand, maar krijg het niet voor elkaar.
Zo je zo vriendelijk willen zijn om te kijken waarom het mij niet lukt of wat er fout gaat?

Het idee is om te zoeken in C4:C10

Doel is H12:BC41 waarbij in kolom H dus de waarde staat waar naar gezocht moet worden in C4:C10 en dan de betreffende regel van H tot en met BC gevuld dient te worden.

BVD

BVDBekijk bijlage Overall planning vloeren1.xlsx
 
Maak dan een knop om de macro "Antwoord" mee op te starten.
Het is hier overigens een forum en geen gratis softwarebureau.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan