A la recherche de ... la bonne valeur!

  • Initiateur de la discussion Initiateur de la discussion diozea
  • 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 !

D

diozea

Guest
Bonjour,

Comment parcourir une colonne à la recherche d'une valeur? Cela parait simple, mais je me perds dans ma boucle

Voila mon besoin en français.
Function cherchedansunecolonne (mcol As Range, mval As String) As String
' Tant que trouvé = faux
' Si la valeur de la cellule de ma plage = la valeur de référence
' alors trouvé = vrai
' sortir
' Sinon passer à la cellule suivante, jusqu'a vide
End Function

Merci d'avance,
 
Re : A la recherche de ... la bonne valeur!

Bonjour,
tu le veux absolument en vba ?
parce que en formule ç s'écrit : =EQUIV(valeur cherchée;zone de recherche;vrai ou faux) faux si tu cherche la correspondance exacte.
la valeur renvoyée et le N° dans la liste.
Cordialement
 
Re : A la recherche de ... la bonne valeur!

Bonjour Diozea,

Peut-être comme ceci:

Code:
Public Function Cherchedansunecolonne(ByVal Mycol As Range, Ref As String) As Boolean

    Dim c As Range
    
    With Range(Mycol.Address)
        Set c = .Cells.Find(Ref, , xlValues, xlWhole)
    End With
    
    If Not c Is Nothing Then
    Cherchedansunecolonne = True
    Else
    Cherchedansunecolonne = False
    End If
    
End Function

EDIT: Bonjour Dugenou
 
Re : A la recherche de ... la bonne valeur!

Merci à vous 2 mais ...
en retournant le pb je pense procéder différemment,

J'ai un tableau d'intervalle:
ReseauIpmin; ReseauIpmax ; NomduSite
54612;35156; Amiens gare
1233;6542; Cergy silo

(Rq: J'ai transformé chaque IP en binaire pour simplifier les comparaisons.)

Par ailleurs, j'ai une IP (d'un PC) dans une cellule.
Je souhaite récupérer la valeur NomduSite en testant si monIP appartient à l'intervalle.

Avez-vous une idée (en vba svp).




r)
 
Re : A la recherche de ... la bonne valeur!

Re Diozea,

Un test en P.J

Par macro ou par fonction personnalisée.

La fonction personnalisée marche de cette façon:

=rechercheip(Plage_IP1;Plage_IP2;Plage_nomdomaine;Ref_IP)


J'espère que ça correspond à ce que tu cherchais
Bonne journée !
 

Pièces jointes

Re : A la recherche de ... la bonne valeur!

merci, quel retour rapide!

J'utilise la formule:
=rechercheIP('BB_SiteSFR et plage'!F2:F9;'BB_SiteSFR et plage'!G2:G9;'BB_SiteSFR et plage'!B2:B9;D2)
j'ai un message qui m'indique que les plages ne sont pas de la m^me longueur.

Je ne sais pas comment faire du pas à pas pour debugger.

As-tu une idée?
 
Re : A la recherche de ... la bonne valeur!

Re,

Je n'ai pas ce problème,

Ci-joint le code modifié pour les autres feuilles, et message lorsque l'IP n'est pas comprise dans une des plages possibles:

Code:
Public Function rechercheIP(ByRef Ip1 As Range, Ip2 As Range, Nomdomaine As Range, Ref_ip As Double) As Variant

    Dim i, h As Long
    Dim Plage1, Plage2, Plage3, c As Range
    Dim Nomfeuil1 As String
    
    Set Plage1 = Ip1
    Set Plage2 = Ip2
    Set Plage3 = Nomdomaine
    
    Dim tabl1(), tabl2(), tabl3()
    
    If Plage1.Count = Plage2.Count And Plage2.Count = Plage3.Count Then
    
    If Plage1.Columns.Count = 1 And Plage2.Columns.Count = 1 And Plage2.Columns.Count = 1 Then
    
    tabl1() = Plage1.Value
    tabl2() = Plage2.Value
    tabl3() = Plage3.Value
    
        For i = LBound(tabl1()) To UBound(tabl1())
    
            If Ref_ip <= tabl1(i, 1) And Ref_ip >= tabl2(i, 1) Then
            rechercheIP = tabl3(i, 1)
            Exit Function
            End If
        
            If Ref_ip >= tabl1(i, 1) And Ref_ip <= tabl2(i, 1) Then
            rechercheIP = tabl3(i, 1)
            Exit Function
            Else
            rechercheIP = "Hors-limite"
            Exit Function
            End If
        
        Next i
        
    Else
   
    End If
    End If
        
    rechercheIP = "Les plages de données ne sont pas de même longueur!"
        
    
End Function
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour