je pense que je suis toujours aussi mauvais en VBA ou macro dans Excel ;-)
Alors je vais tout de même essayer d'être clair.
J'ai un 1er fichier dans lequel j'ai un onglet qui se nomme "contrôle niveau 1". Ce fichier, qui va être toujours nouveau (utiliser pour chaque nouveau dossier) à d'autre onglet (mais peu importe, je pense). Dans les fichiers joints, je l'ai appelé " controle.xlsx" (le fichier réel est en xlsm).
les cellules 2 à 11 se complètent automatique avec d'autres onglets donc des ="nom de la cellule"
Mon but est de copier de la cellule B2 à B28 l'ensemble des valeurs. ensuite les valeurs doivent se copier dans l'onglet "Fiche" d'une autre feuille qui s'appelle dans mon exemple "ex Q.xlsx". Ce classeur Excel se trouve pour info sur Sharepoint.
En copiant il doit d'abord trouver la 1er colonne vide (colonne E) dans mon ex, et copier l'ensemble des valeurs (et non pas les formules) ci-dessus, à partir de la cellule E4 (dans cet ex mais suivant la 1er colonne vide) jusqu'à E28.
Et le nirvana c'est que cette colonne E qui est vide reprenne aussi la mise en forme de la précédente (donc la D dans mon exemple).
Le fichier "controle.xlsm" peut avoir n'importe quel nom par contre le nom de l'onglet ne change pas.
Le nom du fichier "ex Q.xlsx" ne change pas et son onglet non plus.
enfin j'imagine que ce fichier qui regroupe tous les contrôles des différents bureaux doit obligatoirement être ouvert pour faire fonctionner le bouton avec la macro (dans contrôle.xlsx)
j'espère avoir été suffisamment clair, car moi j'ai du mal à m'y retrouver ;-)
Bonsoir Bidouill,
En PJ un essai.
Une fois écrit ex Q.xlsx est sauvegardé.
Par contre, comme décrit ce nom de fichier ne changeant pas, je l'ai mis en dur dans le code.
Si vous changez d'avis il suffit de changer la ligne de code :
Bonsoir Bidouill,
En PJ un essai.
Une fois écrit ex Q.xlsx est sauvegardé.
Par contre, comme décrit ce nom de fichier ne changeant pas, je l'ai mis en dur dans le code.
Si vous changez d'avis il suffit de changer la ligne de code :
j'ai testé avec les fichiers d'essai et cela fonctionne impécablement.
je viens d'essayer dans mes fichiers réels et là cela ne fonctionne pas.
alors comment j'ai précédé.
dans le fichier avec le bouton j'ai ajouté dans le bon onglet (feuille 29) le bouton. j'ai créé une marco "Copie". en ouvrant VB. dans le module 3 j'ai copié ta macro entre les 2 sub
ensuite j'ai copié public fonction...
j'ai changé le nom ex Q.xlsx.
j'ai affecté la macro Copie au bouton.
après avoir complété mon tableau je clic sur le bouton et j'ai un message d'erreur.
petite précision mais qui n'a rien à voir le fichier ex Q.xlsx à 3 onglets
J'ai oublié la copie de la mise en page de la colonne prend celle de la colonne C mais il faudrait prendre la D car la C est un exemple dans le fichier réel et donc en orange.
Bonjour,
Je ne sais pas si c'est la cause, mais la macro doit être copiée dans un module ( module1,2, ou 3 ça n'a pas d'importance ) mais pas dans une feuille. S'il y a plusieurs feuilles, il suffit que le bouton dans chaque feuille appelle la même macro.
Ensuite lorsqu'il se plante regardez dans la fenêtre espions ce que vaut FichierSource.
Il devrait valoir le nom du classeur ouvert.
Ensuite avez vous appelez dans la feuille la ZoneSource , J'ai ainsi appelé la zone B2:B28 pour la copier plus facilement.
Bonjour,
Je ne sais pas si c'est la cause, mais la macro doit être copiée dans un module ( module1,2, ou 3 ça n'a pas d'importance ) mais pas dans une feuille. S'il y a plusieurs feuilles, il suffit que le bouton dans chaque feuille appelle la même macro.
Ensuite lorsqu'il se plante regardez dans la fenêtre espions ce que vaut FichierSource.
Il devrait valoir le nom du classeur ouvert.
Ensuite avez vous appelez dans la feuille la ZoneSource , J'ai ainsi appelé la zone B2:B28 pour la copier plus facilement.
j'ai cherché un moment avec l'espions mais rien… j'aurais dû lire ta dernière ligne en 1re . le problème venait de là car je n'ai pas donné le nom "ZoneSource" au cellule de B2:B28
par contre dans ex Q.XLSX comment indiqué qu'il faut prendre la mise en forme de la colonne D et non C et il faut impérativement que la copie se fasse dans l'onglet "Fiches", car à l'inverse du fichier exemple (ex Q.xlsx) j'ai 3 onglets en tout.
une dernière chose il faut prendre quelles lignes dans la macro qui indique que le fichier n'est pas ouvert c'est pour l'ajouter dans une autre macro
Bonjour,
Si cela vous arrange vous pouvez remplacer [ZoneSource].Copy par Range("B2:B26").copy
Entre colonne C et Colonne D je ne vois pas de différence de formats, mais bon ce n'était que l'exemple.
Le principal est que tout marche.
Si pb n'hésitez pas.
Bonjour,
Si cela vous arrange vous pouvez remplacer [ZoneSource].Copy par Range("B2:B26").copy
Entre colonne C et Colonne D je ne vois pas de différence de formats, mais bon ce n'était que l'exemple.
Le principal est que tout marche.
Si pb n'hésitez pas.
dans le fichier réel j'ai une autre colonne en C c'est pour ça.
il y a une solution pour être cetain que les infos soient copiées dans l'onglet "Fiches" quand il y a plusieurs onglets?
je dis Génial tout fonctionne parfaitement c'est vraiment super.
si cela ne te dérange pas je vais devoir créer une autre macro je reposterais un nouveau sujet