Màj de tableaux depuis une BDD

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 :

11bdd-maj-v001.xlsm (42.23 Ko)

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) 
Rechercher des sujets similaires à "maj tableaux bdd"