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

vooraf ingestelde opvulkleur op selectie toepassen

Status
Niet open voor verdere reacties.

simonlietar

Gebruiker
Lid geworden
25 okt 2013
Berichten
6
Hoi,

In bijlage zit het idee dat ik wil.

Je ziet rechts boven in cel J2 vier namen met telkens een kleur.
Het idee is dat we een selectie maken in de cellen b3-i22. Die selectie krijgt dan dezelfde kleur van de naam waarop je klikt.
Het is een weeklijst voor onze huisbezoeken te organiseren.

Iemand een idee?

Mvg,

Simon
 

Bijlagen

  • VOORBEELD 1.xlsx
    11,1 KB · Weergaven: 44
Je chrijft:
"Je ziet rechts boven in cel J2 vier namen met telkens een kleur."
Maar die namen staan tezamen in 1 cel, dus als je op die cel klikt, dan weet Excel niet welke naam je bedoelt.
Bovendien: als je een cel in B3:i22 selecteert (bv. F5) en je klikt daarna op J2, dan bestaat de selectie van F5 niet meer.
Er zal dus het een en ander moeten veranderen.
Om hoeveel namen (verpleegkundigen) gaat het in werkelijkheid?
 
Zodra je op een cel klikt, is dat de actieve cel en is je eerdere selectie weg, dus dat wordt erg lastig. Bovendien selecteer je de cel, en niet de naam van de persoon waar je toevallig boven staat. Ik zou om te beginnen de namen dus in aparte cellen zetten, zodat je de naam (=cel) met een klik kunt uitlezen en gebruiken. Verder moet je e.e.a. programmeren. Overigens snap ik niet helemaal wat je bedoeling verder is; ik neem aan dat je binnen B3:I22 elke selectie moet kunnen maken, en dat die dan de kleur van de geselecteerde persoon krijgt?
 
Of je moet het zo proberen met eventueel een aanpassing van de kleuren.
 

Bijlagen

  • Kleuren_wissen(cobbe).xlsm
    32,1 KB · Weergaven: 49
Cobbe,

Dat is het!!!
Perfect!

Kan je mij wat meer uitleg geven over hoe ik doe knoppen programmeer?
Code:
Private Sub CommandButton4_Click()
 If Not Intersect(Selection, Range("B3:I22")) Is Nothing Then
    Selection.Interior.ColorIndex = 6
 End If
End Sub

Waarom beschrijfschrijf je eerst de 'range'?
Waar vind ik de colorindex?

En wat een fantastisch idee om direct een knop erbij te voegen om ze te ontkleuren!

Nog één vraag, kan het dat deze knoppen zo ingesteld worden dat die niet mee afgedrukt worden?

Alvast super bedankt,

Ik moet nu gaan werken, reageer deze avond terug.

Mvg,

Simon

NB iedereen die reageerde is alvast bedankt!
 
Laatst bewerkt door een moderator:
Nog een iets andere oplossing, gebaseerd op het idee om de namen in de cel te zetten. Geeft je wat meer flexibiliteit als je de kleuren wilt aanpassen. Beetje mosterd na de maaltijd, gezien de juichende reactie, maar ik was toch al bezig :)
 

Bijlagen

  • Kleur na klikken.xlsm
    18,7 KB · Weergaven: 59
Heb het printen van de commandbuttons uitgeschakeld in de eigenschappen van deze buttons.
Heb ook een minieme uitleg gezet in de gebruikte code.
De kleurcode kan je vinden op Blad2 van je bestand.
 

Bijlagen

  • Kleuren_wissen(cobbe).xlsm
    34,9 KB · Weergaven: 41
@Cobbe,
goede oplossing hoor (in vergelijking met enkele weken geleden heb je het een en ander bijgeleerd zie ik ;) ),
maar om niet in alle macro's hetzelfde te moeten herhalen, zou je code kunnen samenvoegen in 1 macro. Persoonlijk zou ik hier de voorkeur geven aan een listbox om een naam te kiezen, dat lijkt mij het meest gebruiksvriendelijk. Maar als de vragensteller met de oplossing tevreden is, is het zoals het nu is, natuurlijk ok.
 
Hoi hoi!!

@Cobbe: super bedankt. Ik experimenteer verder met de knoppen van je eerste document. Het tweede werkt niet helemaal. TTz als je meerdere cellen selecteert, dan zal er maar één gekleurd worden.
Die lijst van kleuren met codes, vanwaar haal je die?

@Octafish: jouw document vind ik ook heel interessant. Misschien wel gebruiksvriendelijker dan die van Cobbe, maar kan ik voorkomen dat als ik op een naam klik(die dus een kleur vertegenwoordigd) en dan per ongelijk op een lege cel klik, dat die cel met de naam dan ook blank wordt. Met als gevolg dat ik die weer moet kleuren met de opvulkleur tool.

Alvast super bedankt.

btw, waar kan ik meer leren over dit soort programmeren in excel?
 
Ik heb de code zo aangepast dat je per selectie kan kleuren en ontkleuren.
Ook heb ik er voor gezorgd dat je niet buiten de lijntjes kan kleuren(beperkte mate).
Op Blad2 staat een button als je daar op drukt krijg je het hele kleurenpallet met bijhorend nummer.
 

Bijlagen

  • Kleuren_wissen(cobbe).xlsm
    36,9 KB · Weergaven: 59
