Bonjour,
Dans un même classeur, j'ai dupliqué un userform POPO vers TATA
Pour tous les contrôles de TATA qui ont pour une partie de leur nom POPO, je souhaite
- remplacer la partie du nom POPO par TATA
- remplacer la source qui a comme référence une cellule qui a pour nom POPO par une autre cellule qui a pour partie de son nom TATA (j'utilise des noms de cellule pour controlsource)
Dans un module particulier, j'ai testé ma procédure en 2 fois correspondant aux 2 actions
Pour le nom :
Un mesage d'erreur 382 apparaît "Impossible de définir la propriété Name.Impossible de définir la propriété à l'exécution."
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Sub Renomme() Dim ctrl As Control For Each ctrl In TATA.Controls If InStr(ctrl.Name, "POPO") <> 0 Then ctrl.Name = Replace(ctrl.Name, "POPO", "TATA") 'If TypeName(ctrl) = "TextBox" Then ctrl.ControlSource = Replace(ctrl.ControlSource, "POPO", "TATA") End If Next ctrl End Sub
Pour la source :
Le même code en déplaçant l'indicateur de commentaire
Ici pas de message d'erreur. Mais le code reste sans effet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 'ctrl.Name = Replace(ctrl.Name, "POPO", "TATA") If TypeName(ctrl) = "TextBox" Then ctrl.ControlSource = Replace(ctrl.ControlSource, "POPO", "TATA")
J'ai consulté le tuto de Silkyroad et l'aide en ligne (F1) mais je n'ai pas trouvé d'explication(s).
Merci pour votre aide
Marcel.
Partager