Désolé Phil69970! Il me semble que j'ai mis Résolu, sur ta réponse. Peut-être pas au bonne endroit!
J'ai d'ailleurs soulevé une autre question dans le forum concernant la dernière macro qui coupe et colle les fichiers qui ont été ajoutés. Ce code est la 3° macro du code ci-dessous:
La voici :
J'ai un code qui me permet de copier l'ensemble des fichiers d'un répertoire, de les coller dans un second répertoire et de les effacer du premier.
Si je fais cette manip. à la main et que les fichiers sont déjà présents dans le second répertoire, j'ai un message "Remplacer ou ignorer". Par contre si j'utilise la macro, le code ne réagit pas, que les fichiers que je veux copier soient déjà présents ou pas dans le répertoire de destination.
1° J'aimerais comprendre ce qui entraine ce comportement dans ce code et
2° J'aimerais avoir le code pour une MsGBox m'avertissant que ces fichiers prêts à être collés sont déjà présents.
Voici le code général:
Sub Actua_Rtion_Data()
'Ajout de la feuille RtionProjet_MàJ à RtionProjet_Data
'Requête Mise à jour
If Sheets("Rtionprojet_MàJ").Range("A5") = "Source.Name" Then
' Tableau de destination vide (pas de 1° ligne)
If Range("Ta_RtionProjet_Data").ListObject.DataBodyRange Is Nothing Then
MsgBox "Confirmer la mise à jour de la base", vbOKCancel
'Suppression de la 1° colonne de "Réalisation_MaJ"
Sheets("RtionProjet_MàJ").Select
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
'Remise à blanc de la colonne N°
Range("A:A").Clear
'Copy de RtionProjet_MaJ dans RtionProjet_Data
Sheets("RtionProjet_MàJ").ListObjects("Ta_RtionProjet_MàJ").DataBodyRange.Copy Sheets("RtionProjet_Data").Cells(5, 1)
'Affecter le numéro 1 à la 1° ligne (vide)
Sheets("RtionProjet_Data").Range("A5").Value = 1
'Tableau de destination déjà rempli
Else
Dim ligne As Long
'Numéro de la première ligne vide de la base de données
ligne = Sheets("RtionProjet_Data").Range("A1048576").End(xlUp).Row + 1
'Confirmation et copie de la mise à jour
MsgBox "Confirmer la mise à jour de la base", vbOKCancel
'Suppression de la 1° colonne de "Réalisation_MaJ"
Sheets("RtionProjet_MàJ").Select
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
'Remise à blanc de la colonne N°
Range("A:A").Clear
'Copy de RtionProjet_MaJ dans RtionProjet_Data
Sheets("RtionProjet_MàJ").ListObjects("Ta_RtionProjet_MàJ").DataBodyRange.Copy Sheets("RtionProjet_Data").Cells(ligne, 1)
End If
'Compléter la numérotation
Call RtionProject_NumAuto
' Couper-Coller les Feuilles de Collecte dans le répertoire de sauvegarde
Call RtionProject_MàJ_Sauvegarde
' Gestion du cas où la requête n'a pas été mise à jour
Else
MsgBox "La requête n'a pas été mise à jour!"
Exit Sub
End If
End Sub
Sub RtionProject_NumAuto()
'Poursuite de la numérotation (colonne 1)lors de l'ajout de nouvelles lignes
Dim i As Long, Maxi As Long
With Sheets("RtionProjet_Data").ListObjects("Ta_RtionProjet_Data")
'Recherche du n° existant maximum
Maxi = Application.Max(.ListColumns(1).DataBodyRange)
For i = 1 To .ListRows.Count
If .ListRows(i).Range(1) = "" Then
Maxi = Maxi + 1
.ListRows(i).Range(1) = Maxi
End If
Next i
End With
End Sub
Sub RtionProject_MàJ_Sauvegarde()
'Sauvegarde des mises à jour ajoutées dans C://PACTE_SSE\B-DATA/REALISATIONC1C2\RtionProjet_MaJ dans le sous-répertoire RtionProjet_Sauvegarde
Dim NomFich As String
Dim OldRep As String, NewRep As String
OldRep = "C:\PACTE_SSE\B-DATA\REALISATIONC1C2\RtionProjet_MàJ\"
NewRep = "C:\PACTE_SSE\B-DATA\REALISATIONC1C2\RtionProjet_Sauvegarde\"
NomFich = Dir(OldRep & "*.xlsx", 2)
Do While NomFich <> ""
If (GetAttr(OldRep & NomFich) And vbNormal) = vbNormal Then
FileCopy OldRep & NomFich, NewRep & NomFich
End If
NomFich = Dir()
Loop
' Remise à blanc du sous-répertoire "RtionProjet_MaJ"
Kill ("C:\PACTE_SSE\B-DATA\REALISATIONC1C2\RtionProjet_MàJ\" & "*.xlsx")
'Retour feuille "RtionProjet_Data"
Sheets("RtionProjet_Data").Activate
Range("A1").Select
End Sub[/CODE]