Bonjour,
Je galère un peu.
j'ai trouvé beaucoup d'info pour l'instant, mais maintenant je sèche.
Ce que je veux faire
1 ouvrir le fichier
2 copier le contenu dans le fichier principale
3 sauvegarder le fichier source dans un autre dossier
4 supprimer le fichier source.
et ce jusqu'à ce qu'il n'y ait plus de fichier.
donc voici mon code.
il plante lorsque le dossier est vide
Je galère un peu.
j'ai trouvé beaucoup d'info pour l'instant, mais maintenant je sèche.
Ce que je veux faire
1 ouvrir le fichier
2 copier le contenu dans le fichier principale
3 sauvegarder le fichier source dans un autre dossier
4 supprimer le fichier source.
et ce jusqu'à ce qu'il n'y ait plus de fichier.
donc voici mon code.
il plante lorsque le dossier est vide
Code:
Sub pros()
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'SUIVI PROS
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'déclaration des variables XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'lien "modulation pros"
bddpros = "chemin\"
Dim Ligne As Integer
'Définition de la variable, ici, dernière ligne de la colonne A
Ligne = Range("B65536").End(xlUp).Row
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'XXXXXXXXXXXXXXXXXXXX M XXXXXXXXXXXXXX
'ouverture du fichier si existant
If Dir("chemin\fichier*.csv") <> "" Then
nomFic = "chemin\fichier*.csv"
If nomFic <> False Then
Dim Fich As String
Fich = Dir("chemin\fichier*.csv")
Do While nomFic <> ""
Workbooks.OpenText Filename:="chemin\fichier*.csv", DataType:=1, Semicolon:=True, local:=True
Fich = Dir
'récupérer la date du fichier
txt = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 5)
période = Right(txt, Len(txt) - 22)
save = bdd & période
nomFic = save & ".xls"
ficor = ActiveWorkbook.Name
Ligne = Range("B65536").End(xlUp).Row
'ajout d'une colonne
Columns("A:A").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
'nommer colonne A
Range("A1").Select
ActiveCell.FormulaR1C1 = "période"
'nommer les lignes de la colonne A jusqu'à la dernière ligne
Range("A2:A" & Ligne).Value = DateSerial(Left$(période, 4), Right$(période, 2), 1)
'mise en forme de la colonne A
Range("A2:A" & Ligne).NumberFormat = "[$-40C]mmmm-yyyy;@"
'renommer la feuille
ActiveSheet.Name = période
'enregistrer sous
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=bddpros & save, FileFormat:=xlExcel8, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
Application.DisplayAlerts = True
'copier/coller dans tableau de bord
Sheets(période).Select
Range("A2:Z2063").Select
Application.CutCopyMode = False
Selection.Copy
Windows("tableau de bord.xls").Activate
Sheets("BDDPROS").Select
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
'fermeture du fichier d'origine
Application.DisplayAlerts = False
Windows(nomFic).Close
Application.DisplayAlerts = True
'suppression des fichiers si existant
If Dir("chemin\fichier*" & période & "*") <> "" Then
nomFic = "chemin\fichier*" & période & "*"
If nomFic <> False Then
Dim Fic As String
Fic = Dir("chemin\fichier*" & période & "*")
Do While Fic <> ""
Kill "chemin\fichier*" & période & "*"
Fic = Dir
Loop
End If
End If
Loop
End If
End If
End Sub
Dernière édition: