IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

VBA EXCEL : Insertion de l'adresse IP


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Par défaut VBA EXCEL : Insertion de l'adresse IP
    Bonjour le Forum,

    J'ai trouvé un code qui me permettait de récupérer l'adresse IP de la machine (code ci dessous) . Je voudrais insérer l'adresse IP de chaque utilisateur ainsi que la date et l'heure d'ouverture du fichier sur ma feuil1. (fichier partagé sur un serveur).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    Private Const MAX_ADAPTER_NAME_LENGTH As Long = 256
    Private Const MAX_ADAPTER_DESCRIPTION_LENGTH As Long = 128
    Private Const MAX_ADAPTER_ADDRESS_LENGTH As Long = 8
    Private Const ERROR_SUCCESS As Long = 0
     
    Private Type IP_ADDRESS_STRING
        IpAddr(0 To 15) As Byte
    End Type
     
    Private Type IP_MASK_STRING
        IpMask(0 To 15) As Byte
    End Type
     
    Private Type IP_ADDR_STRING
        dwNext As Long
        IpAddress As IP_ADDRESS_STRING
        IpMask As IP_MASK_STRING
        dwContext As Long
    End Type
     
    Private Type IP_ADAPTER_INFO
        dwNext As Long
        ComboIndex As Long  'reserved
       sAdapterName(0 To (MAX_ADAPTER_NAME_LENGTH + 3)) As Byte
        sDescription(0 To (MAX_ADAPTER_DESCRIPTION_LENGTH + 3)) As Byte
        dwAddressLength As Long
        sIPAddress(0 To (MAX_ADAPTER_ADDRESS_LENGTH - 1)) As Byte
        dwIndex As Long
        uType As Long
        uDhcpEnabled As Long
        CurrentIpAddress As Long
        IpAddressList As IP_ADDR_STRING
        GatewayList As IP_ADDR_STRING
        DhcpServer As IP_ADDR_STRING
        bHaveWins As Long
        PrimaryWinsServer As IP_ADDR_STRING
        SecondaryWinsServer As IP_ADDR_STRING
        LeaseObtained As Long
        LeaseExpires As Long
    End Type
     
    Private Declare Function GetAdaptersInfo Lib "iphlpapi.dll" _
                                             (pTcpTable As Any, pdwSize As Long) As Long
     
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
                                   (dst As Any, src As Any, ByVal bcount As Long)
     
    Private Function TrimNull(item As String)
     
    Dim pos As Integer
     
    pos = InStr(item, Chr$(0))
    If pos Then
        TrimNull = Left$(item, pos - 1)
    Else
        TrimNull = item
    End If
     
    End Function
     
    Public Function LocalIPAddress() As String
     
    Dim cbRequired  As Long
    Dim buff()      As Byte
    Dim Adapter     As IP_ADAPTER_INFO
    Dim AdapterStr  As IP_ADDR_STRING
    Dim ptr1        As Long
    Dim sIPAddr     As String
    Dim found       As Boolean
     
    GetAdaptersInfo ByVal 0&, cbRequired
     
    If cbRequired > 0 Then
        ReDim buff(0 To cbRequired - 1) As Byte
        If GetAdaptersInfo(buff(0), cbRequired) = ERROR_SUCCESS Then
            ptr1 = VarPtr(buff(0))
            Do While (ptr1 <> 0)
                CopyMemory Adapter, ByVal ptr1, LenB(Adapter)
                With Adapter
                    sIPAddr = TrimNull(StrConv(.IpAddressList.IpAddress.IpAddr, vbUnicode))
                    If Len(sIPAddr) > 0 Then
                        found = True
                        Exit Do
                    End If
                    ptr1 = .dwNext
                End With
            Loop
        End If
    End If
     
    LocalIPAddress = sIPAddr
     
    End Function
    En mettant LocalIPAddress = Range("A1") sur le workbook open l'adresse IP s’insère sur la cellule "A1" (il me manque la date et l'heure sur la cellule "B1"). je veux lorsqu'il s'agit d'une nouvelle adresse IP(nouveau utilisateur), il y'aura insertion de cette nouvelle adresse IP non pas sur "A1" mais sur la cellule ("A2") et la date sur la cellule "B2" et ainsi de suite.. et si l'adresse IP existe déjà sur la colonne A (ancien utilisateur) , il suffit uniquement de changer l'heure sur la même ligne sur la colonne B .

    Merci d'avance.

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Moi, ce que j'en dis, c'est que ce forum n'est pas un service de production de code clef-en-main et qu'avec la technique des adresses IP dynamiques qui ne garantit pas une adresses IP permanente et le zigonnage dans des classeurs partagés, c'est une boîte de pandore.

Discussions similaires

  1. [VBA-Excel] insertion de frame dans une frame
    Par Wini29 dans le forum Excel
    Réponses: 0
    Dernier message: 24/01/2013, 13h43
  2. [XL-2007] Creation d'un PowerPoint via VBA Excel + insertion d'un template ".pot"
    Par Calbute dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/03/2012, 10h04
  3. Réponses: 2
    Dernier message: 06/02/2007, 15h05
  4. vba excel : insertion d image gif dans feuille excel
    Par chamus dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/01/2007, 13h16
  5. [VBA][Excel]Insertion de l'heure
    Par Pollux dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 18/01/2006, 15h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo