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 :
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
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.
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 strInitialFilename = ws.Name & Format(Now, "ddmmyy hhmm")
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 ?

Merci beaucoup !