Faire apparaitre forme à l'aide d'une macro
Résolu/Fermé
riton
-
Modifié par riton le 22/09/2010 à 11:25
ESCOUGER Messages postés 31 Date d'inscription lundi 3 décembre 2007 Statut Membre Dernière intervention 17 juillet 2019 - 19 oct. 2011 à 13:53
ESCOUGER Messages postés 31 Date d'inscription lundi 3 décembre 2007 Statut Membre Dernière intervention 17 juillet 2019 - 19 oct. 2011 à 13:53
A voir également:
- Faire apparaitre forme à l'aide d'une macro
- Mise en forme conditionnelle excel - Guide
- Apparaitre hors ligne instagram - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Comment faire apparaître la tabulation sur word - Guide
10 réponses
Mike-31
Messages postés
18352
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 décembre 2024
5 110
22 sept. 2010 à 16:09
22 sept. 2010 à 16:09
Salut,
Tu ne donne pas trop d'explications sur ce que tu veux faire, nous ne sommes pas devin.
c'est une image qui est dans le même répertoire que tu veux faire apparaitre !!!
c'est une image qui est stockée sur une autre feuille !!!
C'est une image qui est déjà sur la feuille que tu veux faire apparaitre et disparaitre c'est ce code
Shapes("nom de l'image").Visible = Not Shapes("nom de l'image").Visible
Tu ne donne pas trop d'explications sur ce que tu veux faire, nous ne sommes pas devin.
c'est une image qui est dans le même répertoire que tu veux faire apparaitre !!!
c'est une image qui est stockée sur une autre feuille !!!
C'est une image qui est déjà sur la feuille que tu veux faire apparaitre et disparaitre c'est ce code
Shapes("nom de l'image").Visible = Not Shapes("nom de l'image").Visible
ok voici le code de ma macro:
Sub Macro4 ()
'
' Macro4 Macro
'
Sheet ("FEUILLE2"). Select
End Sub
Donc rien apparait par rapport au rectangle. "Feuille 2" apparait uniquement parce que je voulais placer le rectangle en feuille 2.
Si je tape votre code, il ya une erreur: toute la ligne "ActiveDocument..." est surlignée en jaune.
Quelle a été votre démarche pour arriver à ce code?
Merci.
Sub Macro4 ()
'
' Macro4 Macro
'
Sheet ("FEUILLE2"). Select
End Sub
Donc rien apparait par rapport au rectangle. "Feuille 2" apparait uniquement parce que je voulais placer le rectangle en feuille 2.
Si je tape votre code, il ya une erreur: toute la ligne "ActiveDocument..." est surlignée en jaune.
Quelle a été votre démarche pour arriver à ce code?
Merci.
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 454
23 sept. 2010 à 20:38
23 sept. 2010 à 20:38
Bonjour,
Selon Microsoft : https://support.microsoft.com/en-us/help/937620 ; dans Microsoft Excel 2007, vous ne pouvez pas enregistrer de nouvelles formes, forme et effets de forme à l'aide de l'enregistreur de macros.
Pour contourner ce problème, appliquez Microsoft code Visual Basic pour Applications (VBA) pour mettre en forme les formes.
Note: Dans Visual Basic Editor, cliquez sur Explorateur d'objets dans le menu Affichage pour rechercher correctes des objets, méthodes et des propriétés qui sont utilisées dans du code VBA.
Selon Microsoft : https://support.microsoft.com/en-us/help/937620 ; dans Microsoft Excel 2007, vous ne pouvez pas enregistrer de nouvelles formes, forme et effets de forme à l'aide de l'enregistreur de macros.
Pour contourner ce problème, appliquez Microsoft code Visual Basic pour Applications (VBA) pour mettre en forme les formes.
Note: Dans Visual Basic Editor, cliquez sur Explorateur d'objets dans le menu Affichage pour rechercher correctes des objets, méthodes et des propriétés qui sont utilisées dans du code VBA.
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 454
22 sept. 2010 à 15:20
22 sept. 2010 à 15:20
Bonjour,
Mettre une copie de votre code !
Mettre une copie de votre code !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
non en réalité ce n'est pas un objet mais tout simplement une forme (un rectangle ou un losange, que j'insere avec l'onglet insertion, formes). Ensuite j'aimerai affecter une macro à cette forme. suis-je clair?
UsulArrakis
Messages postés
7405
Date d'inscription
vendredi 28 mars 2003
Statut
Contributeur
Dernière intervention
27 janvier 2022
3 189
Modifié par UsulArrakis le 23/09/2010 à 16:59
Modifié par UsulArrakis le 23/09/2010 à 16:59
met le code récupéré à partir de l'enregistreur de macro comme demandé par Le Pingou
voici le code que j'obtiens avec l'enregistreur pour un rectangle dans word 2007
Sub test()
'
' test Macro
'
'
ActiveDocument.Shapes.AddShape(msoShapeRectangle, 105#, 129#, 72#, _
72#).Select
Selection.ShapeRange.IncrementLeft 4.5
End Sub
voici le code que j'obtiens avec l'enregistreur pour un rectangle dans word 2007
Sub test()
'
' test Macro
'
'
ActiveDocument.Shapes.AddShape(msoShapeRectangle, 105#, 129#, 72#, _
72#).Select
Selection.ShapeRange.IncrementLeft 4.5
End Sub
Mike-31
Messages postés
18352
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 décembre 2024
5 110
Modifié par Mike-31 le 23/09/2010 à 21:15
Modifié par Mike-31 le 23/09/2010 à 21:15
Salut,
Je reviens à la charge, j'ai du mal à comprends, il s'agit bien sur une feuille de calcul et de faire apparaitre ou disparaitre une forme géométrique (rond ou carré etc ...)
Lorsqu'on clique sur la forme, dans la barre d'adresse s'incrit son nom que l'on peut éventuellement renommer
prenons un exemple et dessinons un rectangle dont son nom récupéré dans la barre d'adresse est Rectangle 1
le code pour masquer ce rectangle est
Sub test()
ActiveSheet.Shapes("Rectangle 1").Visible = False
End Sub
pour le faire réapparaitre est
Sub test()
ActiveSheet.Shapes("Rectangle 1").Visible = True
End Sub
il suffit d'associer les codes à des boutons ou l'associer au contenu d'une cellule
code pour la faire rapparaitre, il suffit de remplacer True par False pour la faire disparaitre
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$6" Then ActiveSheet.Shapes("Rectangle 1").Visible = True
End Sub
Ou à la valeur 1 en C6 apparait, 2 masque la forme
Private Sub Worksheet_Change(ByVal Target As Range)
If [C6] = 1 Then ActiveSheet.Shapes("Rectangle 1").Visible = True
If [C6] = 2 Then ActiveSheet.Shapes("Rectangle 1").Visible = False
End Sub
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Je reviens à la charge, j'ai du mal à comprends, il s'agit bien sur une feuille de calcul et de faire apparaitre ou disparaitre une forme géométrique (rond ou carré etc ...)
Lorsqu'on clique sur la forme, dans la barre d'adresse s'incrit son nom que l'on peut éventuellement renommer
prenons un exemple et dessinons un rectangle dont son nom récupéré dans la barre d'adresse est Rectangle 1
le code pour masquer ce rectangle est
Sub test()
ActiveSheet.Shapes("Rectangle 1").Visible = False
End Sub
pour le faire réapparaitre est
Sub test()
ActiveSheet.Shapes("Rectangle 1").Visible = True
End Sub
il suffit d'associer les codes à des boutons ou l'associer au contenu d'une cellule
code pour la faire rapparaitre, il suffit de remplacer True par False pour la faire disparaitre
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$6" Then ActiveSheet.Shapes("Rectangle 1").Visible = True
End Sub
Ou à la valeur 1 en C6 apparait, 2 masque la forme
Private Sub Worksheet_Change(ByVal Target As Range)
If [C6] = 1 Then ActiveSheet.Shapes("Rectangle 1").Visible = True
If [C6] = 2 Then ActiveSheet.Shapes("Rectangle 1").Visible = False
End Sub
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 454
23 sept. 2010 à 21:44
23 sept. 2010 à 21:44
Bonjour Mike-31,
Par rapport à : J'ai bien cliqué sur enreigistrer macro, puis insertion=> formes=> "rectangle" puis arréter la macro
Ma réponse concerne uniquement l'enregistreur de macro sous 2007 qui ne prend plus en charge les formes, graphiques--- il créer la macro manuellement.
Par contre sous 2003 l'enregistreur de macro fait tout le travail.
Salutations.
Le Pingou
Par rapport à : J'ai bien cliqué sur enreigistrer macro, puis insertion=> formes=> "rectangle" puis arréter la macro
Ma réponse concerne uniquement l'enregistreur de macro sous 2007 qui ne prend plus en charge les formes, graphiques--- il créer la macro manuellement.
Par contre sous 2003 l'enregistreur de macro fait tout le travail.
Salutations.
Le Pingou
Mike-31
Messages postés
18352
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 décembre 2024
5 110
Modifié par Mike-31 le 23/09/2010 à 22:32
Modifié par Mike-31 le 23/09/2010 à 22:32
Salut l'ami,
Ma réponse était plus destinée au post de Riton du 23 septembre 16:19 qui dit
Non en réalité ce n'est pas un objet mais tout simplement une forme (un rectangle ou un losange, que j'insère avec l'onglet insertion, formes). Ensuite j'aimerai affecter une macro à cette forme. Suis-je clair?
Ce à quoi je lui réponds toute forme est prise en compte avec les quelques codes que je lui proposais et il y en a bien d'autre.
S'il à besoin d'un petit fichier exemple qu'il le demande.
Pour l'assistant macro je l'utilise assez peu et n'ai pas remarqué, mais je te remercie de l'info et y jetterais un oeil
Cordialement
Mike-31
Ma réponse était plus destinée au post de Riton du 23 septembre 16:19 qui dit
Non en réalité ce n'est pas un objet mais tout simplement une forme (un rectangle ou un losange, que j'insère avec l'onglet insertion, formes). Ensuite j'aimerai affecter une macro à cette forme. Suis-je clair?
Ce à quoi je lui réponds toute forme est prise en compte avec les quelques codes que je lui proposais et il y en a bien d'autre.
S'il à besoin d'un petit fichier exemple qu'il le demande.
Pour l'assistant macro je l'utilise assez peu et n'ai pas remarqué, mais je te remercie de l'info et y jetterais un oeil
Cordialement
Mike-31
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 454
23 sept. 2010 à 22:20
23 sept. 2010 à 22:20
Bonjour Mike-31,
Le voilà son code enregistré avec l'enregistreur de macro et comme il est en version 2007 les [shapes] ne sont pas enregistrés. Il faut le faire manuellement dans la macro.
Son code :
A une prochaine.
Salutations.
Le Pingou
Le voilà son code enregistré avec l'enregistreur de macro et comme il est en version 2007 les [shapes] ne sont pas enregistrés. Il faut le faire manuellement dans la macro.
Son code :
Sub Macro4 () ' ' Macro4 Macro ' Sheet ("FEUILLE2"). Select End Sub
A une prochaine.
Salutations.
Le Pingou
Ok je vous remercie je vais tenter ce que vous m'avez proposés. Quitte à revenir sur la version 2003.
Mike-31
Messages postés
18352
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 décembre 2024
5 110
24 sept. 2010 à 15:00
24 sept. 2010 à 15:00
Les codes que je t'ai proposé fonctionnent aussi bien sur Excel 2003 que 2007 ou 2010 pour les avoir testés
ok j'arrive à me démerder en jouant sur les 2 versions. Maintenant un nouveau problème se pause. J'aimerai, toujours à l'aide d'un macro afectée à un bouton, supprimer tout ce qui a sur la feuille, notament les formes. Sachant qu'il n y aura pas toujours les même formes. Je m'explique. Je lance la macro 1, une forme apparait. Je clic ensuite sur mon bouton qui va effacer la forme (jusque la tout va bien). Maintenant, si je lance maintenant la macro 2, une autre forme apparait. j'aimerai qu'avec le même bouton, cette deuxième forme disparaisse également.
Il ya t-il un code qui dit "effacer toutes les formes quelque soit son nom?"
Il ya t-il un code qui dit "effacer toutes les formes quelque soit son nom?"
C'est bon vous embétez pas, j'ai trouvé comment faire gràce à vos indications. Mon logiciel commence a avoir de la gueule.
Merci pour tout! mon patron va adorer.
Merci pour tout! mon patron va adorer.
Mike-31
Messages postés
18352
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 décembre 2024
5 110
24 sept. 2010 à 21:06
24 sept. 2010 à 21:06
Re,
Regarde quelques exemples valable sur les versions Excel 2003 à 2010 avec des explications sur les quatres feuilles.
Pour voir les différents codes, soit tu clic droit sur l'onglet de feuille/Visualiser le code
ou lorsque tu es sur un feuille en même temps clis sur la touche Alt et sur la touche de fonction F11
https://www.cjoint.com/?jyvdvFGUJF
Regarde quelques exemples valable sur les versions Excel 2003 à 2010 avec des explications sur les quatres feuilles.
Pour voir les différents codes, soit tu clic droit sur l'onglet de feuille/Visualiser le code
ou lorsque tu es sur un feuille en même temps clis sur la touche Alt et sur la touche de fonction F11
https://www.cjoint.com/?jyvdvFGUJF
ESCOUGER
Messages postés
31
Date d'inscription
lundi 3 décembre 2007
Statut
Membre
Dernière intervention
17 juillet 2019
19 oct. 2011 à 13:53
19 oct. 2011 à 13:53
Mon problème est proche du tien.
J'active une macro depuis une forme ou une image.
Dans cette macro, je voudrais inserer cette forme ou image dans la cellule active.
Ainsi ma forme ou mon image apparaîtrait 2 fois sur ma feuille.
Je pense que "ActiveSheet.Pictures.Insert....." permet peut-être cela mais ne sait pas comment exprimer cela dans cette ligne de code?
Peut-être peux-tu m'aider?
J'active une macro depuis une forme ou une image.
Dans cette macro, je voudrais inserer cette forme ou image dans la cellule active.
Ainsi ma forme ou mon image apparaîtrait 2 fois sur ma feuille.
Je pense que "ActiveSheet.Pictures.Insert....." permet peut-être cela mais ne sait pas comment exprimer cela dans cette ligne de code?
Peut-être peux-tu m'aider?