Récupérer l'IP dans une cellule

Résolu/Fermé
rama9300 Messages postés 6 Date d'inscription mardi 23 septembre 2014 Statut Membre Dernière intervention 26 septembre 2014 - 23 sept. 2014 à 12:17
rama9300 Messages postés 6 Date d'inscription mardi 23 septembre 2014 Statut Membre Dernière intervention 26 septembre 2014 - 26 sept. 2014 à 07:27
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
23 sept. 2014 à 14:18
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 mardi 23 septembre 2014 Statut Membre Dernière intervention 26 septembre 2014
24 sept. 2014 à 10:32
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
24 sept. 2014 à 14:37
Bonjour,

Au lieu de :
Var1 = IsoleIP(Cell.Select) 
mettre :
Var1 = IsoleIP(Cell) 
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
25 sept. 2014 à 16:29
Bonjour,

Alors?
ça fonctionne?
0
rama9300 Messages postés 6 Date d'inscription mardi 23 septembre 2014 Statut Membre Dernière intervention 26 septembre 2014
26 sept. 2014 à 07:27
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
23 sept. 2014 à 12:38
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 mardi 23 septembre 2014 Statut Membre Dernière intervention 26 septembre 2014
23 sept. 2014 à 13:00
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
23 sept. 2014 à 13:29
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 mardi 23 septembre 2014 Statut Membre Dernière intervention 26 septembre 2014
23 sept. 2014 à 14:36
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
23 sept. 2014 à 14:38
0
rama9300 Messages postés 6 Date d'inscription mardi 23 septembre 2014 Statut Membre Dernière intervention 26 septembre 2014
24 sept. 2014 à 09:51
Merci pour vos réponses.
Je vais faire les tests.

Cordialement,
0