Logo dans une macro dans excel, est-ce possible ?

Résolu
Ju@nita Messages postés 149 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 8 août 2024 - 6 août 2024 à 17:27
Ju@nita Messages postés 149 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 8 août 2024 - 8 août 2024 à 13:55

Bonjour,

On a deux bannières (mettons A et B) et j'aimerais incorporer une macro qui, en fonction de la bannière, on cliquerait sur un bouton macro pour changer le logo de tous les onglets pour la bannière A, ou changer pour la bannière B en supprimant le logo A. J'ai testé ceci sans grand succès :

ActiveSheet.Shapes.Range(Array("Picture 2")).Select
    Selection.Copy
    Sheets("Sommaire").Select
    Range("L2").Select
    ActiveSheet.Paste
    Range("H3:H4").Select
    ActiveSheet.Shapes.Range(Array("Picture 5")).Select
    Selection.Delete

Qu'est-ce qui détermine que le logo s'appelle Picture2 ou autre ? 

car dans mon premier onglet, j'y ai mis les 2 logos pour qu'une macro aille chercher le premier logo pour les copier partout, et l'autre macro qui irait chercher le 2e logo, mais la macro va toujours chercher le même logo. ça semble pas évident à faire. Et le fait de faire supprimer le logo existant ne fonctionne pas.

avez-vous d'autres suggestions pour moi svp ?

merci


Windows / Chrome 127.0.0.0

A voir également:

21 réponses

danielc0 Messages postés 1099 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 2 septembre 2024 126
6 août 2024 à 17:51

Bonjour,

Partage le classeur. Pour le partager, clique sur :
https://www.cjoint.com/
Clique sur le bouton "parcourir". Choisis le fichier à partager. Dans le bas de la page, clique sur le bouton "Créer le lien cjoint". Copie le lien affiché et colle-le dans ta réponse.

Daniel


0
Ju@nita Messages postés 149 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 8 août 2024
6 août 2024 à 18:02

https://www.cjoint.com/c/NHgqbGewI2g

J'ai pas mis mon vrai fichier, car il contient des données confidentielles. J'ai fait un fichier test.

merci pour votre aide

0
via55 Messages postés 14471 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 29 août 2024 2 727
Modifié le 6 août 2024 à 18:32

Bonjour

Ton fichier avec les macros :

https://www.cjoint.com/c/NHgqzmN87yc

1) les 2 images ont été nommées (à gauche de la barre de formule) LOGO_A et LOGO_B

2) La feuille les contenant a été appelée LOGOS

3) A chaque image a été associée une macro qui va copier l'image opposée et pour chaque feuille du classeur à partir de la 2eme (la 1ere étant celle des logos) efface le logo existant et le remplace par celui copié

4) La feuille LOGOS est ensuite masquée

Ensuite une double-clic sur le logo de n'importe quelle feuille du classeur lance la bonne macro

