Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2948 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Excel : Macro pour récupération de l'adresse de carte réseau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Excel : Macro pour récupération de l'adresse de carte réseau

n°1020843
papi67
Posté le 22-03-2005 à 12:20:27  profilanswer
 

J'ai un fichier sous excel dont je voudrai limiter la diffusion à certaines personnes, mais aussi que celles-ci ne puissent pas le communiquer à d'autres sans mon accord.
L'utilisation d'un mot de passe n'est donc pas la solution.
Pour cela j'ai pensé utiliser leur adresse de la carte réseau (Imac) afin qu'il ne puisse pas l'utiliser sur un autre pc que celui pour lequel j'ai délivré l'autorisation.
 
Comment récupérer l'adresse Mac de la carte réseau ?
 
Si quelqu'un posséde la macro ou peut me l'écrire ce sera sympa car mes connaissances sont actuellement celle d'un débutant en macro.
 
Merci d'avance.

mood
Publicité
Posté le 22-03-2005 à 12:20:27  profilanswer
 

n°1021486
knakes
Posté le 22-03-2005 à 20:42:40  profilanswer
 

Source : microsoft.com
Dans un module

Code :
  1. Public Const NCBASTAT As Long = &H33
  2. Public Const NCBNAMSZ As Long = 16
  3. Public Const NCBRESET As Long = &H32
  4. Public Type NET_CONTROL_BLOCK
  5.     ncb_command As Byte
  6.     ncb_retcode As Byte
  7.     ncb_lsn As Byte
  8.     ncb_num As Byte
  9.     ncb_buffer As Long
  10.     ncb_length As Integer
  11.     ncb_callname As String * NCBNAMSZ
  12.     ncb_name As String * NCBNAMSZ
  13.     ncb_rto As Byte
  14.     ncb_sto As Byte
  15.     ncb_post As Long
  16.     ncb_lana_num As Byte
  17.     ncb_cmd_cplt As Byte
  18.     ncb_reserve(9) As Byte
  19.     ncb_event As Long
  20. End Type
  21. Public Type ADAPTER_STATUS
  22.     adapter_address(5) As Byte
  23.     rev_major As Byte
  24.     reserved0 As Byte
  25.     adapter_type As Byte
  26.     rev_minor As Byte
  27.     duration As Integer
  28.     frmr_recv As Integer
  29.     frmr_xmit As Integer
  30.     iframe_recv_err As Integer
  31.     xmit_aborts As Integer
  32.     xmit_success As Long
  33.     recv_success As Long
  34.     iframe_xmit_err As Integer
  35.     recv_buff_unavail As Integer
  36.     t1_timeouts As Integer
  37.     ti_timeouts As Integer
  38.     Reserved1 As Long
  39.     free_ncbs As Integer
  40.     max_cfg_ncbs As Integer
  41.     max_ncbs As Integer
  42.     xmit_buf_unavail As Integer
  43.     max_dgram_size As Integer
  44.     pending_sess As Integer
  45.     max_cfg_sess As Integer
  46.     max_sess As Integer
  47.     max_sess_pkt_size As Integer
  48.     name_count As Integer
  49. End Type
  50. Public Type NAME_BUFFER
  51.     name As String * NCBNAMSZ
  52.     name_num As Integer
  53.     name_flags As Integer
  54. End Type
  55. Public Type ASTAT
  56.     adapt As ADAPTER_STATUS
  57.     NameBuff(30) As NAME_BUFFER
  58. End Type
  59. Public Declare Function Netbios Lib "netapi32.dll" (pncb As NET_CONTROL_BLOCK) As Byte
  60. Public Function MACAddress() As String
  61.     Dim macAdr As String
  62.     Dim ncb As NET_CONTROL_BLOCK
  63.     Dim adapter As ASTAT
  64.    
  65.     ncb.ncb_command = NCBRESET
  66.     Call Netbios(ncb)
  67.    
  68.     ncb.ncb_command = NCBASTAT
  69.     ncb.ncb_lana_num = 0
  70.     ncb.ncb_callname = "* "
  71.     ncb.ncb_buffer = VarPtr(adapter)
  72.     ncb.ncb_length = Len(adapter)
  73.    
  74.     Call Netbios(ncb) 'renvoie entre autre la mac adresse dans une structure
  75.     For i = 0 To 5
  76.         macAdr = macAdr & Format$(Hex(adapter.adapt.adapter_address(i)), "00" ) & " "
  77.     Next i
  78.     macAdr = Trim(macAdr) 'Enlève les espces à droite et à gauche de la chaîne
  79.     MACAddress = macAdr
  80. End Function


 
Là ou on veut récuperer la valeur de l'adresse mac :

Code :
  1. MsgBox MACAddress 'par exemple


Voilà
 
 
Edit : toutefois, il est possible de changer l'adresse MAC d'une carte réseau ...


Message édité par knakes le 22-03-2005 à 20:44:54
n°1024678
papi67
Posté le 25-03-2005 à 12:16:37  profilanswer
 

Merci knakes je vais tester ce que tu m'a transmis.

