anthooooony
Messages postés28Date d'inscriptionmercredi 1 février 2012StatutMembreDernière intervention17 avril 2013
-
2 févr. 2012 à 18:51
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
2 févr. 2012 à 19:54
Bonjour
J'ai "joué" aux apprentis sorciers en combinant des bouts de script glannées un peu partout.
Quelqu'un pourrait t il m'indiquer si il est possible de simplifier ce code :
En effet, ce code marche pour deux agences, le problème c'est que j'en ai 60, faut il refaire du copier coller ou pensez vous qu'il y a une solution plus simple.
Pour résumer mon code, j'ai un fichier avec au moins 180 fichiers
en général 3 fichiers correspondent à une agence donc j'ai 60 agence.
Agence alsace 1, agence alsace 2, agence alsace 3.
Je reussi à les dispatcher en 1 agence en format xlsx(erreur surtout quand les user on excel 2003..).
il reussi en parallele à enregistrer le doc en .PDF car en partant d une base général j avais des problemes de confidentialité car ils peuvent en filtre de rapport changer le nom de l'agence..
Et l'autre partie du code c'est pour la mise en page..
Ma question est, si je dois rajouter d'autres agences existe t-il un autre moyen que de copier coller les lignes correspondantes aux agences.
Dim i As Integer
With ActiveWorkbook
For i = 1 To Sheets.Count
With Sheets(i).Cells
.Columns.AutoFit
.Rows.AutoFit
End With
Next i
ActiveWorkbook.Worksheets.Select
For Each xworksheet In ActiveWorkbook.Worksheets
xworksheet.Select
Range("F:F").ColumnWidth = 220
Range("F:F").WrapText = True
'Dim i As Integer
With ActiveWorkbook
For i = 1 To Sheets.Count
With Sheets(i).Cells
.Columns.AutoFit
.Rows.AutoFit
End With
Next i
ActiveWorkbook.Worksheets.Select
For Each xworksheet In ActiveWorkbook.Worksheets
xworksheet.Select
Range("F:F").ColumnWidth = 220
Range("F:F").WrapText = True
NHenry
Messages postés15069Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention29 mai 2023158 2 févr. 2012 à 19:44
Bonjour,
Commence par lire le point 2 de ma signature.
Ensuite, retuires tous les Select et autres Activate inutiles.
Tu peux aussi désativer le rafraichissement de la fenêtre avec Application.ScreenUdating (je pense).
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list ---
Mon site
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018219 2 févr. 2012 à 19:54
Bonjour,
Je ne sais pas si j'ai tout compris, mais ... ==>>
Je dirais ceci :
1) savoir se débarrasser de ces "activate" au profit de pointages
2) passer les feuilles (objets, donc) en paramètre
3) si feuilles appartenant à des classeurs différents ===>> chercher une réponse très récente que j'ai faite à propos de l'utilisation d'une macro/fonction/procédure appartenant à un autre classeur.
Telle est ma réponse, à ce stade.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient