[code]
Sub Export_CSV()
Dim Fe As Worksheet
Dim Plage As Range
Dim Cel As Range
Dim Tbl() As String
Dim Ligne As String
Dim Dossier As String
Dim Chemin As String
Dim Fichier As String
Dim I As Long
Dim J As Long
Dossier = "C:\Users\paul.fabre\OneDrive\INTERFACE\CSV\" '<--- chemin à adapter !
'nom du fichier avec la date du jour
Fichier = "UPISA" & " " & Format(Now, "dd-mm-yyyy") & ".csv"
'full path
Chemin = Dossier & Fichier
'si clic sur "Non", fin ddu programme
If MsgBox("Voulez-vous créer le fichier '" & Fichier & "' qui sera stocké dans le dossier '" & Dossier & "'?", vbQuestion + vbYesNo, "Fichier .CSV") = vbNo Then Exit Sub
'adapter le nom de la feuille à exporter
Set Fe = Worksheets("ELEMENTS")
'défini la plage sur toute la feuille à exporter
Set Plage = DefPlage(Fe, 1, 1)
' Met un NULL a la place d'un emplacement vide dans le CSV ( Esthetique)
' ActiveSheet.UsedRange.Cells.Replace what:="", Replacement:="null"
'crée les lignes pour les enregistrements tabulés avec comme séparateur la virgule
For I = 1 To Plage.Rows.Count
For J = 1 To Plage.Columns.Count: Ligne = Ligne & Plage(I, J).Value & ",": Next J
'supprime la , de fin
Ligne = Left(Ligne, Len(Ligne) - 1)
'stocke dans un tableau
ReDim Preserve Tbl(1 To I)
Tbl(I) = Ligne
'pour la suivante
Ligne = ""
Next I
'création du fichier .csv
Open Chemin For Output As #1
For I = 1 To UBound(Tbl): Print #1, Tbl(I): Next I
Close #1
'vérifie que le fichier est bien sur le disque sinon, message d'erreur
If Dir(Chemin) <> "" Then
'message de confirmation
MsgBox "Le fichier '" & Fichier & "' a bien été créé et enregistré dans le dossier '" & Dossier & "' !", vbInformation
Else
MsgBox "Une erreur c'est produite durant la création du fichier .csv !", vbExclamation
End If
End Sub
Function DefPlage(Fe As Worksheet, L As Long, C As Long) As Range
On Error GoTo fin
With Fe
Set DefPlage = .Range(.Cells(L, C), _
.Cells(.Cells.Find("*", .[A1], -4123, , _
1, 2).row, .Cells.Find("*", .[A1], -4123, , _
2, 2).Column))
End With
Exit Function
fin:
Set DefPlage = Nothing
End Function
[code]
Mon code ressemble a ça :) Non il n'y a aucune formule dans les cellules vides