Erreur sur "find" (Résolu par Mapomme) : insérer valeur retrouvé dans BDD

zebanx

XLDnaute Accro
Bonsoir,

Cette méthode reste encore à largement travailler pour moi.

Ci-joint un petit exemple (récupéré partiellement) pour rechercher dans une BDD mais qui bloque à l'instruction marquée en rouge sans que je ne comprenne pourquoi.

Pourriez-vous SVP m'aider pour la ou les corrections apportées sur ce code ?

Par ailleurs, la recherche sur "find" donne beaucoup de résultats mais si vous avez des exemples (fichiers) ou liens vers des réponses qui seraient rapides à me communiquer et utiles sur le sujet , je suis preneur et vous en remercie aussi par avance.

Bonne soirée
thierry

------
Sub inserer_representants()
Dim numdep As String
Dim col As Variant

Sheets("rech_1").Select
Range("B2").Select
While ActiveCell.Value <> ""
numdep = Left(ActiveCell.Value, 2)
col = Sheets("bdd_1").Range("A2:E11").Find(What:=numdep, LookIn:=xlFormulas, LookAt:=xlWhole).Address
col = Range(col).Column
col = CInt(col)
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = Sheets(1).Cells(1, col).Value
Wend
Range("a2").Select
End Sub
 

Fichiers joints

Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir zebanx,

Essayez avec le code ci-dessous:

VB:
Sub inserer_representants()
Dim numdep As String, col As Long

   With Sheets("rech_1")
      derlig = .Cells(.Rows.Count, "b").End(xlUp).Row
      If derlig >= 2 Then
         On Error Resume Next
         For i = 2 To derlig
            If .Cells(i, "b") <> "" Then
               numdep = Left(.Cells(i, "b"), 2)
               col = 0
               col = Sheets("bdd_1").Range("A2:E11").Find(What:=numdep, _
                     LookIn:=xlValues, LookAt:=xlWhole).Column
               If col > 0 Then .Cells(i, "c") = Feuil4.Cells(1, col).Value
            End If
         Next i
         On Error GoTo 0
      End If
      Application.Goto .Range("a2"), True
   End With
End Sub
 

Fichiers joints

zebanx

XLDnaute Accro
Bonsoir Mapomme.

Merci pour le code et la réactivité.
Il fonctionne parfaitement et pour le nombre de lignes du code, c'est idéal!

Bonne soirée à vous
thierry
 

zebanx

XLDnaute Accro
Re-merci pour les explications sur le fichier et le bouton "hop" qui identifie bien son auteur:D

Je me demandais pourquoi faire un reset "col = 0" en milieu de code, c'est plus clair à présent.
Et j'utilisais peu des lignes comme ".cells (i, "c")", c'est bien (et ça convient bien mieux que activecell.formulaR1C1)

Bonne soirée
thierry
 

Discussions similaires


Haut Bas