Microsoft 365 user - nom ordi - ip : insérer dans les cellules de ma feuille

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous :)

Je bute sur un code et je n'arrive pas à trouver malgré mes recherches.

Je voudrais mettre (à l'ouverture du classeur) des informations dans ma feuille :
User = c'est bon ça fonctionne,
Nom ordi = c'est bon ça fonctionne,
IP = je trouve mais je n'arrive pas à mettre l'info en "B4"
et je ne comprends pas l'info
:
1679320902296.png

Pourriez-vous m'aider ?
Je joins le fichier test.
Un grand merci à toutes et à tous,
:)
 

Pièces jointes

  • user ordi ip_test.xlsm
    31.5 KB · Affichages: 9
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Usine à gaz,
Un essai en PJ, où j'ai récupéré in extenso le code de Renauder sur XLD ( sans trop chercher à comprendre ) :
 

Pièces jointes

  • user ordi ip_test.xlsm
    36.6 KB · Affichages: 11

job75

XLDnaute Barbatruc
Bonsoir Lionel, sylvanu,

Tiré du code que tu as fourni ceci va bien chez moi :
VB:
Sub test()
Dim strComputer As String, objWMIService As Object, colAdapters As Object, objAdapter As Object
[B2] = Application.UserName 'Environ("USERNAME")
[B3] = Environ("COMPUTERNAME")
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colAdapters = objWMIService.ExecQuery _
    ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
For Each objAdapter In colAdapters
   [B4] = objAdapter.IPAddress(0)
Next
End Sub
J'ai essayé d'éviter la boucle mais sans succès.

A+
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Une solution "old school"
Depuis l'invite MSDos
netstat -r>%temp%/infosIP.xls
Ouvrir ensuite le fichier "Xls" depuis le répertoire temporaire de Windows
(Excel va broncher, mais ne pas l'écouter et cliquer sur OK)

PS:
On peut aussi pousser la chose en lancer la commande depuis VBA
(en passant par VBScript pour plus de commodité)

Test OK sur mon W10
Pour info, l'adresse IP sera en cellule A11
 

Staple1600

XLDnaute Barbatruc
Re

Ce batch fonctionne sur mon W10/64 bits
Ouvrez le bloc-notes et copiez cette deux lignes
@netstat -r>%temp%/infos_IP.xls
@start %temp%/infos_IP.xls


Puis enregistrer sous : scriptIP.cmd
Ensuite double-clic sur ce fichier

NB: Votre Windows doit afficher les extensions de fichiers
(Dans l'explorateur Windows, onglet Affichage, cochez: Extensions de noms fichier
 

Usine à gaz

XLDnaute Barbatruc
Bonjour JM, le Fil, Le Forum :)
Merci JM pour tes codes.

Je préfère travailler avec les codes de mon fichier Excel et ceux de Gérard, c'est plus simple pour mes petits neurones fatigués.

Je ne touche pas, sauf "exceptionnelle exception" à l'invite MSDos.
Quand un code est opérationnel dans mon fichier : 1clic et c'est bon.

Merci à toi pour m'avoir répondu
:)
 

patricktoulon

XLDnaute Barbatruc
Bonjour à tous
juste en passant si ca vous intéresse
c'est simple et c'est une fonction réutilisable
VB:
Sub test5()
    MsgBox GetAddressIP(1)    'argument valable  ;"ip" ou  "ipv4" ou "locale" ou simplement 1 (es 4 fonctionnent) pour l'IPV4
    MsgBox GetAddressIP(2) 'arguments ; "ipv6" ou simplement 2 pour l'IPV6
End Sub

Function GetAddressIP(Request)
    Dim Wsh As Object, Objectexec As Object, Retour$, Tabl
    GetAddressIP = "Error"
    Set Wsh = CreateObject("WScript.Shell")
    Set Objectexec = Wsh.Exec("%comspec% /c ipconfig.exe")
    Retour = LCase(Objectexec.StdOut.readall)
    Debug.Print Retour' juste pour voir ce qui est retourné dans le debug
    Tabl = Split(Retour, "adresse")
    Select Case LCase(Request)
    Case 1, "ipv4", "ip", "locale"
        GetAddressIP = Split(Split(Tabl(2), ".: ")(1), vbCrLf)(0)
    Case 2, "ipv6"
        GetAddressIP = Split(Tabl(1), ".: ")(1)
    End Select
End Function
 

Usine à gaz

XLDnaute Barbatruc
Bjr Patrick :)
Merci pour ton code,
Fonctionne aussi très bien ....
Juste un petit truc :
pour GetAddressIP(2) (Mac) il me le retourne avec des espaces à la fin :
"fe90::669d:dcbe:9ee4:2ea1%98xxxx" (j'ai mis des X)
est-ce voulu ? ou est-il possible de les enlever ?
:)
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
Bonjour lionel
ben tu fait un trim c'est tout
VB:
Sub test5()
    MsgBox GetAddressIP(1)    'argument valable  ;"ip" ou  "ipv4" ou "locale" ou simplement 1 (es 4 fonctionnent) pour l'IPV4
    MsgBox GetAddressIP(2) 'arguments ; "ipv6" ou simplement 2 pour l'IPV6
End Sub

Function GetAddressIP(Request)
    Dim Wsh As Object, Objectexec As Object, Retour$, Tabl
    GetAddressIP = "Error"
    Set Wsh = CreateObject("WScript.Shell")
    Set Objectexec = Wsh.Exec("%comspec% /c ipconfig.exe")
    Retour = LCase(Objectexec.StdOut.readall)
    Debug.Print Retour' juste pour voir ce qui est retourné dans le debug
    Tabl = Split(Retour, "adresse")
    Select Case LCase(Request)
    Case 1, "ipv4", "ip", "locale"
        GetAddressIP = trim(Split(Split(Tabl(2), ".: ")(1), vbCrLf)(0))
    Case 2, "ipv6"
        GetAddressIP = trim(Split(Tabl(1), ".: ")(1))
    End Select
End Function
 

Discussions similaires

Réponses
5
Affichages
208

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 105
dernier inscrit
Joffrette