Récupérer l'IP dans une cellule

Résolu
rama9300 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
rama9300 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
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

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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
rama9300 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
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
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,

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

Alors?
ça fonctionne?
0
rama9300 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

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

Cordialement,
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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
rama9300 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
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
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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
rama9300 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Pour répondre à votre question, l'IP n'apparaît pas tout le temps en deuxième position.
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
0
rama9300 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour vos réponses.
Je vais faire les tests.

Cordialement,
0