@simonlietar,
In de bijlage een voorbeeld met een listbox.
Dat werkt omgekeerd dan bij eerder gegeven antwoorden: je moet eerst een naam kiezen en daarna de gewenste cel(len) selecteren. Je kunt ook meerdere cellen tegelijk selecteren. Of je dit prettiger vindt of juist niet, is een kwestie van smaak en over smaak zoals je weet, valt niet te twisten.
De namen in de listbox komen uit blad2; je kunt daar namen toevoegen (best juist boven "Wissen", dus eerst een rij invoegen), die namen komen dan automatisch ook in de listbox te staan (is dat niet het geval, dan het bestand opslaan, sluiten, en opnieuw openen). Als je een naam toevoegt, dan natuurlijk ook in de macro een getal toevoegen (na 23). Als je op Blad2 een naam verwijdert, dan moet je ook in de macro een getal verwijderen (het aantal getallen in de macroregel met getallen moet altijd gelijk zijn aan het aantal niet-lege cellen in kolom A van blad2). Voor de te kiezen kleuren zie blad3: rijnummer = kleurnummer.
Een klik 'per ongeluk' in de tabel kan gemakkelijk gebeuren. Denk er daarom maar eens over na of je niet beter voor dubbelklik zou kiezen om een cel in tevullen.
 
Laatst bewerkt:
Hoi,

Ik vind @cobbe zijn voorstel goed, maar moest octafish zijn voorstel beetje aangepast kunnen worden, zodanig de bronkleuren niet aangepast worden als je per ongeluk op een wit vak duwt zou ik het nog gemakkelijker vinden. Hier zijn de kleuren veel makkelijker in te stellen en is de keuze veel ruimer. @octafish nog zin? Of kan je me uitleggen hoe ik het aanpas?
@zapatr...heel erg bedankt, het is eigenlijk ook handig werken, maar het draait de manier van werken om, wat weer een aanpassing vraag van mijn collega's. Nog een nadeel is, is dat het de tekst ook overschrijft met de naam ipv de oorspronkelijke tekst te laten staan.

jullie zijn werkelijk tovenaars.

Is er nu een forum een leerplatform waar ik de basis van dit programmeren kan leren?

mvg,

Simon
 
@simonlietar,
jij schreef: "een nadeel is, is dat het de tekst ook overschrijft met de naam ipv de oorspronkelijke tekst te laten staan."
Dat is gemakkelijk op te lossen door deze regel te verwijderen:
Code:
.Value = ListBox1.Value
Ik dacht dat wat er in de cellen stond, afkortingen waren van namen.
Voor vba: typ in Google; "vba leren" en je vindt tal van sites.
 
Als je je manier van werken wil handhaven, komt dit misschien daaraan het meest tegemoet.
Zonder listbox, zonder extra blad met namen, en zonder gebruik van kleurnummering.
Maar elke methode heeft zijn voor- en nadelen, dat geldt ook hier.
Klik alleen op een naam als je in de tabel een cel wil wijzigen.
Niet duidelijk is, als je een celkleur wil wissen, of dan ook de tekst in de cel verwijderd moet worden.
Ik ben ervan uitgegaan van niet.
 
Als je mijn macro uitbreidt met een tweede Intersect, kun je het aanpassen beperken tot de cellen die je daarvoor wilt gebruiken. Dat ziet er zo uit:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim sRange As Range, cl As Range

    selRng = Target.Address
    If Intersect(Target, [B3:I22]) Is Nothing Then
[B]        [COLOR="#0000FF"]If Intersect(Target, [K2:N2]) Is Nothing Then[/COLOR][/B]
            Exit Sub
        Else
            Set sRange = Range(selOldRng)
            sRange.Interior.ColorIndex = Target.Interior.ColorIndex
        End If
    End If
    selOldRng = Target.Address

End Sub
 
De kleur wordt beter overgenomen als je ColorIndex vervangt door Color:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim sRange As Range, cl As Range

    selRng = Target.Address
    If Intersect(Target, [B3:I22]) Is Nothing Then
        If Intersect(Target, [K2:N2]) Is Nothing Then
            Exit Sub
        Else
            Set sRange = Range(selOldRng)
            sRange.Interior.Color = Target.Interior.Color
        End If
    End If
    selOldRng = Target.Address

End Sub
 
De kleur wordt beter overgenomen als je ColorIndex vervangt door Color
In mijn macro is dat al gebeurd, zoals je hebt kunnen zien. Dat de kleur dan beter overgenomen wordt, dat denk ik overigens niet (ik zou niet weten waarom). Op mijn computer is daarvan in elk geval niets te zien.
 
Bij mij geeft ColorIndex andere kleuren als Color. Vandaar de aanpassing. Naar jou bestandje heb ik overigens niet gekeken (vroeg TS ook niet :) )
 
@Octafish,
Als Colorindex bij jou een andere kleur weergeeft dan Color, dan hebje waarschijnlijk een kleur ingesteld die niet tot de 56 van de index behoort.
Jij schreef: "Naar jou bestandje heb ik overigens niet gekeken"
Dat hoeft ook niet, niemand is verplicht mijn berichten te lezen. Alleen is het dan wel vreemd dat je met een tweede Intersect... komt, net na het bericht waarin ik die heb gebruikt.
Dat zal dan toeval zijn :)
 
Alleen is het dan wel vreemd dat je met een tweede Intersect... komt, net na het bericht waarin ik die heb gebruikt.
Great minds think alike :)
Bovendien leer je meer als je dingen zelf uitzoekt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan