1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| Option Explicit
Sub AutresEtats() 'ouvrir un csv , modifier et l'enregistrer en excel
Const sep = ";" ' séparateur cellules
Dim CH As String 'déclare la variable CH (CHemin d'accès)
Dim CH2 As String 'déclare la variable CH2 (chemin d'enregistrement)
Dim F As String 'déclare la variable F (Fichier cvs)
Dim nom As String
Dim ND As String 'déclare la variable du nom de fichier code + libellé
Dim cel As Range, tbd
Dim nomfeuille As String
Dim DerCol As Integer
nom = Day(Date) & "-" & Month(Date) & "-" & Year(Date)
CH = "U:\PUBLIC\COMMUN\CIGAP\ETATS\MISE A DISPO DES ETATS\"
CH2 = "U:\PUBLIC\COMMUN\CIGAP\ETATS\MISE A DISPO DES ETATS\ETATS _ AUTRES\"
F = Dir(CH & "*.csv") 'définit le premier fichier .csv du dossier ayant CH comme chemin d'accès
'***************************BOUCLE SUR TOUS LES FICHIERS CSV DU REPERTOIRE ********************************************
Do While F <> "" 'boucle tant qu'il existe des fichiers .csv
Workbooks.Open CH & F 'ouvre le fichier F
For Each cel In ActiveSheet.UsedRange.Cells
tbd = Split(cel & sep, sep)
cel.Resize(1, UBound(tbd)).Value = tbd
Next cel
DerCol = Cells(2, Columns.Count).End(xlToLeft).Offset(, 1).Select
'ajouter deux colonnes en fin de fichie : "DATE" et "COMMENTAIRES"
ActiveCell.FormulaR1C1 = "Commentaires"
ActiveCell.Offset(, 1).Select
ActiveCell.FormulaR1C1 = "Date"
nomfeuille = Sheets(1).Name
Sheets(1).Select
Range("cv1").Formula = nomfeuille 'récupérer le nom de l'état sur l'onglet
Range("cw1").Select
ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],4)" 'récupérer les 4 premiers caractères > code de l'état
Range("CX1").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-1],'[TRI ET REPARTITION ETATS.xlsm]Liste etats SURF'!R1C1:R261C2,2,)" ' Récupérer le libellé de l'état
Range("CY1").Select
ActiveCell.FormulaR1C1 = "=CONCATENATE("" ""&RC[-1])"
Range("a1").Select
ND = Range("Cy1").Value 'nom de l'état : code + libellé
ActiveWorkbook.SaveAs Filename:=CH2 & nom & ND & ".xlsx", FileFormat:=xlOpenXMLWorkbook 'enregistre le fichier au format Excel
ActiveWorkbook.Close 'ferme le fichier
F = Dir 'définit le prochain fichier .csv
Loop 'boucle
' ************************************* recherche des fichiers csv pour les supprimer******************************
F = Dir(CH & "*.csv") 'définit le premier fichier .csv du dossier ayant CH comme chemin d'accès
Do While F <> ""
Kill "U:\PUBLIC\COMMUN\CIGAP\ETATS\MISE A DISPO DES ETATS\" & F
F = Dir
Loop
MsgBox "Traitement terminé pour tous les état 'autres' ", vbInformation, "____________________ Etat SURF _________________________ "
End Sub |
Partager