Bonjour,
Étant très peu connaissant en VBA Excel, j’ai besoin d’aide d’experts pour solutionner mon besoin. Je remercie donc à l’avance celui ou ceux qui prendront de leur précieux temps et expertise pour m’aider !
J’arrive à prendre une plage de cellule d’une Feuille et les copier dans un nouveau classeur dans cette même plage, puis en faire un fichier CSV mais ce dernier contient plusieurs cellules (lignes) non désirées avec plusieurs virgules continues ainsi que des données séparées par plusieurs virgules non désirées
Je veux donc sélectionner les cellules non contiguës et les copier dans le nouveau classeur à partir de "A1" en s’assurant que les cellules d’une même ligne demeurent sur cette même rangée et qui seront séparées que par une seule virgule dans le CSV, donc, sans virgule indésirables séparant les datas.
Ex. : Range("B1:L7,F10:H11,I10:J11,K10:L11,C26:J26") à copier comme ceci :
B1 :L7 (cellules fusionnées) à copier dans A1
F10 :H11 (cellules fusionnées) à copier dans A2, I10 :J11 (cellules fusionnées) à copier dans B2, K10 :L11 (cellules fusionnées) à copier dans C2
C26 :J26 (plage cellules individuelles) à copier dans A3
Voici le code que j’ai actuellement qui fonctionnait si je copiais de plage à plage :
Merci beaucoup !
Étant très peu connaissant en VBA Excel, j’ai besoin d’aide d’experts pour solutionner mon besoin. Je remercie donc à l’avance celui ou ceux qui prendront de leur précieux temps et expertise pour m’aider !
J’arrive à prendre une plage de cellule d’une Feuille et les copier dans un nouveau classeur dans cette même plage, puis en faire un fichier CSV mais ce dernier contient plusieurs cellules (lignes) non désirées avec plusieurs virgules continues ainsi que des données séparées par plusieurs virgules non désirées
Je veux donc sélectionner les cellules non contiguës et les copier dans le nouveau classeur à partir de "A1" en s’assurant que les cellules d’une même ligne demeurent sur cette même rangée et qui seront séparées que par une seule virgule dans le CSV, donc, sans virgule indésirables séparant les datas.
Ex. : Range("B1:L7,F10:H11,I10:J11,K10:L11,C26:J26") à copier comme ceci :
B1 :L7 (cellules fusionnées) à copier dans A1
F10 :H11 (cellules fusionnées) à copier dans A2, I10 :J11 (cellules fusionnées) à copier dans B2, K10 :L11 (cellules fusionnées) à copier dans C2
C26 :J26 (plage cellules individuelles) à copier dans A3
Voici le code que j’ai actuellement qui fonctionnait si je copiais de plage à plage :
VB:
Sub CSV_En()
Sheets("Source").Select
' Range("A1:M38").Select
' Range("A1:M38").Copy Plage copiée qui fonctionnait
Range("B1:L7,F10:H11,I10:J11,K10:L11,C26:J26").Select
Range("B1:L7,F10:H11,I10:J11,K10:L11,C26:J26").Copy
Workbooks.Add
ActiveSheet.Range("A1").PasteSpecial (xlPasteValuesAndNumberFormats)
Application.CutCopyMode = False
fname = Application.GetSaveAsFilename(InitialFileName:="C:\Bureau\TEST_En_" & Year(Date) & "-" & Right("0" & Month(Date), 2) & "-" & Right("0" & Day(Date), 2), FileFilter:="CSV (Comma delimited) (*.csv), *.csv", Title:="Save As")
ActiveWorkbook.SaveAs Filename:=fname, FileFormat:=xlCSV
End Sub
Dernière édition: