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

Kleur in een combobox

Status
Niet open voor verdere reacties.

Rianneke

Gebruiker
Lid geworden
10 apr 2008
Berichten
30
Ten behoeve van selectie van gegevens maak ik gebruik van een userform.
Nu wil ik graag weten of het mogelijk is om in een combobox tekst per selectie weer te geven in verschillende kleuren.

Voorbeeld zoals het formulier eruit zou moeten zien:
xnaeqf.jpg
 
Bij mijn weten kan dat niet. Wellicht met API's maar dan moet je echt heel diep in de VB cq Windows-materie gaan duiken... :confused:
 
Op internet vind ik wel een alternatief. voor "ComboBox with colors?"
Echter ik heb geen flauw benul hoe je die toepast. Iemand een idee?

Dit is de betreffende code:

Code:
Private Function GetColorindex(Optional Text As Boolean False) As Long

Dim rngCurr As Range

Set rngCurr Selection
Application.ScreenUpdating False
Range("IV1").Select
Application.Dialogs(xlDialogPatterns).Show
GetColorindex ActiveCell.Interior.ColorIndex
If GetColorindex xlColorIndexAutomatic And Not Text Then
GetColorindex xlColorIndexNone
End If
ActiveCell.Interior.ColorIndex xlColorIndexAutomatic
rngCurr.Select
Set rngCurr ActiveSheet.UsedRange
Application.ScreenUpdating True
End Function
 
Laatst bewerkt door een moderator:
Wat misschien handiger is en ook om aan veel meer kleuren te komen:
  • Voeg in VBA (druk hiervoor op Alt+F11) een UserForm toe (heet dan normaliter "UserForm1")
  • Plaats een CommonDialog component op die UserForm
  • Plaats de volgende code cwq macro's in een module of in één van je sheets:
Code:
Option Explicit

Public Function GetColor() As Long
    UserForm1.CommonDialog1.ShowColor
    
    If Not UserForm1.CommonDialog1.CancelError Then
        GetColor = UserForm1.CommonDialog1.Color
    End If
End Function

Public Sub ChangeColorActiveCell()
    Dim myColor As Long
    
    myColor = GetColor
    If myColor >= 0 Then
        ActiveCell.Interior.Color = myColor
    End If
End Sub

De subroutine 'ChangeColorActiveCell' dient alleen als voorbeeld en hoef je niet perse te gebruiken.
 
Laatst bewerkt:
Etri...

Misschien een rare vraag maar welk icoon in de toolbox is een "CommonDialog component".

Ik heb op mijn toolbox alleen maar de volgende iconen, zie afbeelding.
k1vznk.jpg
 
Zo te zien staat die er (nog) niet tussen...

Om hem toe te voegen kun je het volgende doen (zie bijlage voor figuren):
  • Rechtermuisknop klikken op een lege plek in je toolbox
  • Klik op 'Additional Controls...' (zie figuur 1)
  • Scroll naar beneden naar 'Microsoft Common Dialog Control 6.0' (zie figuur 2)
  • Aanvinken en klaar!

Nu staat de commondialog control rechtsonder (zie figuur 3)... :thumb:
 

Bijlagen

Zo te zien staat die er (nog) niet tussen...

Om hem toe te voegen kun je het volgende doen (zie bijlage voor figuren):
  • Rechtermuisknop klikken op een lege plek in je toolbox
  • Klik op 'Additional Controls...' (zie figuur 1)
  • Scroll naar beneden naar 'Microsoft Common Dialog Control 6.0' (zie figuur 2)
  • Aanvinken en klaar!

Nu staat de commondialog control rechtsonder (zie figuur 3)... :thumb:

Etri,
Bedankt, maar helaas.:shocked:

Ik kon de optie aanvinken en hij werd toegevoegd in mijn toolbox, maar als ik hem wil gebruiken verschijnt de melding "The control could not be created because it is not properly licensed."

Ik zal toch maar iets anders moeten gaan verzinnen.
 
Hmmm. Ik lees inderdaad dat het aan de versie van Excel kan liggen. Als je een duuurdere versie hebt (Enterprise Edition of Developers Edition) dan mag je dat component wel gebruiken en anders niet... :confused:
 
Op internet vind ik wel een alternatief. voor "ComboBox with colors?"
Daarmee kun je naar mijn mening - ook na aanpassing - de tekst in een combobox geen kleur geven.
Het is niet echt wat je zoekt, maar kijk eens of dit (wijziging vd achtergrondkleur) een alternatief kan zijn (het zwart is grijs, en van de andere kleuren zijn de heldere varianten gekozen):
Code:
Private Sub ComboBox1_Change()
With ComboBox1
Select Case .Text
Case "Rood"
.BackColor = RGB(255, 0, 0)
Case "Blauw"
.BackColor = RGB(30, 144, 255)
Case "Zwart"
 .BackColor = RGB(128, 128, 128)
Case "Groen"
.BackColor = RGB(0, 255, 127)
Case "Geel"
.BackColor = RGB(255, 255, 0)
End Select
End With
End Sub
 
Laatst bewerkt:
zapatr en wigi bedankt. :thumb:

Beide door jullie aangebrachte oplossingen waren een mooi oplossing voor mijn probleem. Thanx.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan