Sauvegarder dans un répertoire variable

Eve-Line

XLDnaute Nouveau
Bonjour,

Bon je sais que beaucoup de questions sont déjà solutionnées sur ce forum, mais il y en a tellement que je ne m'y retrouve plus :(

J'essaye de formater un fichier source type .csv et une fois le fichier formaté correctement, je voudrais le sauvegarder sous format .xls dans un dossier bien spécifique, mais qui change tous les mois vu que c'est un rapport mensuel. Voici mon code pour le moment (j'ai omis toutes les lignes correspondant au formatage pour alléger):

Sub Cleanup()
'
' Cleanup Macro
' Macro recorded 16/01/2009 by Eve-Line Humbert
'
' Keyboard Shortcut: Ctrl+Shift+C
'
Extension = ".xls"
fichier = "gebstr" & Format(Date, "yyyymm") & Extension
chemin = "H:\algemeen\Klantenmanagement\Gebiedsoptimalisatie\2009\" & Mois & "\"
Mois = Format(Date, "mmmm")

(code formatage)

ActiveWorkbook.SaveAs Filename:=chemin & fichier, FileFormat:=xlNormal

End sub

Lorsque je lance le debugger, au premier passage (touche F8), le chemin affiche: "H:\algemeen\Klantenmanagement\Gebiedsoptimalisatie\2009\\"

si je défile une deuxième fois utilisant la touche F8 le chemin apparait correctement, càd : "H:\algemeen\Klantenmanagement\Gebiedsoptimalisatie\2009\februari\" et là ça marche.... alors comprends pas où je fais faux.

Est-ce que quelqu'un a une idée?

Merci d'avance!!
 

Eve-Line

XLDnaute Nouveau
Re : Sauvegarder dans un répertoire variable

Bon... je me permet d'en rajouter une couche... Je ne comprends rien au format excel je crois...... Cette macro me permet de nettoyer mon fichier: enlever les espaces, mettre les chiffres en format compta où nécessaire etc..... Mais à l'arrivée tout ne s'affiche pas correctement quand je passe du format .csv au format .xls

Est-ce que quelqu'un sait à quoi cela tien? Je suis aller voir dans notepad par curiosité..... et j'ai pris peur !

Encore une fois merci de toute l'aide apportée. Ce forum est une mine d'or!
 

Eve-Line

XLDnaute Nouveau
Re : Sauvegarder dans un répertoire variable

Désolée pour la lenteur de réaction.... j'ai dû aller à une réunion qui ne devais pas être trop longue.... J'ai coupé les données car un peu confidentielles... mais voilà une partie du fichier .csv. en gros:

- Tous les espaces superflus doivent disparaitre: j'utilise une fonction Trim pour cela dans ma macro

- tous les "." doivent devenir des "," pour avoir des chiffres qui se comportent comme des chiffres

- les colones D, M, N, et O doivent passer au format compta style € 0.000,00

- la colone E doit passer en chiffre sans décimale

- Les colones F, G, H, I, & J doivent passer au format %

Ma macro modifie bien tout les format, mais ça n'apparait pas à l'affichage.

quand j'ouvre mon fichier dans notepad ça donne plein de caractères spéciaux mais je n'arrive pas à mettre l'impression d'écran que j'ai faite en pièce jointe...

En tous cas merci d'avance pour tout!
 

Pièces jointes

  • gebstr200901test.xls
    14 KB · Affichages: 90

Eve-Line

XLDnaute Nouveau
Re : Sauvegarder dans un répertoire variable

Les formats compta ne s'affichent pas bien. Lorsque j'ouvre le fichier dans exel après formatage, les chiffres dans les colones D M N & O apparaissent parfois en format compta, parfois non formaté. Pour les cellules qui apparaissent inchangées, lorsque je clique sur la cellule pour l'éditer mais sans rien modifier j'appuie sur "enter" et là l'affichage se met à jour. Je ne sais pas si ce que je dit est clair ou non mais comme je ne comprend pas moi même tous les tenants et aboutissants j'ai du mal à m'exprimer.....
 

Eve-Line

XLDnaute Nouveau
Re : Sauvegarder dans un répertoire variable

Je n'arrive pas à changer l'extension... Je n'ai pas le profil admin pour mon ordi et je suis pas fan de windows :/ J'ai donc zippé le fichier en espérant que cela suffise.

J'ai créé ma macro en utilisant "outils - macro - enregistrer une nouvelle macro" pour commencer, puis j'ai essayé de l'améliorer un peu avec qques trucs et astuces trouvés ici. Voilà mon code complet:

Sub Cleanup()
'
' Cleanup Macro
' Macro recorded 16/01/2009 by Eve-Line Humbert
'
' Keyboard Shortcut: Ctrl+Shift+C
'
Extension = ".xls"
fichier = "gebstr" & Format(Date, "yyyymm") & Extension
Mois = Format(Date, "mmmm")
chemin = "H:\algemeen\Klantenmanagement\Gebiedsoptimalisatie\2009\" & Mois & "\"


' Call Trim

ActiveSheet.UsedRange.Columns.Select
Selection.Find(What:=".", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Cells.Select
Cells.EntireColumn.AutoFit
Range("L:L,O:O,W:Z").Select
Selection.NumberFormat = "#,##0 $"
Columns("M:M").Select
Selection.NumberFormat = "0"
Columns("P:p").Select
Selection.NumberFormat = "0%"
Range("S:S,T:T,U:U,V:V").Select
Selection.Insert Shift:=xlToRight
Range("S1").Select
ActiveCell.FormulaR1C1 = "=RC[-1]"
Range("S2").Select
ActiveCell.FormulaR1C1 = "=RC[-1]/100"
Range("S2").Select
Selection.Copy
Range("S583").Select
Range(Selection, Selection.End(xlUp)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Columns("S:S").Select
Selection.Copy
Range("U1").Select
ActiveSheet.Paste
Range("W1").Select
ActiveSheet.Paste
Range("Y1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("R:R,T:T,V:V,X:X").Select
Selection.Delete Shift:=xlToLeft
Columns("R:U").Select
Selection.NumberFormat = "0%"
Columns("R:U").EntireColumn.AutoFit
Range("A2").Select
ChDir "H:\algemeen\Klantenmanagement\Gebiedsoptimalisatie\2009\rapport"
ActiveWorkbook.SaveAs Filename:=chemin & fichier, FileFormat:=xlNormal


End Sub

Il y a certainement moyen de racourcir tout ça, mais comme je ne connais pas bien VBA je tatone encore. Les colones citées dans le code risque de ne pas tout à fait correspondre car j'en ai effacé qques unes (confidentialité)

Encore merci pour toute l'aide
 

Pièces jointes

  • gebstr200901testcsv.zip
    597 bytes · Affichages: 20

Eve-Line

XLDnaute Nouveau
Re : Sauvegarder dans un répertoire variable

J'ai l'impression que mon problème est lié à la décimale. Je remplace les points dans le fichier csv en virgule pour obtenir du numérique mais cela ne fonctionne peut être pas? Ou devrais-je plutôt utiliser un code ASCII pour être certaine que ce soit une virgule décimale et non texte?

Sub Cleanup()

ActiveSheet.UsedRange.Columns.Select
Selection.Find(What:=".", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

 

Discussions similaires

Statistiques des forums

Discussions
312 291
Messages
2 086 842
Membres
103 399
dernier inscrit
Tassiou