Sub ImporteDatas()'
Application.ScreenUpdating = False ' Affichage des action de la macro OFF
'
FichierAimporter = Application.GetOpenFilename
If FichierAimporter = False Then Exit Sub
FormulaireWAIT.StartUpPosition = 1 ' Formulaire pour affichage message d'attente
FormulaireWAIT.Show 0
' Efface les précédentes données
Sheets("Temporaire").Select
Cells.Select
Selection.ClearContents
Range("A1").Select
'
' Ouverture/copie du fichier à importer
Workbooks.Open Filename:=FichierAimporter
NomCourtFichierAimporter = ActiveWorkbook.Name
Range("A2").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Copy
'
' Colle les données
Windows("ESSN.xlsm").Activate
Sheets("Temporaire").Select
Range("A1").Select
ActiveSheet.Paste
'
' Fermeture fichier à importer
Windows(NomCourtFichierAimporter).Activate
Application.CutCopyMode = False
ActiveWindow.Close
'
' Copie des lignes nouvelles
FormulaireWAIT.Repaint
Dim RowDépartData As Long
Dim BoucleLectureTemporaire As Long
Dim BoucleTemp As Long
Dim LectureTemporaire As String
Sheets("Datas").Select
'
RowDépartData = Range("A1").End(xlDown).Offset(1, 0).Row ' 1ère ligne vide dans Datas
Sheets("Temporaire").Select
BoucleLectureTemporaire = Range("A1").End(xlDown).Row ' Boucle = Nbre de lignes dans Temporaire
DébutBoucle:
For BoucleTemp = 1 To BoucleLectureTemporaire
On Error Resume Next
Sheets("Temporaire").Select
LectureTemporaire = Cells(BoucleTemp, 3).Value
x = Application.WorksheetFunction.VLookup(LectureTemporaire, Worksheets("Datas").Range("C:C"), 1, False)
If Err.Number = 0 Then ' La valeur existe
Resume Next
Else ' La valeur est nouvelle
Sheets("Temporaire").Select
Rows(BoucleTemp).Copy
Sheets("Datas").Select
Rows(RowDépartData).Select
ActiveSheet.Paste
RowDépartData = RowDépartData + 1
End If
On Error GoTo DébutBoucle
Next
Unload FormulaireWAIT
Application.ScreenUpdating = True ' Affichage des action de la macro ON
End Sub