Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 VBA creation d'un export vers un fichier CSV

looky62

XLDnaute Occasionnel
Bonjour,
Je souhaite créer un fichier csv, à la base d'un copier coller d' un onglet, CAD

Dans un onglet résultat, exporter colonne de B:G l'export vers un fichier qui se créer seul, ici j'ai XXX.csv, mais j'aimerai que le fichier se génére seul, sans avoir avoir mettre un fichier vierge est ce possible?


Sheets("Résultat").Select
Columns("B:G").Select
Selection.Copy
Workbooks.Open Filename:= _
"C:\Users\" & NNI & "\Downloads\MAJ EPI\XXX.csv"
Windows("XXX.csv").Activate
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.Save
Sheets("Feuil1").Select
ThisWorkbook.FollowHyperlink "C:\Users\" & NNI & "\Downloads\MAJ EPI"
'Windows("RapidEpi.xlsm").Activate
' Sheets("TDB").Select
 

vgendron

XLDnaute Barbatruc
euh.. si. tu peux lui dire
1) soit avec une boite de dialogue: celle du "Enregistrer sous"
2) soit dans le code "en dur"
3) soit en disant à la macro d'aller chercher le nom de sauvegarde dans une cellule par exemple.

en fait. je ne comprend pas trop ton pb..

à vrai dire;. comme tu n'as pas mis de fichier exemple, je n'ai pas vraiment regardé ton code
ce que je viens de faire.
du coup. à la place du activeworkbook.save.
il faut peut etre utiliser du saveas (l'enregistreur de macro devrait t'aider)
 

looky62

XLDnaute Occasionnel
Oui pr moi ça serait un code en dur, avec par un exemple un fichier que Excel créerai du fait je ne sais pas trop a part le mettre , je ne sais pas comment faire

"C:\Users\" & NNI & "\Downloads\MAJ EPI\Fichier a creer.csv"
 

looky62

XLDnaute Occasionnel


Sheets("Résultat").Select
Columns("B:G").Select
Selection.Copy
ActiveWorkbook.SaveAs Filename:="C:\Users\" & NNI & "\Downloads\MAJ EPI\Fichier a creer.csv"
FileFormat = xlCSV
CreateBackup = False
 

looky62

XLDnaute Occasionnel
Sur un autre pb, où vous m'aviez bien aidez, j'ai un nv cas de figure où je n'arrive pas a résoudre,

Les 2 cas fonctionnent correctement, j'ai un troisiéme cas où dans onglet a modifier, il ne retrouve aucune référence a ma source, où j'aimerai les isoler ds un nouveau onglet par exemple "Nouveau" comment puis je faire?


Sub PremierCas()
Dim TabSource() As Variant
Dim TabModif() As Variant

With Sheets("A modifier")
TabModif = .Range("A1").CurrentRegion.Value
End With

With Sheets("Source")
TabSource = .Range("A1").CurrentRegion.Value
End With
For i = LBound(TabModif, 1) + 1 To UBound(TabModif, 1)
For J = LBound(TabSource, 1) + 1 To UBound(TabSource, 1)
If TabSource(J, 1) = TabModif(i, 1) Then
TabSource(J, 7) = "O"
End If
Next J
Next i
Sheets("Résultat").Range("A1").Resize(UBound(TabSource, 1), UBound(TabSource, 2)) = TabSource
End Sub



Sub DeuxièmeCas()
Dim TabSource() As Variant
Dim TabModif() As Variant

With Sheets("A modifier")
TabModif = .Range("A1").CurrentRegion.Value
End With

With Sheets("Source")
TabSource = .Range("A1").CurrentRegion.Value
End With
For J = LBound(TabSource, 1) + 1 To UBound(TabSource, 1) 'on met tout à N
TabSource(J, 7) = "N"
Next J
For i = LBound(TabModif, 1) + 1 To UBound(TabModif, 1) 'on ne remet à O que les codes à modifier
For J = LBound(TabSource, 1) + 1 To UBound(TabSource, 1)
If TabSource(J, 1) = TabModif(i, 1) Then
7 TabSource(J, 7) = "O"
End If
Next J
Next i
Sheets("Résultat").Range("A1").Resize(UBound(TabSource, 1), UBound(TabSource, 2)) = TabSource
End Sub
 

vgendron

XLDnaute Barbatruc
Evite de mélanger les sujets dans le même post
pour l'ancien sujet avec un troisième cas, fais juste un up du post initial

pour le sujet de CE post, je ne vois pas trop ce qui cloche. peut etre qu'avec ton fichier exemple.?
 

vgendron

XLDnaute Barbatruc
essaie ceci
VB:
Sub Macro3()

    Sheets("Resultat").Copy 'on copie TOUT l'onglet
    ActiveWorkbook.SaveAs Filename:="C:\Users\" & NNI & "\Downloads\MAJ EPI\Fichier a creer.csv", FileFormat:=xlCSV, CreateBackup:=False 'on le sauvegarde dans un autre fichier enregistré au format csv
    
    Windows("Fichier a creer.csv").Activate 'on passe sur le fichier enregistré (normalement, il est déjà actif)
    Range("A:A").Delete 'on supprime la colonne A

End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…