Récupérer l'IP dans une cellule

Résolu
rama9300 Messages postés 6 Statut Membre -  
rama9300 Messages postés 6 Statut Membre -
Bonjour,

Est-ce possible de créer une macro qui récupére une valeur dans une cellule?

Exemple:
Host2 - 192.168.0.23 - Bat 2 - salle C24

Je souhaiterais récupérer uniquement la valeur " 192.168.0.23 "

J'ai trouvé la commande Sheets(1).Cells.Find("*.*.*.*", , , 1) pour repérer les cellules contenant des IP. Par contre, je ne parviens pas à récupérer uniquement l'IP...
Pouvez-vous m'aider svp?

Cordialement,

4 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Si tu es sur de n'avoir qu'une IP par cellule, essaie la fonction personnalisée (issue du tutoriel de caféine) :
    Ne pas oublier d'activer la référence Microsoft VBScript Regular Expressions dans Outils/références (sous l'éditeur VBA)
    'nécessite l'activation de la référence :
      'Microsoft VBScript Regular Expressions
      'Outils/Références
    
    Function IsoleIP(monRange As Range)
    Dim Regle As New VBScript_RegExp_55.RegExp
    Dim EstBon As VBScript_RegExp_55.Match
    Dim maCollec As VBScript_RegExp_55.MatchCollection
    
    Regle.Pattern = "((25[0-5]|2[0-4]\d|1?\d?\d)\.){3}(25[0-5]|2[0-4]\d|1?\d?\d)"
    Set maCollec = Regle.Execute(monRange.Value)
    For Each EstBon In maCollec
        IsoleIP = EstBon.Value
    Next
    Set maCollec = Nothing
    Set Regle = Nothing
    End Function 


    Pour son utilisation, dans la feuille :
    - en A1 : Host2 - 192.168.0.23 - Bat 2 - salle C24
    - en B1 : =IsoleIP(A1)
    1
    1. rama9300 Messages postés 6 Statut Membre
       
      Bonjour,

      Je pensais utiliser la fonction IsolateIP de cette manière :

      Sub For_Each_Next_Plage()
      Dim FL1 As Worksheet, Cell As Range, Plage As Range
      Dim Var1

      Set FL1 = Worksheets("Feuil2")
      With FL1

      Set Plage = .Range("W47:W200")
      For Each Cell In Plage

      'Valeur de la cellule lue
      Var1 = IsoleIP(Cell.Select)
      Next
      End With
      Set FL1 = Nothing
      Set Plage = Nothing
      End Sub

      L'idée était de parcourir la colonne W de la ligne 47 à 200 pour récupérer l'IP de la cellule.
      Cependant, cela n'a pas l'air de fonctionner. Avez-vous une idée du blocage?

      Cordialement,
      0
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Bonjour,

      Au lieu de :
      Var1 = IsoleIP(Cell.Select) 
      mettre :
      Var1 = IsoleIP(Cell) 
      0
    3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Bonjour,

      Alors?
      ça fonctionne?
      0
    4. rama9300 Messages postés 6 Statut Membre
       
      Bonjour,

      Merci beaucoup! cela fonctionne! Je n'ai pas pu travailler dessus hier. Désolé pour la réponse tardive.

      Cordialement,
      0
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Si le "schéma" de vos données est toujours de la forme info1 "espace" "tiret" "espace" IP "espace" "tiret" "espace" info3 "espace" "tiret" "espace" etc...
    L'adresse IP est :
    Split(ActiveCell.Value, " - ")(1)
    0
  3. rama9300 Messages postés 6 Statut Membre
     
    Bonjour,

    Merci pour la réponse.

    Cependant, il n'y a pas de schéma respecté.
    Les données sont souvent formulé de manière aléatoire.
    L'IP est toujours présente dans la cellule mais il y a également d'autre information dans cette même cellule.

    Cordialement,
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Par schéma j'entendais ceci :
      - l'IP est toujours en "seconde position" dans la cellule,
      - l'IP est entourée de " - ", un avant et un après.

      " - " = enchainement de 3 caractères : "espace" "tiret du 6" "espace"
      0
    2. rama9300 Messages postés 6 Statut Membre
       
      Pour répondre à votre question, l'IP n'apparaît pas tout le temps en deuxième position.
      0
  4. rama9300 Messages postés 6 Statut Membre
     
    Merci pour vos réponses.
    Je vais faire les tests.

    Cordialement,
    0