Màj de tableaux depuis une BDD
a
Bonjour à tous,
J'ai 4 tableaux à mettre à jour depuis une feuille "BDD"
Ça avance mieux, mais dans un code j'ai l'erreur :
Erreur d'exécution '9':
L'indice n'appartient pas à la sélection.
sur la ligne :
Set Ps = .[D:D].Find(C.Offset(, -3), LookIn:=xlWhole)
Les lignes de code concernées :
Dim Ps As Range
If Application.CountA(.[D:D], C.Offset(, -3)) > 0 Then
'MsgBox "Nombre de " & C.Offset(, -3) & " = " & Application.CountA(.[D:D], C.Offset(, -3))
Set Ps = .[D:D].Find(C.Offset(, -3), LookIn:=xlWhole)
If Not Ps Is Nothing Then
firstAddress = C.Address
Do
Ligne = Ps.Row
' Vérifier si les trois cellules à droite si elles sont vides
If Application.CountA(.Cells(Ligne, 5).Resize(, cln - 1 - 4)) = 0 Then
Exit Do
Else
Set Ps = .[D:D].FindNext(Ps)
End If
Loop While Not Ps Is Nothing And Ps.Address <> firstAddress
Else
L1 = L1 + 1
Ligne = li1
End If
End If
Ce code est utilisé pour trouver les occurrences suivantes possibles s'il existent dans le tableau à mettre à jour.
Parce qu'en utilisant Application.Match avant, elle ne me trouve que la première occurrence :
Ligne = Application.Match(C.Offset(, -3), .[D:D], 0)
If Not IsNumeric(Ligne) Then
L1 = L1 + 1
Ligne = L1
ElseIf Application.CountA(.Cells(Ligne, 8).Resize(, 4)) = 0 Then
Ligne = L1
Else
L1 = L1 + 1
Ligne = L1
End If
Le classeur en PJ :
a
Pour l'erreur d'exécution, j'ai trouvé :
Il faut remplacer LookIn par LookAt dans le code suivant :
FAUX :
Set Ps = .[D:D].Find(C.Offset(, -3), LookIn:=xlWhole)
VRAI :
Set Ps = .[D:D].Find(C.Offset(, -3), LookAt:=xlWhole)