Bonjour,
en cherchant un peu sur les forums, j'ai trouvé une personne qui a écrit ce bout de code :
Sub test()
Application.DisplayAlerts = False
Sheets(Array("Agence ALSACE", "Agence ALSACE (2)", "Agence ALSACE (3)")).Copy
ActiveWorkbook.SaveAs "N:\Litiges\Test Automat\Litiges Agence ALSACE.xls"
ActiveWorkbook.Close False
Sheets(Array("Agence Champagne Ardennes", "Agence Champagne Ardennes (2)", "Agence Champagne Ardennes (3)")).Copy
ActiveWorkbook.SaveAs "N:\Litiges\Test Automat\Litiges Agence Champagne Ardennes.xls"
ActiveWorkbook.Close False
Sheets(Array("Agence Grand EST", "Agence Grand EST (2)", "Agence Grand EST (3)")).Copy
ActiveWorkbook.SaveAs "N:\Litiges\Test Automat\Litiges Agence Grand EST.xls"
ActiveWorkbook.Close False
Application.DisplayAlerts = True
End Sub
Ce code est presque parfait pour moi à 4 exceptions Près :
1 - si j'ai plus (ou moins de 3 onglets) à placer dans le fichier cible, la requete ferme automatiquement le fichier excel qui genere la macro et stoppe l'execution.
J'ai essayé de placer un "on error resume next", mais je pense que je ne suis pas assez aguéri au VBA pour que cela fonctionne. Je souhaiterais donc savoir si il existe un moyen de faire continuer l'execution de la macro si il y a cette erreur.
2 - je souhaiterais conserver la mise en forme du fichier source (format des colonnes) lors de la création des fichiers cibles, car le format est standard au niveau des colonnes.
3 - ces feuilles etant des tableaux croisés dynamiques de france filtrés sur une agence, comment pourrais je bloquer l'accès aux données qui ne concernent pas l'agence. (il faudrait un Save as en valeur si ca existe). j'ai tenté un protégé cellule (hors VBA) et cela ne regle le pb.
4 - je travaille sous excel 2007 et lorsque je crée les fichiers en .xls ou .xlsx, les utilisateurs d'excel 2003 ouvrent soit un classeur illisible ou ne peuvent pas ouvrir le classeur du tout.
Je sais que je demande Beaucoup, mais c'est frustrant d'etre à la fois proche du but et si loin de ce meme but.
merci d'avance.
en cherchant un peu sur les forums, j'ai trouvé une personne qui a écrit ce bout de code :
Sub test()
Application.DisplayAlerts = False
Sheets(Array("Agence ALSACE", "Agence ALSACE (2)", "Agence ALSACE (3)")).Copy
ActiveWorkbook.SaveAs "N:\Litiges\Test Automat\Litiges Agence ALSACE.xls"
ActiveWorkbook.Close False
Sheets(Array("Agence Champagne Ardennes", "Agence Champagne Ardennes (2)", "Agence Champagne Ardennes (3)")).Copy
ActiveWorkbook.SaveAs "N:\Litiges\Test Automat\Litiges Agence Champagne Ardennes.xls"
ActiveWorkbook.Close False
Sheets(Array("Agence Grand EST", "Agence Grand EST (2)", "Agence Grand EST (3)")).Copy
ActiveWorkbook.SaveAs "N:\Litiges\Test Automat\Litiges Agence Grand EST.xls"
ActiveWorkbook.Close False
Application.DisplayAlerts = True
End Sub
Ce code est presque parfait pour moi à 4 exceptions Près :
1 - si j'ai plus (ou moins de 3 onglets) à placer dans le fichier cible, la requete ferme automatiquement le fichier excel qui genere la macro et stoppe l'execution.
J'ai essayé de placer un "on error resume next", mais je pense que je ne suis pas assez aguéri au VBA pour que cela fonctionne. Je souhaiterais donc savoir si il existe un moyen de faire continuer l'execution de la macro si il y a cette erreur.
2 - je souhaiterais conserver la mise en forme du fichier source (format des colonnes) lors de la création des fichiers cibles, car le format est standard au niveau des colonnes.
3 - ces feuilles etant des tableaux croisés dynamiques de france filtrés sur une agence, comment pourrais je bloquer l'accès aux données qui ne concernent pas l'agence. (il faudrait un Save as en valeur si ca existe). j'ai tenté un protégé cellule (hors VBA) et cela ne regle le pb.
4 - je travaille sous excel 2007 et lorsque je crée les fichiers en .xls ou .xlsx, les utilisateurs d'excel 2003 ouvrent soit un classeur illisible ou ne peuvent pas ouvrir le classeur du tout.
Je sais que je demande Beaucoup, mais c'est frustrant d'etre à la fois proche du but et si loin de ce meme but.
merci d'avance.