Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/12/2011, 11h06   #1
Invité régulier
 
Femme
Administrateur de base de données
Inscription : août 2011
Messages : 28
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Distribution

Informations forums :
Inscription : août 2011
Messages : 28
Points : 6
Points : 6
Par défaut renommer commandbutton activex

Bonjour,

J'aimerais renommer un contrôle activex "Commandbutton" via cette macro :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub RenommerBoutons()
 
    Dim usf As Object
     Dim ctl As Object
     Dim i As Byte
     Dim j As Byte
 
    Set usf = ThisWorkbook.VBProject.VBComponents("Feuil2")
 
    For Each ctl In usf.Designer.Controls
         If TypeName(ctl) = "CommandButton" Then
             i = i + 1
             ctl.Name = "Toto" & i
         End If
     Next
 
    For Each ctl In usf.Designer.Controls
         If TypeName(ctl) = "CommandButton" Then
             j = j + 1
             ctl.Caption = "Toto" & j
         End If
     Next
 
End Sub
Mais cela bugue à cet endroit :
Code :
    Set usf = ThisWorkbook.VBProject.VBComponents("Feuil2")
en me mettant : "L'accès par programme au projet Visual Basic n'est pas viable"... Quelqu'un pourrait-il m'aider ?

Merci d'avance,

lbroc84
lbroc84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2011, 11h19   #2
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 920
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 920
Points : 7 237
Points : 7 237
Bonjour,

Je n'ai pas la version 2007 sous la main, mais sous 2003 je ferais cela.

Menu Outils>Macro>Sécurité, dans onglet "Editeurs approuvés" cocher la case "Faire confiance au projet Visual Basic"
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2011, 11h34   #3
Invité régulier
 
Femme
Administrateur de base de données
Inscription : août 2011
Messages : 28
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Distribution

Informations forums :
Inscription : août 2011
Messages : 28
Points : 6
Points : 6
Bonjour,

Je vous remercie pour votre aide.

Sous MO 2007, dans "Developpeur", il y a "Sécurité des macros" puis "Editeurs approuvés" mais je n'ai rien figurant dans cette option. Je ne peux rien cocher. Cette option est vide.

Comment puis-je faire apparaitre "Faire confiance au projet visual basic" ?

Merci,

lbroc84
lbroc84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2011, 13h02   #4
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 685
Points : 4 685
Bonjour,

comme ceci :

Ormonth-Data44.jpg

Cordialement,

Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/12/2011, 14h23   #5
Invité régulier
 
Femme
Administrateur de base de données
Inscription : août 2011
Messages : 28
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Distribution

Informations forums :
Inscription : août 2011
Messages : 28
Points : 6
Points : 6
Bonjour,

Merci beaucoup... En effet, cela fonctionne à ce niveau-là lorsque j'ai tické ce que vous indiquiez...

Mais maintenant ca bugue à cette phrase-là :

Code :
   For Each ctl In usf.Designer.Controls
en indiquant "Variable Objet ou variable de bloc With non définie"...

Savez-vous pourquoi ?

Merci

lbroc84
lbroc84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2011, 10h19   #6
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 920
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 920
Points : 7 237
Points : 7 237
et en déclarant Ctl comme control?

__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2011, 11h19   #7
Expert Confirmé
 
Homme Philippe
ex Observeur CGG / Analyste prog.
Inscription : juin 2006
Messages : 1 715
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : ex Observeur CGG / Analyste prog.

Informations forums :
Inscription : juin 2006
Messages : 1 715
Points : 3 655
Points : 3 655
Salut, t'inspirer de http://silkyroad.developpez.com/VBA/...asicEditor/#LV
http://www.developpez.net/forums/d11...orm-dynamique/
__________________
Pensez à Voter, d'avance merci. ( Pouces en bas à la droite de Citer )
Balisez votre code après l'avoir indenté sous Excel via Smart Indenter
Autre utilitaire : MZ Tools 3.0 VBA

Contribution : Excel / Word / PDF avec Adobe Acrobat Pro / PDFCreator 1 2
kiki29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2011, 12h35   #8
Expert Confirmé
 
Avatar de patricktoulon
 
patrick
Inscription : avril 2009
Messages : 1 829
Détails du profil
Informations personnelles :
Nom : patrick
Âge : 42
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Secteur : Bâtiment

Informations forums :
Inscription : avril 2009
Messages : 1 829
Points : 2 857
Points : 2 857
Envoyer un message via MSN à patricktoulon
Par défaut heu...!!!

bonjour

si je comprend bien tu veu renomer un ou x bouton dans ton usf

tu dis
Code :
1
2
 
For Each ctl In usf.Designer.Controls
si la macro est dans le userform tu met

Code :
1
2
 
For Each ctl In me.Controls
si la macro est dans un autre module (standard)tu met

Code :
1
2
 
For Each ctl In nom de l'userform.Controls
au plaisir
__________________
mes fichiers dans les contributions:
mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA
mon nouveau mouse in out pour les boutons dans un userform
mon addin pour prendre un cliché de selection de cellules

si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres
et n'oublie pas de voter
patricktoulon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2011, 17h04   #9
Invité régulier
 
Femme
Administrateur de base de données
Inscription : août 2011
Messages : 28
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Distribution

Informations forums :
Inscription : août 2011
Messages : 28
Points : 6
Points : 6
Bonjour,

Merci pour votre aide...

A vrai dire, j'essaie tout simplement de renommer des boutons de contrôle Active X (commandbutton1) qui se trouvent sur ma feuille de calcul (et non dans une useform)...

J'avais trouvé cette macro et j'essayais donc de la retranscrire dans mon cas...

Mais je n'y arrive pas...

Je vais regarder d'un peu plus près les solutions que vous m'avez donné...

Si vous en avez d'autres, n'hésitez pas...

lbroc84

Rebonjour,

J'ai regardé un peu la doc...

J'ai essayé ceci pour simplifier:

Code :
1
2
3
4
5
6
7
8
9
10
Sub RenommerBoutons()
 
Dim Obj As OLEObject
 
Set Obj = Sheets("Feuil2").OLEObjects("CommandButton1")
With Obj
.Name = "Mise à jour des liens"
End With
 
End Sub
Mais il m'indique "L'indice n'appartient pas à la sélection" en buguant sur :

Code :
Set Obj = Sheets("Feuil2").OLEObjects("CommandButton1")
...??

Merci d'avance de votre aide

lbroc84
lbroc84 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 27/12/2011, 17h50   #10
Invité régulier
 
Femme
Administrateur de base de données
Inscription : août 2011
Messages : 28
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Distribution

Informations forums :
Inscription : août 2011
Messages : 28
Points : 6
Points : 6
J'ai trouvé...

En fait, il n'est pas nécessaire d'utiliser une macro.. il suffit juste d'appuyer sur "Propriétés" lorsqu'on est sur le bouton et de changer le nom dans les propriétés...

Merci à tous pour votre aide...

lbroc84
lbroc84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h08.


 
 
 
 
Partenaires

Hébergement Web