Macro EXCEL

Signaler
Messages postés
9
Date d'inscription
jeudi 14 décembre 2000
Statut
Membre
Dernière intervention
24 juin 2008
-
Messages postés
9
Date d'inscription
jeudi 14 décembre 2000
Statut
Membre
Dernière intervention
24 juin 2008
-
Bonjour à tous,

J'ai crée un module avec plusieurs macro dans un fichier EXCEL : C'est essentiellement de la mise en forme de données
J'aimerais que ce module soit accessible depuis d'autres fichiers excel que les utilisateurs crééront.
J'ai essayé de passer par un bouton lié à la macro (passée en xla) mais ca me plante mon fichier et me donne des erreurs sur les lignes de code tout simple du style : "Selection.Merge"
La seule solution que j'ai actuellement c'est de copier à la mano le module dans le nouveau fichier excel et de lancer ensuite ma macro par VB Editor..........
Auriez vous une solution?

D'avance merci
Givrinie

14 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
salut,

place ton module dans le classeur de macros personnelles.
S'il n'apparait pas dans le VBProject, voici comment l'avoir :

Il suffit de s'enregistrer, en changeant ce qui est surligné.
Ensuite, tu fais stop. Et dans l'éditeur VB, tu auras un vbProject style PERSOS ou qque chose comme ça.
Place ton module dedans, et voilà. Il serait accessible depuis tous tes classeurs

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Messages postés
9
Date d'inscription
jeudi 14 décembre 2000
Statut
Membre
Dernière intervention
24 juin 2008

Merci pour ta réponse : J'ai donc placé mon module dans PERSO et affecter PERSO.XLS!MacroXX à mon bouton.
J'ai ouvert un autre classeur et quand je lance ma macro via mon bouton, il marque :
erreur d'execution -2147417848 (80010108) :
La méthode Merge de l'objet Range à échoué
Et maintenant, je ne peux plus selectionner aucune cellule dans mon fichier......
Bizarre Bizarre...........

Givrinie
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
c'est normal (je pense) que ça plante !
Tu utilises Selection.Merge.

Donc c'est censé fusionner les cellules sélectionnées, mais le soucis que tu dois avoir est avec ton bouton.
Si ton code est dedans, lors de l'appui sur le bouton, le code s'exécute, mais là les cellules se désélectionnent et c'est le bouton qui l'est désormais.

Et un bouton ne se fusionne pas.

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Messages postés
9
Date d'inscription
jeudi 14 décembre 2000
Statut
Membre
Dernière intervention
24 juin 2008

Pourtant mon code c'est ca : 
   Range("A1:B2").Select
   With Selection
       .HorizontalAlignment = xlCenter
       .VerticalAlignment = xlBottom
       .WrapText = True
       .Orientation = 0
       .AddIndent = False
       .IndentLevel = 0
       .ShrinkToFit = False
       .ReadingOrder = xlContext
       .MergeCells = False
   End With
   Selection.Merge

Et quand je regarde mon fichier, je vois bien les cellule A1:B2 selectionnées
Pitié, j'en peux plus
Givrinie
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Met ça dans le click du bouton :

Application.Run "PERSO.XLS!Nom de la Sub"

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Messages postés
9
Date d'inscription
jeudi 14 décembre 2000
Statut
Membre
Dernière intervention
24 juin 2008

euh je dois etre bete mais je vois pas ou placer cette ligne de code
Moi j'ai un bouton dans la barre des menus que j'ai lié a ma macro........

Givrinie
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Heu .. un bouton dans la barre des menus ?
C'est un bouton ou un menu ?

N'as-tu pas un évènement Click pour le bouton ?
Si c'est un menu, c'est encore différent

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Messages postés
9
Date d'inscription
jeudi 14 décembre 2000
Statut
Membre
Dernière intervention
24 juin 2008

oui c'est un bouton dans la barre des menus (au meme titre que la police, la taille, pour mettre en gras, en italique....)
Et en personnalisant la barre des menus, j'ai donc affecté  perso.xls!macro à ce bouton.......

Givrinie
Messages postés
9
Date d'inscription
jeudi 14 décembre 2000
Statut
Membre
Dernière intervention
24 juin 2008

En fait plusieurs utilisateurs peuvent extraire un fichier de données d'un outil GPAO.
Ce fichier, ils peuvent l'enregistrer ou ils veulent.
Par contre le fichier tel quel n'est pas exploitable donc j'ai crée une macro pour remettre tout ca en forme
Il faudrait donc que cette macro soit accessible facilement(style bouton dans la barre) et par tous

Je sais pas si je suis tres claire la.......

Givrinie
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Bah là je sais pas quoi te dire.
Je viens de tester donc en rajoutant un bouton, au premier clic, j'ai affecté la macro placée dans Perso.xls, et ça fonctionne très bien

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Messages postés
9
Date d'inscription
jeudi 14 décembre 2000
Statut
Membre
Dernière intervention
24 juin 2008

oui moi aussi ca fonctionne sur le fichier en cours.Par contre si je fais le test avec un tout nouveau fichier que je viens d'exporter, ben ca me plante tout......
Tant pis, merci pour ton aide

Givrinie
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
Salut,

ce qui suit ne devrait pas resoudre ton probleme mais vu que tu dis que cela plante sur le merge... faire des select a tout va pour travailler sur des cellules sauf exception et mise a part augmenter le risque de plantage cela ne sert a rien sur excel,  donc remplace ton bout code par celui-ci :
  
With Range("A1:B2")
       .HorizontalAlignment = xlCenter
       .VerticalAlignment = xlBottom
       .WrapText = True
       .Orientation = 0
       .AddIndent = False
       .IndentLevel = 0
       .ShrinkToFit = False
       .ReadingOrder = xlContext
       .MergeCells = True
   End With

et tu m'enleve aussi cette ligne : Selection.Mergequi ne sert a rien car cette option est deja dans le with !

A+
Messages postés
9
Date d'inscription
jeudi 14 décembre 2000
Statut
Membre
Dernière intervention
24 juin 2008

Oui chef, Bien chef !!
Non tu as raison, ca servait à rien de rien.
donc je l'ai modifié mais comme tu le dis, ca n'a rien changé à mon put*** de probleme

Givrinie
Messages postés
9
Date d'inscription
jeudi 14 décembre 2000
Statut
Membre
Dernière intervention
24 juin 2008

Apres avoir passée encore plusieurs heures dessus, je me suis rendue compte que, quand je passe ma macro dans un xla et que je lie cette macro à un bouton accessible dans la barre de menus, ce st toutes les lignes de codes portant sur la mise forme des cellule qui posent pb ( comme la fusion, la mise en gras, la couleur etc etc)
Si je met en commentaire toutes ces lignes, ma macro fctnne sans probleme......
Quelqu'un aurait-il deja rencontré ce pb?

D'avance merci !

Givrinie