|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Fred Inscription : juillet 2006 Messages : 147 ![]() |
Bonjour à tous,
Suite à une modif que j'ai du faire sur un des mes classeur j'ai du rajouter une formule mais maintenant je dois mettre la même formule sur environ 90 classeurs différents. Existe t'il un moyen de le faire "en automatique" via vba ou autre, ou alors est ce que je dois me faire manuellement tous les classeurs ? Précision : tous les classeurs ont la même structure, il disposent de 3 onglets, ma formule doit être mise en B40 sur l'onglet "Reporting". D'avance merci de votre aide. Fred
__________________
Loi des Évolutions synchronisées : Les logiciels deviennent de plus en plus lent, et ceci plus vite que le hardware ne devient plus rapide. |
|
|
00
|
|
|
#2 |
|
Membre actif
![]() Eric Inscription : février 2008 Messages : 439 ![]() |
Perso, j'utiliserai les tutos de Silkyroad dans la FAQ :
1/ 1er tuto sur l'identification des Classeurs dans un répertoire 2/ 2ème tuto sur les fichiers fermés, méthode ADO Je m'explique : je ferais une bouble sur tous les classeurs présents dans ton répertoire, et je les ouvrirai par méthode ADO, je copie/colle (ou j'écris la formule), et je referme le classeur. Avec la méthode ADO, les classeurs ne s'ouvrent pas "physiquement", donc l'opération s'effectue très rapidement.... A+ |
|
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() Hervé Agent Technique Inscription : mars 2009 Messages : 823 ![]() |
Bonjour,
en s'inspirant de la FAQ, tu met tous les fichiers à modifier dans un même dossier. pour l'exemple en "C:\Dossier\". Et le code dans un module standard. Le code boucle sur tous les fichiers ".xls", ouvre le classeur à la feuille "Reporting", et met en B40 la formule "=A1+A2", ferme le classeur en enregistrant les modifications et passe au suivant. Code :
__________________
@+Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.Ou sur si ce n'est pas le cas |
||
|
|
00
|
|
|
#4 |
|
Membre actif
![]() Eric Inscription : février 2008 Messages : 439 ![]() |
Hello rvtoulon,
On dit la même chose ![]() A+ |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Fred Inscription : juillet 2006 Messages : 147 ![]() |
Salut rvtoulon et merci
je viens de faire un test ou deux et c'est nickel. par contre je ne voudrais pas abuser mais j'aurais 2 points : 1/ ma formule est : =NB.SI(B8:B36;"07*") et si je met comme ligne : Range("B40") = "=NB.SI(B8:B36;"07*")" alors j'ai une erreur de "" 2/ Est t'il possible de pousser le collage plus loin, c'est a dire : je dois mettre ces 2 lignes dans mes classeurs en utilisant ta solution Range("A40") = "Client Ardeche:" Range("B40") = "=NB.SI(B8:B36;"07*")" Par contre comment faire pour avoir A40 en gras et aligné à droite, et B40 en normal mais centré Sinon c'est du tout bon, merci énormément. ![]() ![]() Fred
__________________
Loi des Évolutions synchronisées : Les logiciels deviennent de plus en plus lent, et ceci plus vite que le hardware ne devient plus rapide. |
|
|
00
|
|
|
#6 | ||
|
Membre Expert
![]() Hervé Agent Technique Inscription : mars 2009 Messages : 823 ![]() |
Re,
en vba NB.SI = COUNTIF. Bon en utilisant l'enregistreur de macro tu aurais pu trouver tout seul le code. il suffit de le faire une fois et tu recopie ensuite le code dans ta macro. Bon ceci dit, remplace dans le code que j'ai mis plus haut: par : Code :
__________________
@+Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.Ou sur si ce n'est pas le cas |
||
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() Fred Inscription : juillet 2006 Messages : 147 ![]() |
Merci énormement,
En fait je venais de terminer la mise en page avec HorizontalAlignment et font.bold (que j'ai trouvé dans l'aide) Par contre je n'avais pas pour la modif de NB.SI Qu'appelle tu enregistreur de macro ?
__________________
Loi des Évolutions synchronisées : Les logiciels deviennent de plus en plus lent, et ceci plus vite que le hardware ne devient plus rapide. |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Hervé Agent Technique Inscription : mars 2009 Messages : 823 ![]() |
Je ne sais qu'elle est ta version d'excel 2007 ou 2003 mais si j'ai bonne mémoire dans excel 2003 tu vas dans le menu outils puis dans Macro et tu choisis Enregistrer une macro.
Une fenêtre va s'ouvrir il va te demander de donner un nom a ta macro, par défault elle s'appelle Macro1 et tu clic sur OK. A partir de là toute les manips que tu vas faire seront enregistrées dans la macro sous forme de ligne code. Pour finir tu appuis sur le bouton stop de la barre d'outils et la macro est réalisée. Ensuite tu vas dans l'éditeur vba et tu regardes le code qui a été généré. C'est pratique mais après il faut faire "le ménage dans le code" en enlevant tout ce qui n'est pas nécessaire.
__________________
@+Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.Ou sur si ce n'est pas le cas |
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Fred Inscription : juillet 2006 Messages : 147 ![]() |
Merci,
je vais m'y mettre et puis c'est comme ca qu'on progresse. Pour ma version je suis sous excel 2010 x64 avec win 7 x64.. Voilà. Par contre, j'ai utilisé et mis en fonctionnement tes conseils et ca marche nickel.. Alors encore merci. ![]() ![]() Merci pour ton aide Amicalement Fred
__________________
Loi des Évolutions synchronisées : Les logiciels deviennent de plus en plus lent, et ceci plus vite que le hardware ne devient plus rapide. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com