Tu peux rajouter autant de feuilles que tu veux par la suite elles seront prises en compte (à condition, lors de leur création d'y insérer le même logo que dans les autres feuilles en le copiant depuis la feuille LOGOS ou depuis n'importe quelle feuille


Cdlmnt

Via


0
Ju@nita Messages postés 149 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 8 août 2024
6 août 2024 à 19:11

wow !!! ça fonctionne !!! je capote !!!

maintenant je vais essayer de faire de même avec mon fichier original et mes deux logos.   

merci, merci.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ju@nita Messages postés 149 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 8 août 2024
6 août 2024 à 19:13

et comment je fais pour dire que mon post est résolu ?   j'ai jamais trouvé.

cette fonction n'est pas très évidente.

merci

0
Ju@nita Messages postés 149 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 8 août 2024
6 août 2024 à 20:18

J'ai un petit hic. J'essaie de copier la macro dans mon propre fichier, je l'ai presque. ça bloque à la 3e ligne de cette section. Pourquoi ?

For n = 2 To Sheets.Count
With Sheets(n)
.Select
.Shapes("LOGO_A").Delete
.Range("A1").Select
ActiveSheet.Paste
End With
 

0
via55 Messages postés 14471 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 29 août 2024 2 727
6 août 2024 à 20:40

Sans doute car tu n'as pas renommé les deux shapes LOGO_A et LOGO-B


0
Ju@nita Messages postés 149 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 8 août 2024
6 août 2024 à 20:45

oui je les ai nommé ainsi. Et pour être certaine, j'ai même nommé mes onglets de la même façon que votre exemple. J'ai essayé d'exécuter la macro "pas à pas" avec F8 et c'est vraiment à la ligne .Select  que ça bloque.

0
via55 Messages postés 14471 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 29 août 2024 2 727
6 août 2024 à 21:37

Sans ton fichier réel je ne peux pas devenir ce qui coince

Comme ton fichier est confidentiel tu peux me poster le lien en message privé, clique ici sur mon pseudo pour accéder à ma fiche

Dans l'attente


0
Ju@nita Messages postés 149 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 8 août 2024
7 août 2024 à 13:53

bonjour,

voici 2 fichiers. Le premier, c'est le vôtre dans lequel j'ai réussi à faire ce que je voulais dedans et ça fonctionne à merveille. Et même plus, car on m'avait demandé à ce que je puisse aussi changer la couleur de certaines zones pour celle de la bannière.

https://www.cjoint.com/c/NHhlUYDu1Xg

Le 2e fichier, c'est fait à partir de mon fichier original dans lequel j'ai tout effacé ou presque pour que je puisse vous le partager. Là, ça ne fonctionne pas. Ma seule piste est le nom des feuilles. Même si j'ai changé le nom des feuilles, il demeure qu'à l'origine, en allant visualiser le code, ce ne sont pas les feuilles 1, 2, 3, 4. Mais ça ne m'apprend rien de plus pour m'aider. Comment puis-je contourner ça si c'est là le problème :

https://www.cjoint.com/c/NHhlVTXh4Gg

à l'origine, le fichier contient beaucoup de feuille, de formules, de tableaux, et même d'autres macros.

merci.

0
via55 Messages postés 14471 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 29 août 2024 2 727
Modifié le 7 août 2024 à 18:27

Re,

Ton 2eme fichier envoyé  fonctionne bien aussi, le double clic sur un logo change les logos dans toutes les feuilles

peut être car il est expurgé ?

Le nom des feuilles n'a aucune importance la macro s'occupe uniquement de leur rang et les passe toutes en revue de la 2eme à la dernière, qu'il y en ait 10 ou 100

Combien as tu de feuilles réellement ? peut être qu'avec beaucoup de feuilles la macro met un temps pour s'exécuter ?

Ou alors envoie moi une fichier moins expurgé, en message privé pour qu’il n’apparaisse pas sur le forum que je vois

Cdlmnt

Via


0
Ju@nita Messages postés 149 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 8 août 2024
7 août 2024 à 18:32

je ne comprends pas car ce même fichier ne fonctionne pas de mon côté, il bug toujours au même endroit !!!

0
Ju@nita Messages postés 149 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 8 août 2024
7 août 2024 à 18:37

je pense que je n'avais pas envoyé le bon fichier. 

le voici :

https://www.cjoint.com/c/NHhqLv0mjgg

0
via55 Messages postés 14471 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 29 août 2024 2 727
7 août 2024 à 20:19

Impossible de voir ce qui ne va pas car il n'y a pas toutes les feuilles donc même avec le rang il y en a qui ne sont pas trouvées

Laisse toutes les feuilles visibles ou masquées peu importe mais toutes, celle que tu as supprimé laisse les avec le logo seulement si les infos sont confidentielles et là on pourra voir vraiment où ça coince


0
Ju@nita Messages postés 149 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 8 août 2024
7 août 2024 à 20:23

il y a juste la feuille LOGOS qui est masquée. Il n'y en a pas d'autres. J'ai mis ça au plus simple.

J'ai supprimé beaucoup de feuille pour pouvoir faire un petit fichier. 

0
via55 Messages postés 14471 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 29 août 2024 2 727
Modifié le 7 août 2024 à 22:17

Justement ces feuilles sont restées dans la macro et c'est cela qui doit coincer

Essaye de refaire un fichier avec seulement la feuille LOGOS et quelques feuilles comme je viens de faire :

https://www.cjoint.com/c/NHhurHalEac


0
Ju@nita Messages postés 149 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 8 août 2024
8 août 2024 à 00:21

oui ça fonctionne mais pas avec mon fichier. Je ne peux pas monter mon fichier d'états financiers à partir du vôtre. C'est le contraire que je dois faire, soit prendre mon fichier d'états financiers existant, qui est très élaboré, et inclure les nouvelles macros dedans. 

Je ne comprends pas ce que vous dites quand vous parlez des feuilles qui sont restées dans la macro. 

Est-ce que vous parlez de la section à gauche dans le VBAProject ? section que je ne comprends pas non plus à quoi ça sert car j'y ai vu plein de feuilles du genre : Feuil12(TMP_CONSOLIDATION)

Feuil4(DATAACCOUNT)

etc...

je ne peux même pas les détruire. 

et la section de votre macro qui dit:

 For n = 2 To Sheets.Count
With Sheets(n)
.Select

j'ai l'impression que la clé se trouve là mais je ne comprends pas ce que ça veut dire. Je ne suis pas très experte dans les macros. C'est pour ça que j'ai besoin d'aide.

merci encore

0
Ju@nita Messages postés 149 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 8 août 2024
8 août 2024 à 03:30

J'ai trouvé !!!!!!!!

en fouillant dans le VBA project, et en analysant ces feuilles fantômes, j'ai remarqué qu'au bas, à gauche, à la dernière ligne nommée "visible", que ces feuilles fantômes sont identifiées comme étant "SheetVeryHidden". Chose que je n'avais jamais entendu parler. J'ai donc fouiné sur internet pour savoir ce que ça voulait dire et comment les mettre visible. Ce que j'ai fait, ce qui m'a permis alors d'aller les détruire et là,  EUREKA !   les macros fonctionnent !!!

Mon test ultime sera d'aller mettre ces macros dans le fichier original d'états financiers, en m'assurant qu'il n'y ait pas de feuilles fantômes. 

J'ai bon espoir maintenant.

Merci.

0
Ju@nita Messages postés 149 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 8 août 2024
8 août 2024 à 04:50

fausse joie !

Ces feuilles fantômes doivent demeurer sinon les états financiers ne fonctionneront pas. Je m'explique. On fait la tenue de livre dans le logiciel Acomba. Le fichier excel d'états financiers est directement relié à Acomba pour y extraire toutes les données. Exemple, si je fais la tenue de livre de juillet, quand j'active la mise à jour du fichier excel via le module "complément", alors la période comptable, la date et toutes les données enregistrées s'exportent et se placent à divers endroits dans excel pour constituer le bilan, l'état des résultats, etc...

J'ai donc testé le fichier en détruisant toutes ces feuilles qui m'empêchaient de faire fonctionner la macro des logos, et voilà que je ne suis plus reliée à Acomba. J'ai refait le lien dans le module "complément"  puis avec "société" et hop, les feuilles fantômes sont réapparues. 

Donc, dans la macro, au lieu demander de procéder au changement de logo dans toutes les feuilles, peut-on juste lui dire dans quelles feuilles précisément je veux le changement de logo ? car ce n'est pas dans toutes les feuilles que je veux le logo, c'est juste une douzaine de feuilles. Les autres feuilles sont des tableaux de contrôle.

Si on refait le test avec celui-ci svp ?

https://www.cjoint.com/c/NHicXNp64Jg

merci.

0
via55 Messages postés 14471 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 29 août 2024 2 727
8 août 2024 à 11:29

Bonjour

https://www.cjoint.com/c/NHijAEtig4c

Comme cela peut être n'importe quelles feuilles et que cela peut être éventuellement amené à changer le mieux est de lister les feuilles avec logos changeants dans la feuille LOGOS, ce que j'ai fait en colonne I, tu peux en rajouter ou en supprimer car la formule en J1 compte le nombre de valeurs dans la colonne I et la macro va lire successivement les valeurs correspondantes

Cdlmnt

Via


0