Macro enregistrement sous CSV plage de données
Bonjour à tous,
Mon objectif est de simplifier l'ajout de pièces dans mon logiciel d'imbrication de tôles (logitole v5). Pour cela je dois exporter mes plage de cellules au format CSV UTF-8 (avec le séparateur virgule). Il faudrait qu'au final je me retrouve avec un fichier tel que celui ci :
La première colonne correspond à la quantité totale (quantité unitaire de "ETAGERE " x nombre meuble à fabriquer ) ; la 2ème et 3ème colonnes correspondent à la longueur et la largeur ; la 4ème correspond au positionnement de la pièce (est ce que le logiciel à le droit de tourner la pièce ou pas) ; enfin la 5ème est le nom de la pièce.
Pour information : la virgule sur la première ligne est obligatoire et il n'en faut qu'une seule sinon mon logiciel ne comprend pas.
Je souhaiterais pour ça créer une macro qui enregistre une certaine plage de données de ma feuille excel sous CSV UTF-8. J'aimerais que cette macro me propose le dossier dans lequel je souhaite enregistrer ce fichier csv.
J'ai déjà essayé d'enregistrer une macro mais ça ne me donne pas grand chose, et de plus je n'arrive pas à avoir cette virgule sur la première ligne.
Pouvez vous svp m'aider à réaliser cette macro ? Je joins également le fichier excel pour exemple.
Je vous remercie
Mathieu
Bonjour Mathieu,
une proposition avec les remarques suivantes :
La plage contenant les informations concernées est nommée PLAGE_RANGE. Vous adapterez dans votre feuille et le code VBA si vous choisissez un autre nom.
Pour le choix du dossier et du fichier, 2 possiblités :
1- (en commentaire dans le code)
Sélection par boite de dialogue , pas de valeur par défaut. Pour votre choix, renseignez RepParent.
Pour le nom du fichier, je n'ai rien fait de particulier, pour votre choix, renseignez NomFichier actuellement "\nomfichier.csv"
2-
Sélection du fichier (et donc du dossier par boite de dialogue) , pas de valeur par défaut. Le fichier doit exister, il sera écrasé.
Le code pour activer l'une ou l'autre des possibilités de choix
Sub EcrireCSV()
Dim NomDossier As String
Dim NomFichier As String
'NomDossier = ChoixDossier()
'NomFichier = "\nomfichier.csv"
'EcrireDansFichierCSV NomDossier & NomFichier
NomFichier = ChoixFichier()
If NomFichier <> "" Then EcrireDansFichierCSV NomFichier
End SubLa Macro à lancer : EcrireCSV
Et le code pour positionner vos valeurs par défaut
Function ChoixFichier() As String
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.InitialFileName = "C:\Users\maths32\Downloads\"
.AllowMultiSelect = False
.Filters.Add "Images","*.csv", 2
.FilterIndex = 2
.Show
On Error Resume Next
ChoixFichier = .SelectedItems.Item(1)
On Error GoTo 0
End With
End FunctionAvec une rectification du code précédent