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 :

[VB] Classer par plage des adresses IP via une macro VB V2 [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 54
    Par défaut [VB] Classer par plage des adresses IP via une macro VB V2
    Bonjour,

    Je reviens avec ce sujet car j'ai une autre contrainte. Voici ce que j'ai :

    Adr IP
    192.246.213.1
    205.10.253.45
    192.246.210.104
    25.140.69.1
    192.246.62.18

    En gros ce que je veux obtenir c'est ce résultat là :

    192.246.xxx.xxx
    205.10.253.45
    25.140.69.1

    Je m'explique. Je veux rassembler les adresses IP qui ont leurs deux premiers groupes de chiffres (ex : "192.246") et laisser les autres adresses IP qui n'ont pas de doublons tels qu'elles sont.
    J'ai essayé quelque chose de très flou qui n'a évidemment pas fonctionné vu mon niveau de connaissance dans ce domaine. Ce que j'ai fais c'est que je parcours 1 à 1 les cellules de mon tableau et je compare avec la case d'après et si elles sont équivalentes je remplace par "le_debut_de_l'adresse.xxx.xxx" .
    Pouvez-vous m'aiguiller ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par sticks_678 Voir le message
    Bonjour,

    Comme ça par exemple ?

    Pièce jointe 232585

    Pour obtenir l'équivalent VBA, tapez d'abord une formule et modifiez là en enregistrant une macro. Pour ne garder qu'une seule valeur, regardez l'utilisation des variables Dictionnaires ou filtrez sans doublon sur cette nouvelle colonne.

    Cordialement.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 54
    Par défaut Classer par plage des adresses IP via une macro VB V2
    Merci pour ta réponse.
    Cependant il faut que cela fonctionne pour n'importe quel adresse IP qui se ressemble à partir des deux premiers.
    Je te fourni mon tableau si cela peut t'apporter un peu plus de précision.
    Je vais quand même tester ta méthode en essayant de l'appliquer à mon besoin.
    Nom : TAB_IP.png
Affichages : 555
Taille : 31,1 Ko

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par sticks_678 Voir le message
    Cependant il faut que cela fonctionne pour n'importe quel adresse IP qui se ressemble à partir des deux premiers.
    J'ai du mal à te suivre.

    La méthode donnée est là pour te donner le principe. Si tu développes une macro (je réaliserais plutôt une fonction dans ton cas), tu peux facilement régler tes X cas avec un select case.

    Cordialement.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 54
    Par défaut Classer par plage des adresses IP via une macro VB V2
    Les adresses IP que tu vois là peuvent être différente tous les jours je ne peux donc pas faire un select case car je ne suis pas censé connaître les adresses IP à l'avance. Enfaite toute les semaines j'ai un fichier contenant des adresses IP que je doit traiter comme tel pour réaliser des plages.

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Ces adresses comportent toujours 4 "groupes" séparés par un "."
    1) les trier
    2) éclater la colonne A par rapport au "." en ignorant les 2 derniers groupes (outil convertir)
    3) lire mes interventions de ce jour ou d'hier. L'une d'entre elles est le principe du reste de ton problème.
    Reviens avec le code essayé sur ces bases simples

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par sticks_678 Voir le message
    Les adresses IP que tu vois là peuvent être différente tous les jours je ne peux donc pas faire un select case car je ne suis pas censé connaître les adresses IP à l'avance. Enfaite toute les semaines j'ai un fichier contenant des adresses IP que je doit traiter comme tel pour réaliser des plages.
    Une solution équivalente à celle de Jacques :

    Il faut spliter les adresses et vérifier que les indices 0 et 1 de ta variable ont 3 caractères.

    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
     
    Function SelectionAdresseIP(ByVal AdresseIp As String) As String
     
    Dim MaVariableSplit As Variant
     
        MaVariableSplit = Split(AdresseIp, ".")
        If UBound(MaVariableSplit) > 1 Then
           If Len(MaVariableSplit(0)) = 3 And Len(MaVariableSplit(1)) = 3 Then
              SelectionAdresseIP = MaVariableSplit(0) & "." & MaVariableSplit(1) & ".XXX.XXX"
           Else
              SelectionAdresseIP = AdresseIp
           End If
        End If
     
    End Function

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] [VB] Classer par plage des adresses IP via une macro VB
    Par sticks_678 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 02/01/2017, 07h57
  2. Réponses: 0
    Dernier message: 28/05/2009, 11h52
  3. Réponses: 15
    Dernier message: 30/09/2008, 23h36
  4. Réponses: 45
    Dernier message: 14/02/2008, 15h41
  5. Réponses: 4
    Dernier message: 28/11/2007, 23h07

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