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

Caption van knop dynamisch

Status
Niet open voor verdere reacties.

Jerry Deladik

Gebruiker
Lid geworden
12 jan 2004
Berichten
112
Hallo,

Ik heb een werkblad (geen form) met daarop een stuk of 30 knoppen. Om snel de caption van deze knoppen te kunnen veranderen zou ik de caption afhankelijk willen laten maken van de waarde in een cel.

Bijv. als waarde in cel A4 = Piet dan is de caption van de knop ook Piet.

Ik heb hier wat rondgekeken en ben met wat jatwerk op de volgende code gekomen:

Private Sub Worksheet_SelectionChange()
CommandButton1.Caption = Range("A4").Value
End Sub

Helaas werkt dit niet. Wat doe ik fout?
 
Probeer dit eens:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    CommandButton1.Caption = Range("B2").Value
End Sub

Ron
 
Jerry, Als je deze knop gemaakt hebt met de 'forms controls' van de worksheet (ipv de activeX control toolbox) is de knop een 'plaatje'. Deze roep je dan ook aan met 'shapes' en 'text' en dus niet met een caption zoals je dat doet in een VBA-form. De regel om de tekst dan op de knop aan te passen is:
Code:
    ActiveSheet.Shapes("Button 1").Select
    Selection.Characters.Text = Range("A1").Value
Raar genoeg moet je gebruik maken van een 'twee-traps-raket'. Je MOET dus éérst de knop selecteren, om daarna de SELECTIE te kunnen bewerken. Dit werkt dus niet: ActiveSheet.Shapes("Button 1").Characters.Text = Range("A1").Value

Je kan de 'knop-nummer' (bijvoorbeeld: "Button 1") achterhalen door de knop met je rechtermuisknop te selecteren. In de 'Name Box' (daar waar je ziet in welke cel je staat of wat de naam is van een benoemde range) zie je dan de 'naam' van de knop.

Ik hoop dat je hiermee verder kunt...;)

Groet, Leo

EDIT: O ja, voordat ik 't vergeet. Je moet NA het veranderen van de text ALTIJD afsluiten met een 'select' op een cel. Anders blijft de knop in de 'selectiestand' staan....
 
Laatst bewerkt:
OK Ron, jouw oplossing werkt. Het enige wat ik nu nog zou willen is naar een cel refereren die op een andere worksheet staat. De knop staat bijv op blad "overzicht" en de waarde voor de caption staat op blad "invoer"
Hoe doe ik dat?

Leo, ter info - ik had de knop via de control toolbox gemaakt.
 
Zo?
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    CommandButton1.Caption = Sheets("invoer").Range("B2").Value
End Sub

En je selection change moet je zetten in de module van sheet 'invoer'... (lijkt mij)

Groet, Leo

P.s.
ik had de knop via de control toolbox gemaakt
Och... er is vast nog wel iemand blij met deze uitleg...:D
 
Laatst bewerkt:
Hallo,

Ik heb dezelfde vraag maar kan niet helemaal uit de voeten met het antwoord.

Waar moet de VBA code geplaatst worden (Sheet1, ThisWorkSheet,Module1) ?

De button zelf staat op sheet1. Hier staat ook de code voor commandbutton1_click.
Maar invoegen van bovenstaande code werkt niet.

ALvast bedankt voor een antwoord.
 
Zoiets als dit plaats in Sheet1:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    CommandButton1.Caption = Sheets("invoer").Range("B2").Value
End Sub

Ik zou er wel een Worksheet_Change event van maken ;)

Code zoals dit

Code:
    ActiveSheet.Shapes("Button 1").Select
    Selection.Characters.Text = Range("A1").Value

komt gewoonlijk in een module en wordt uitgevoerd door de gebruiker, bv. druk op een knop.

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan