Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 

Pièces jointes

  • code_equiv (représentant).xls
    46 KB · Affichages: 16
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
 

Pièces jointes

  • zebanx- code_equiv (représentant)- v1a.xls
    43 KB · Affichages: 17

zebanx

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

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
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…