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

wijzigen naam commandbutton

Status
Niet open voor verdere reacties.

Egbert12345

Gebruiker
Lid geworden
13 dec 2010
Berichten
521
Hoi, ik heb een klein voorbeeldje gemaakt.

Ik heb een "formulier" gemaakt (userform1). De naam van de commandbutton kan ik uiteraard wijzigen via het venster eigenschappen, maar is het ook mogelijk om dat met een macro in VBA te doen?

groet Egbert
 

Bijlagen

Je bedoelt de knop op het werkblad?
Dat kan op deze manier:
Code:
ActiveSheet.Buttons("Knop 1").Name = "Nieuwe naam"
 
Het heeft natuurlijk altijd de voorkeur de naam in de ontwerpmodus vast te leggen.

Niet de naam, wel het 'etiket'

Code:
Private Sub UserForm_Initialize()
    CommandButton1.Caption = "snb"
End Sub

De naam van de commandbutton in het formulier, op voorwaarde dat het vertrouwenscentrum daarvoor ingesteld is:
In de macromodule van het werkboek, een werkblad of een macromodule:

Code:
Sub M_snb()
   ThisWorkbook.VBProject.VBComponents("Userform1").Designer.Controls("CommandButton1").Name = "snb"
End Sub
 
Laatst bewerkt:
Edmoor. wil je nog eens kijken? Als ik jou macro overneem wijzigt de tekst van de knop niet.
 
Nee, dat klopt.
Hij wijzigt alleen de naam van het object (.Name) en niet het opschrift (.Caption)
Je vroeg om het wijzigen van de naam.
 
Het gaat om de knop in het Userform, niet om de knop in het werkblad.
 
Daar geldt hetzelfde voor.
Maar daar heb jij al voorbeelden van gegeven :)
 
Hoi, alleen de titel moet dus worden gewijzigd en ik kreeg van jullie een aantal tips. Ik gebruik het voorbeeld van snb en dat was:

Private Sub UserForm_Initialize()
CommandButton1.Caption = "snb"
End Sub

Bij het openen van het werkblad wijzigen dus de opschriften. Nu wijzigen soms tussentijds de opschriften. Kan ik de private sub dan weer tussentijds laten uitvoeren zonder eerst het werkblad af te sluiten en weer te openen. Iets van Call of application run?
 
Als ze tussentijds wijzigen zonder dat dat de bedoeling is dan staat dat toch echt ergens in de code.
Daarnaast kan je dan toch gewoon daar waar het wel de bedoeling is de opdracht CommandButton1.Caption = gebruiken?
Gebruik ook bij uitleg de correcte benamingen.
Caption is Opschrift, niet Titel.
 
Laatst bewerkt:
Hallo Edmoor,

Vermoedelijk ben ik niet helemaal helder geweest in mijn uitleg, excuus. Ik probeer het nog een keer, maar lukt het mij nu beter. Ook heb ik een voorbeeldje gemaakt.

Ik heb een programma gemaakt die met twee werkmappen werkt.
Werkmap A: die gebruik ik als een besturingsmap en daar zitten al mijn macro's en een Userform.
Werkmap B: is een soort van database en waarin gegevens worden gemuteerd.

In het Userform heb ik een aantal knoppen opgenomen. In mijn voorbeeld hebben de knoppen de opschriften die in kolom B (2020, 2021, 2022) staan. Als ik nu die teksten wijzig in bijvoorbeeld 2020A, 2021A, 2021C dan wordt het opschrift direct aangepast als ik Userform aanroep.
In mijn programma staat echter de knop START MENU in werkmap B (de database) en de opschriften worden nu niet aangepast (alleen als ik de map heb afgesloten en opnieuw gestart)

Het heeft iets te maken met Private Sub UserForm_Initialize()

Kan je mij nog volgen?

groet Egbert
 

Bijlagen

Haal de Userform_Initialize weg en zet dit er in:
Code:
Private Sub UserForm_Activate()
    With Sheets("Blad1")
        CommandButton1.Caption = .Range("B4")
        CommandButton2.Caption = .Range("B5")
        CommandButton3.Caption = .Range("B6")
    End With
End Sub

Wat bedoel je met een werkmap?
Een werkboek? (document)
Een werkblad?
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan