Faire apparaitre forme à l'aide d'une macro
Résolu
riton
-
ESCOUGER Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
ESCOUGER Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaite faire apparaitre un objet (forme, ou image) à l'aide d'une macro. J'ai bien cliqué sur enreigistrer macro, puis insertion=> formes=> "rectangle" puis arréter la macro. Ensuite j'ai affecté ma macro à un bouton. Mais lorsque je clic sur le bouton, la forme n'apparait pas. Si j'écri un texte dans un case pendant l'enregistrement, lui apparait lorsque je clic sur le bouton. Pourquoi est-ce différent pour une forme?
Je souhaite faire apparaitre un objet (forme, ou image) à l'aide d'une macro. J'ai bien cliqué sur enreigistrer macro, puis insertion=> formes=> "rectangle" puis arréter la macro. Ensuite j'ai affecté ma macro à un bouton. Mais lorsque je clic sur le bouton, la forme n'apparait pas. Si j'écri un texte dans un case pendant l'enregistrement, lui apparait lorsque je clic sur le bouton. Pourquoi est-ce différent pour une forme?
A voir également:
- Faire apparaitre forme à l'aide d'une macro
- Mise en forme conditionnelle excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Apparaitre hors ligne instagram - Guide
- Mise en forme tableau word - Guide
- Comment faire apparaître le clavier sur une tablette - Guide
10 réponses
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.
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.
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?
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
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.
Ok je vous remercie je vais tenter ce que vous m'avez proposés. Quitte à revenir sur la version 2003.
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.
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
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?