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 :

comparaison de 2 listes excel et nom commun


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    VDI
    Inscrit en
    Mars 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : VDI

    Informations forums :
    Inscription : Mars 2015
    Messages : 9
    Par défaut comparaison de 2 listes excel et nom commun
    Bonjour,

    j'ai trouvé, pour les besoin d'un tableau excel, un bout de code que j'ai réussi à adapté à mon cas.

    il s'agit de comparer 2 listes et de renvoyé les noms communs aux deux listes.
    La dessus pas de soucis ça fonctionne bien.
    Le soucis que j'ai est que si je retire des noms de la liste 2, ils restent tout de même affiché dans les nom commun alors qu'il ne sont plus commun aux 2 liste.

    comment faire?

    A noté que je n'y connais rien au VBA, j'ai fais de la bidouille a partir de code déjà existant.

    voici mon code (trouvé ici: http://boisgontierjacques.free.fr/ ):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Communs()
    Set f1 = Sheets("code")
    Set f2 = Sheets("mars 2015")
    Set mondico1 = CreateObject("Scripting.Dictionary")
    For Each c In f1.Range("m5:m15" & f1.[m65000].End(xlUp).Row)
        mondico1.Item(c.Value) = c.Value
    Next c
    Set mondico2 = CreateObject("Scripting.Dictionary")
    For Each c In f2.Range("v3:V100" & f2.[d65000].End(xlUp).Row)
        If mondico1.Exists(c.Value) Then If Not mondico2.Exists(c.Value) Then mondico2.Add c.Value, c.Value
    Next c
    Sheets("Mars 2015").[AB5].Resize(mondico2.Count, 1) = Application.Transpose(mondico2.items)
    End Sub
    Merci pour vos reponses

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonjour,

    Il faut utiliser une fonction:

    -Sélectionner un champ vertical
    =communs(champ1;champ2)
    -Valider avec maj+ctrl+entrée

    http://boisgontierjacques.free.fr/fi...ionCommuns.xls

    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
     
    Function Communs(champ1, champ2)
     Application.volatile
     Dim temp()
     Set MonDico1 = CreateObject("Scripting.Dictionary")
      For Each c In champ1
        If Not MonDico1.Exists(c.Value) Then MonDico1.Add c.Value, c.Value
      Next c
      Set mondico2 = CreateObject("Scripting.Dictionary")
      For Each c In champ2
        If c <> "" And MonDico1.Exists(c.Value) Then
          If Not mondico2.Exists(c.Value) Then mondico2.Add c.Value, c.Value
        End If
      Next c
      i = 1
      ReDim temp(1 To Application.Caller.Rows.Count)
      i = 1
      For Each c In mondico2.items
        temp(i) = c
        i = i + 1
      Next
      Communs = Application.Transpose(temp)
    End Function
    Jacques Boisgontier

Discussions similaires

  1. Importation d'une table excel avec nom paramétrable
    Par mastasushi dans le forum Access
    Réponses: 4
    Dernier message: 13/02/2007, 19h20
  2. [VBA-E]comparaison de 2 fichiers Excel
    Par frederic.go dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/03/2006, 14h22
  3. [VBA]ajout liste excell
    Par Cibou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/01/2006, 17h23
  4. Comparaison d'une liste de string à un string
    Par maxazac dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 19/10/2005, 15h39
  5. [win32] Importation liste Excel
    Par pier dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 07/09/2005, 12h10

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