VBA pour exporter en csv qui génère des virgules
Salut tout le monde,
J'ai un fichier excel avec 1000 lignes qui ont une formule qui est soit =si(Validation!A2<>"";Validation!A2;"") en colonne A et =si(A2<>"";maintenant();"") en colonne C
J'ai fait 1000 lignes avec ça car je ne sais pas a l'avance combien de lignes pleines j'aurai dans l'onglet Validation
Pour exporter automatiquement mon fichier en csv, j'ai fait, avec de l'aide, une macro comme suit.
Le csv généré a quand même des ",," a pratir de la première cellule "vide" et jusqu'à la ligne 1000
Une idée de comment faire ?
Je peux envoyer un fichier si nécessaire, mais ça m'arrange si je n'ai pas besoin d'anonymiser ce fichier ^^
Merci d'avance !
Sub Exportresultats()
'replace automatic date and time by fixed values
Columns("A:C").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select
'Save active file
ActiveWorkbook.Save
'get the name of the file
Sheets("Variables formules").Select
Dim Name As String
Name = Range("C3").Value & ".csv"
'delete empty cells
Sheets("Export résultat").Select
Dim c As Range, r As Range
Dim rsupplier As Variant
vide = ""
For Each c In Range("A1:C1000")
If c.Value = vide Then
If r Is Nothing Then
Set r = c
Else
Set r = Union(r, c)
End If
End If
Next c
On Error Resume Next
r.Select
On Error Resume Next
r.Clear
Range("A1").Select
'save file
Sheets("Export résultat").Select
ActiveWorkbook.SaveAs Name, FileFormat:=xlCSV _
, CreateBackup:=False
End SubBonjour cossinelle
Une idée de comment faire ?
Oui, supprimer toutes les formules qui concerne des valeurs vides
Car pour Excel, même si le contenu est vide, c'est du contenu.... donc des valeurs séparées par des virgules
@+
Bonjour BrunoM45,
C'est normalement ce que fait ma macro avant d'enregistrer en csv...
Mais je génère 1 à 5 fichiers de ce genre par jour et des gens non initiés a l'informatique doivent l'utiliser, donc un gros bouton qui fait tout est a peu près le seul moyen que le fichier ne crash pas tous les jours ^^
Re,
Effectivement... mais bof
Si ta feuille Validation ne contient que des valeurs, essayes ce code tout simple
Sub ExportResultats()
Dim Name As String, sPath As String
Dim dLig As Long
sPath = ThisWorkbook.Path & "\"
Name = Sheets("Variables formules").Range("C3").Value & ".csv"
' Copier la feuille dans un nouveau classeur
Sheets("Validation").Copy
' Inscrire la date du jour en colonne C
With ActiveSheet
dLig = .Range("A" & Rows.Count).End(xlUp).Row
.Range("C2:C" & dLig).Value = Now()
End With
' l'exporter au format CSV
ActiveWorkbook.SaveAs sPath & Name, FileFormat:=xlCSV, CreateBackup:=False
End Sub@+