Bonjour j'ai besoin d'aide svp
J'arrive pas a trouver une bonne méthode pour mettre à jour ma base de donnée situé dans une feuille excel.
Je dois importer des données et faire ensuite la comparaison à l'aide d'une clés situer dans la colonne A
si clés existe j'écrase pour mettre les nouvelles données sinon je rajoutes la ligne.
Dim derniereligne_1 As Long, derniereligne_2 As Long
Dim colsiteresp_1 As Long, colsiteresp_2 As Long
Dim j As Long
Dim TAB_1()
Dim TAB_2()
'affectation de données de la feuille encours dans un tableau
derniereligne_1 = wsCurrent.Cells(Rows.Count, 1).End(xlUp).Row
colsiteresp_1 = wsCurrent.Cells(5, 1000).End(xlToLeft).Column
ReDim TAB_1(1 To derniereligne_1 - 2, 1 To colsiteresp_1 - 2)
TAB_1 = wsCurrent.Range(wsCurrent.Cells(3, 1), wsCurrent.Cells(derniereligne_1, colsiteresp_1)).value
'J'affecte les données du fichier importer dans un tableau
With wsBdd
derniereligne_2 = .Cells(Rows.Count, 1).End(xlUp).Row
colsiteresp_2 = .Cells(5, 1000).End(xlToLeft).Column
ReDim TAB_2(1 To derniereligne_2 - 2, 1 To colsiteresp_2 - 2)
TAB_2 = Range(.Cells(3, 1), .Cells(derniereligne_2, colsiteresp_2)).value
End With
'je comprare les deux tableaux en utilisant la colonne A comme clés
'Si je trouve la même clés j'écrase la ligne avec les nouvelles informations
'sinon je rajoute une nouvelle ligne dans le TAB_1
For i = 5 To UBound(TAB_2)
For j = 5 To UBound(TAB_1)
If TAB_2(i, 1) <> TAB_1(i, 1) Then
wsBdd.Rows(i).Copy
wsCurrent.Rows(i).Insert CopyOrigin:=xlFormatFromRightOrBelow
wsCurrent.Rows(i).PasteSpecial Paste:=xlPasteValidation, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'Application de la validation (listes déroulantes)
'wsCurrent.Rows(TAB_1(i)).ClearContents
Application.CutCopyMode = False
Else
End If
Next j
Next i