Bonjour,
avant toute chose je voudrais préciser que je ne sais pas coder en vba, je fais un peu de sql, donc si vous savez répondre à ma question, merci d'être très explicite
J'ai un onglet d'un fichier excel que je voudrais enregistrer en .csv. Sur cet onglet, il y a un filtre qui vient cacher certaines lignes. Si je fais directement "enregistrer sous", le csv prend toutes les lignes de l'onglet, y compris celles cachées par le filtre, ce que je ne veux pas. D'où j'ai pensé qu'il me fallait une macro pour mon enregistrement.
J'ai trouvé sur un autre forum la macro suivante :
Elle fonctionne très bien, tant qu'elle est enregistrée dans le classeur. Or je voudrais pouvoir y avoir accès à partir de n'importe quel classeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 Option Explicit Public Sub Export_CSV() Dim wb As Workbook Dim ws As Worksheet Dim strInitialFilename As String Dim rng As Range Dim myFile Application.ScreenUpdating = False Set wb = ThisWorkbook Set ws = wb.ActiveSheet strInitialFilename = ws.Name & Format(Now, "ddmmyy hhmm") Set rng = ws.Cells(1, 1).SpecialCells(xlCellTypeVisible) If rng.Address = "$A$1" Then ws.Cells(1, 1).CurrentRegion.Copy Else rng.Copy End If Workbooks.Add (xlWBATWorksheet) Worksheets(1).Cells(1, 1).PasteSpecial xlPasteValuesAndNumberFormats Application.CutCopyMode = 0 myFile = Application.GetSaveAsFilename _ (InitialFileName:=strInitialFilename, _ filefilter:="Fichiers csv (*.csv),*.csv", _ Title:="Enregistrer fichier csv") If myFile = False Then ActiveWorkbook.Close False Exit Sub End If ActiveWorkbook.SaveAs myFile Set rng = Nothing: Set ws = Nothing: Set wb = Nothing End Sub
J'ai essayé de l'enregistrer dans personal.xlsb, mais quand je la lance depuis la bibliothèque, le fichier csv obtenu est vide.
J'ai essayé de l'enregistrer en complément excel export_csv.xlam et là j'ai une erreur de compilation, la 91, sur la ligne :
Quelqu'un aurait-il une idée pour résoudre ce problème car je voudrais ensuite pouvoir copier la macro sur d'autres postes de travail ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part strInitialFilename = ws.Name & Format(Now, "ddmmyy hhmm")
Merci beaucoup !
Partager