Twitter iPhone pliant OnePlus 12 PS5 Disney+ Orange Livebox Windows 11 ChatGPT

Rcherche fonction personnalisée

8 réponses
Avatar
JPStremler
Bonjour,

Dans une feuille Excel où se trouvent rangées des adresses IP je dois faire
apparaître
dans une autre cellule de la même ligne la "reverse" de l'IP correspondante.

1/ Existe-t-il déjà une fonction faisant ce travail, et ,si oui, où peut-on la
trouver ?

2/ Au cas où rien n'existe, je peux utiliser l'utilitaire intégré ( Win2k ou
XP ) NSLOOKUP.EXE
Comment l'incorporer dans une fonction personnalisée et où peut on trouver un
modèle de ce genre de fonction utilisant un utilitaire système de Windows ?

Merci.
--

--
Jean-Pierre Stremler
jp@jpstremler.com
www.commutel.net

8 réponses

Avatar
AV
Tu veux un truc pour "retourner" une chaîne ?

Function Retourne(plg As Range)
Retourne = StrReverse(plg)
End Function

AV
Avatar
Daniel.M
Salut Jean-Pierre,

Pas clair.
Tu veux obtenir 001.003.128.134 à partir de 134.128.003.001 ?

Tu peux utiliser une fonction VBA (tu dois avoir Excel 2000, sinon avise, il
y a des alternatives) avec l'adresse IP en A1, tu mets
=IPRev(A1) et tu obtiens ta réponse.

Public Function IPRev(s As String) As String
Dim V As Variant, elem As Variant, s2 As String
V = Split(s, ".")
For Each elem In V: s2 = elem & "." & s2: Next elem
IPRev = Left(s2, Len(s2) - 1)
End Function

Salutations,

Daniel M.

"JPStremler" wrote in message
news:
Bonjour,

Dans une feuille Excel où se trouvent rangées des adresses IP je dois
faire

apparaître
dans une autre cellule de la même ligne la "reverse" de l'IP
correspondante.


1/ Existe-t-il déjà une fonction faisant ce travail, et ,si oui, où
peut-on la

trouver ?

2/ Au cas où rien n'existe, je peux utiliser l'utilitaire intégré ( Win2k
ou

XP ) NSLOOKUP.EXE
Comment l'incorporer dans une fonction personnalisée et où peut on trouver
un

modèle de ce genre de fonction utilisant un utilitaire système de Windows
?


Merci.
--

--
Jean-Pierre Stremler

www.commutel.net




Avatar
JPStremler
Merci à tous les deux,

J'ai donc mal formulé ma question !

La reverse d'une adresse IP est une donnée enregistrée qu'on ne peut obtenir
qu'à partir du Serveur DNS qui dessert le domaine auquel est rattachée l'adresse
IP en question, d'où l'utilisation de l'utilitaire système NSLOOKUP.EXE.
Dans mon cas il s'agit d'adresses IP publiques et donc de Serveurs DNS publics
sur Internet .

Je mets une adresse IP dans une cellule et dans une autre je veux voir retourner
la reverse de cette adresse.

Exemple pour l'adresse IP 81.49.255.248


C:>nslookup

Serveur par défaut : ns.commutel.net
Address: 62.4.22.177

81.49.255.248
Serveur : ns.commutel.net

Address: 62.4.22.177

Reverse : APuteaux-116-1-3-248.w81-49.abo.wanadoo.fr



Ce qui est retourné est une chaîne de caractères.

Suis-je un peu plus clair ?

--
Jean-Pierre Stremler

www.commutel.net

Avatar
AV
Suis-je un peu plus clair ?


Ben... ce que je vois c'est que j'avais compris keudale et que je vois pas
d'excel là-dedans...

AV

Avatar
Daniel.M
Désolé. Je ne connaissais pas le concept.

Il pourrait y avoir un fonction API pour faire cela mais je ne suis pas
celui qui peut t'aider :-(

Daniel M.


La reverse d'une adresse IP est une donnée enregistrée qu'on ne peut
obtenir

qu'à partir du Serveur DNS qui dessert le domaine auquel est rattachée
l'adresse

IP en question, d'où l'utilisation de l'utilitaire système NSLOOKUP.EXE.
Dans mon cas il s'agit d'adresses IP publiques et donc de Serveurs DNS
publics

sur Internet .



Avatar
JPStremler
que je vois pas
d'excel là-dedans...


Eh bien si....je veux construire une fonction Excel personnalisée qui reçoit en
entrée une adresse IP, contenue dans une cellule, et qui retourne la reverse de
cette IP dans une autre cellule. Cette fonction devrait utiliser NSLOOKUP.EXE,
car je n'ai pas trouvé d'API pour cet usage.
Je cherche, par exemple, le code VBA d'un modèle de fonction personnalisée qui
fonctionnerait selon ce principe ou quelque chose de semblable.

Merci pour toute idée.

--
Jean-Pierre Stremler

www.commutel.net

Avatar
JPStremler
Merci Claude,

C'est effectivement très proche de ce que je cherche.

Sous Windows 2k ou XP, quel interpréteur de commande faut-il utiliser ?

Bien que NSLOOKUP.EXE ne soit pas une commande du Shell ( comme DIR ) je suppose
que ça marche quand même ?

L'utilisation d'un fichier intermédiaire est elle vraiment indispensable ? Ne
pourrais-t-on pas rediriger la sortie de NSLOOKUP vers une variable et comment
?

Encore Merci.

--
Jean-Pierre Stremler

www.commutel.net
Avatar
Claude Mani
"JPStremler" a écrit dans le message de news:

Merci Claude,



De rien, c'est un plaisir.

C'est effectivement très proche de ce que je cherche.

Sous Windows 2k ou XP, quel interpréteur de commande faut-il utiliser ?


Sous Windows XP c'est cmd.exe, sous Windows 2000, je ne me rappelle plus. Un
clique droit sur l'icône "Commandes MS-DOS", propriétés, programme, ligne de
commande pourrait vous l'indiquer.


Bien que NSLOOKUP.EXE ne soit pas une commande du Shell ( comme DIR ) je
suppose

que ça marche quand même ?



L'interpréteur de commande peut exécuter des commandes externes même si
elles ne font pas partie intégrante de lui-même. D'une version Windows à une
autre l'interpréteur évolue d'ailleurs. Jetez donc un coup d'oeil sur le
copyright en haut de la fenêtre qui s'ouvre lorsque vous le lancez. Chez moi
c'est marqué "Windows 98". On parle d'ailleurs, par exemple, d'un
interpréteur de commande Windows NT, qui lui exécuterait également la
commande nslookup. (Pour plus de renseignements techniques voir par exemple
sur le ng fr.comp.os.msdos).

L'utilisation d'un fichier intermédiaire est elle vraiment indispensable ?
Ne

pourrais-t-on pas rediriger la sortie de NSLOOKUP vers une variable et
comment

?



Selon ma connaissance du DOS, on peut faire une redirection vers un fichier
ou une imprimante, seulement.

Je suis parti de l'idée de lancer la commande depuis VBA, et de récupérer le
résultat via VBA également. Il serait certainement possible, via VBScript de
proposer quelque chose de différent. Les spécialistes du ng
microsoft.public.fr.scripting pourrait certainement y trouver une solution.


Encore Merci.

--
Jean-Pierre Stremler

www.commutel.net




A une prochaine fois.

Claude Mani