n°1113618
stagiaire6
tout est relatif
Posté le 09-06-2005 à 10:11:26  profilanswer
 

Ben moi ca me plaiser ce post pour une fois que je trouver ma reponce meme si c'etait pas en VBS.... mais voilas ca marche pas...
 
PKOI TANT DE ... HEU... PFFFF....

n°1120272
stagiaire6
tout est relatif
Posté le 15-06-2005 à 08:35:01  profilanswer
 

Public Const NCBASTAT As Long = &H33  
Public Const NCBNAMSZ As Long = 16  
Public Const NCBRESET As Long = &H32  
 
pourkoi excel il me dit que c'est pas bon???
 
j'y pige rien a ce truc de M....
 
@+

n°1120370
AlainTech
Pas trouvé? Cherche encore!
Posté le 15-06-2005 à 10:11:58  profilanswer
 

Enlève le mot Public et mets tes déclarations de constantes dans la partie Déclarations de ton module.


Message édité par AlainTech le 15-06-2005 à 10:12:30
n°1120864
stagiaire6
tout est relatif
Posté le 15-06-2005 à 15:01:16  profilanswer
 

WHHHAAAAAAZZZAAAAAA!!!!! Tu veut que je fasse koi??? que je vire public ok ca je comprend mais le reste tu me parle pas chinois mais presque... merci quand meme...
 
@++

n°1121269
AlainTech
Pas trouvé? Cherche encore!
Posté le 15-06-2005 à 19:37:36  profilanswer
 

La partie Déclarations, c'est la partie du code qui est avant les procédures et les fonctions.

n°1121473
stagiaire6
tout est relatif
Posté le 16-06-2005 à 08:14:05  profilanswer
 

heu..... genre...
 
private sub lol_initialize()
dim kikoo as string
dim lol as integer
const ncbastat as long = &H33
Cont NCBNAMSZ As Long =16
Const NCBRESET As Long = &H32
 
blbblblbllbbllblbblbllblblb...
end sub
 
et tout le programme derriere???
 
@++

n°1121480
AlainTech
Pas trouvé? Cherche encore!
Posté le 16-06-2005 à 08:39:59  profilanswer
 

AVANT les Sub et Function.
 
T'arrive-t-il de regarder les 2 listes déroulantes qui sont en haut de la fenêtre où tu tapes le code?


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
mood
Publicité
Posté le 16-06-2005 à 08:39:59  profilanswer
 

n°1121496
stagiaire6
tout est relatif
Posté le 16-06-2005 à 08:53:57  profilanswer
 

// Dans un module //
 
voilas trois mots que j'avait mal lus et qui explique le pourquoi du comment ca marcher pas...
 
enfin voilas le programme marche et il est dans un module le probleme est j'ai comme adresse mac 00 00 00 00 00 00 .
Ce qui vous en conviendrai n'est pas mon address mac.
 
y a t il encore un truc que j'aurai slu de travers ou est ce quelque chose que j'aurais put oublier.
 
pour avoir ce resultat j'ai cree un msgbox qui sort la macadress je pense que ca vien du fait que je lance pas la macro avant d'appeller sa variable de sortie. qu'en penser vous?
 
@++

n°1131813
stagiaire6
tout est relatif
Posté le 27-06-2005 à 08:33:48  profilanswer
 

personnes a une idee?:'(

n°1131913
AlainTech
Pas trouvé? Cherche encore!
Posté le 27-06-2005 à 10:11:54  profilanswer
 

Oui, mais je n'aurai pas de réponse avant ce soir.
 
Tu as certainement une connexion RAS (carte d'accés à distance, comme on disait sout Win98).
 
A mon avis, tu prends l'adresse de cette carte.
 
Pour en être certain, si tu peux encore le faire, lance une connexion par modem et refais le test.


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
n°1133379
stagiaire6
tout est relatif
Posté le 28-06-2005 à 11:22:09  profilanswer
 

nan desoler je peut pas faire par modem...  
mais oui c'est bien une connetion RAS pour mon bureau. Tous le monde marche comme ca ici, et comme tu me la dis apparement, je prend l'adresse mac de la conection. 00:00:.... ect  
 
j'espere pouvoir trouver un moyen pour que ca marche. Mon boss il veut pouvoir avoir l'adress mac du pc malgres le connection RAS
 
allez @+ et merci de m'aider


Message édité par stagiaire6 le 28-06-2005 à 11:26:44

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Excel : Macro pour récupération de l'adresse de carte réseau

 

Sujets relatifs
problème de récupération substrRecuperation Code Source d'une page ASP, pour mettre dans une variable
renvoi de cellule(excel) en vbaCreateObject("Excel.Application") ne crée pas l'objet !
syncronisation d'un player video via le reseauExcel : Macro pour création classeur protégé
Syntaxe pour faire une requete sql sur un fichier Excel ?Rechercher un terme dans différentes feuilles excel
VBA macro pb 
Plus de sujets relatifs à : Excel : Macro pour récupération de l'adresse de carte réseau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR