Rechercher dans un fichier excel des données

juemo -  
Bidouilleu_R Messages postés 1209 Statut Membre -
Bonjour,

Je voudrais faire une recherche dans un fichier excel des données qui se trouve dans un autre fichier excel.

J'ai un range d'adresse dans un fichier excel et je dois rechercher dans mon autre fichier si l'adresse ip qui s'y trouve est dans le range des données que j'ai dans l'autre fichier et je veux faire sortir seulement les lignes qui répondent a ma requete.

Comment faire?

merci

1 réponse

  1. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    Bonjour

    s'il te plait dis moi si ça marche bien
    et fais un essai
    A++

    Sub verifIP()
    ' cette macro doit être placée dans
    ' le classeur qui contient la plage range a vérifier
    ' j'ouvre le classeur qui contient la base des ip
    ' je suppose que les données sont en feuil1
    ' que le range des ip dans la base sont de A2 à Axxx
    ' et que la source à controler est en A2 à Axxx
    
    Dim fichierOrigine As String
    Dim fichierBaseIp As String
    Dim nbLig As Long
    
    fichierOrigine = ThisWorkbook.Name
    
    Workbooks.Open ("C:\Data\fichierlisteip.xls") ' à adapter
    Sheets("feuil1").Select   ' à adapter : là c'est la base
    fichierBaseIp = ActiveWorkbook.Name
    Windows(fichierOrigine).Activate
    Sheets("feuil1").Select
    nbLig = Range("A10").End(xlDown).Row   ' dernière ligne de la plage source
    
    For Each c In Range("A10:A" & nbLig)
        Windows(fichierOrigine).Activate
        'je vais rechercher chaque IP
        ' et j'écris dans la colonne B Trouvé et l'adresse ou Pas trouvé
        c.Offset(0, 1) = Trouve_Les_Ips(c.Value, fichierBaseIp)
    Next
    Windows(fichierBaseIp).Activate
    ActiveWorkbook.Close
    
    
    End Sub
    Function Trouve_Les_Ips(Val_IP As String, ByVal Wrbk As String) As String
        Dim nLignes As Long
        Dim infos As String
        Dim ce As Variant
        
        Windows(Wrbk).Activate
            
        nLignes = Range("a2").End(xlDown).Row ' dernière ligne de la base
    
        Application.ScreenUpdating = False
           
           With Worksheets(1).Range("a2:a" & nLignes)
            Set ce = .Find(Val_IP, LookIn:=xlValues) ' trouve la valeur IP
                If Not ce Is Nothing Then
                    firstAddress = ce.Address
                    infos = "Trouvé à : " & firstAddress
                Else
                
                    infos = "Pas trouvé"
                  ' sortie si cellule vide ou si première adresse
                End If
            End With
    
           
           
        Trouve_Les_Ips = infos
      
    End Function
    0