recherchev() en vba qui plante sans raison

  • Initiateur de la discussion Initiateur de la discussion Sebast
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Sebast

XLDnaute Impliqué
Bonjour,

je bute sur un bout de code que j'ai adapté d'un existant
Quand je regarde le code - qui fonctionne avec d'autres données - je n'arrive pas à savoir où ça coince ! (pas de message d'erreur précis si ce n'est un surlignage en jaune d'une ligne de code ...)

Les détails sont dans le fichier joint

Merci d'avance
Sebast
 

Pièces jointes

Re : recherchev() en vba qui plante sans raison

Bonjour tototiti2008,

merci pour ta réponse rapide. Effectivement, j'ai fait la manip à la main (en écrivant recherchev(...), formule que j'ai tirée jusqu'en bas de la liste et ça plante !
Existe-t-il une option pour que s'affiche un blanc plutôt que #N/A ? Est-ce dans la formule ou un paramètre à activer (ou peut-être rien du tout, malheureusement) ?

Merci pour tes lumières

Sebast
 
Re : recherchev() en vba qui plante sans raison

Bonjour,

peut être préférer la méthode "find", native de vba :
Code:
Dim x As Range
Set x = Range("A1:F25555").Find("ValeurCherchée", , xlValues, xlWhole, , , False)
If Not x Is Nothing Then x.Offset(0, 5).Value

bon après midi
@+
 
Re : recherchev() en vba qui plante sans raison

Bonjour le fil 🙂,
Passe par Find 🙄...
Code:
Sub name_worker()
Dim lastline As Double, i As Double, Cellule As Range
lastline = Sheets("Work").Range("A" & Rows.Count).End(xlUp).Row
    With Sheets("Work")
        For i = 2 To lastline
            Set Cellule = Range("surface").Find(.Cells(i, 1), lookat:=xlWhole)
            If Not Cellule Is Nothing Then
                .Cells(i, 6) = Range("surface").Cells(Cellule.Row - 1, 6)
            End If
         Next i
      End With
End Sub
Bonne journée 😎
Ajout : Salut Pierrot 🙂
 
Re : recherchev() en vba qui plante sans raison

Bonjour Pierrot, Bonjour JNP,
Re,

Juste pour aller dans le sens inverse de mes amis Pierrot et JNP, en gardant Vlookup 🙂

Code:
Sub name_worker()
Dim lastline As Double, i As Double
lastline = Sheets("Work").Range("A" & Rows.Count).End(xlUp).Row
Dim worker As Variant
    With Sheets("Work")
        For i = 2 To lastline
            If WorksheetFunction.CountIf(Range("surface").Resize(, 1), .Cells(i, 1)) > 0 Then
            worker = WorksheetFunction.VLookup(.Cells(i, 1), Range("surface"), 6, False)
            .Cells(i, 6) = worker
            Else
            .Cells(i, 6) = ""
            End If
         Next i
      End With
End Sub
 
Re : recherchev() en vba qui plante sans raison

Re 🙂,
Juste pour aller dans le sens inverse de mes amis Pierrot et JNP, en gardant Vlookup 🙂
Ok, en gardant VLOOKUP et ISNA, en passant par Evaluate, pour le fun 😛...
Code:
Sub name_worker()
Dim lastline As Double, i As Double
lastline = Sheets("Work").Range("A" & Rows.Count).End(xlUp).Row
Dim worker As Variant
    With Sheets("Work")
        For i = 2 To lastline
            .Cells(i, 6) = Evaluate("IF(ISNA(VLOOKUP(" & .Cells(i, 1).Address & _
                ",surface,6,FALSE)),"""",VLOOKUP(" & .Cells(i, 1).Address & ",surface,6,FALSE))")
         Next i
      End With
End Sub
Bonne suite 😎
 
Re : recherchev() en vba qui plante sans raison

Bonjour,

merci beaucoup pour cette réponse. Je ne suis pas assez calé pour comprendre le pourquoi du comment ... Je suis trop débutant en vba pour apprécier la virtuosité mais ça marche.
Encore merci
 
Re : recherchev() en vba qui plante sans raison

Merci beaucoup pour ta réactivité, ça marche parfaitement mais j'avoue qu'il y a des éléments que je ne connais pas, notamment lookat:=xlWhole ?
Par curiosité, comment en es-tu venu à ce degré de connaissance (est-ce via ton job, depuis combien de temps pratiques-tu, comment t'es-tu formé) ?
Encore merci et bravo

Sebast
 
Re : recherchev() en vba qui plante sans raison

Re 🙂,
mais j'avoue qu'il y a des éléments que je ne connais pas, notamment lookat:=xlWhole ?
ça veut dire que ta recherche doit utiliser toute la cellule et non une partie (LookAt:=xlPart) 🙄...
Par curiosité, comment en es-tu venu à ce degré de connaissance (est-ce via ton job, depuis combien de temps pratiques-tu, comment t'es-tu formé) ?
Euh, ça s'adresse à Pierrot, TotoTiti ou moi 😛 ?
En ce qui me concerne, le besoin crée les moyens... et ce degré, c'est un bien grand mot, il me reste encore beaucoup à apprendre 😱... Je me mets petit à petit aux formules, et comme je n'ai jamais eu besoin de TCD, ben ça vole pas haut de ce côté là... Et le VBA, ben, la programmation, c'est vaste, et j'aprécie d'en apprendre tous les jours 😉 !
Bon courage 😎
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
931
F
Réponses
3
Affichages
1 K
Florent6744
F
L
Réponses
1
Affichages
1 K
L
Retour