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

VBA Discussion :

Comparaison de deux tableaux en VBA


Sujet :

VBA

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 186
    Points : 114
    Points
    114
    Par défaut Comparaison de deux tableaux en VBA
    bonjour,

    je voudrais avoir un exemple de programmation la plus basique possible , avec des boucles imbriquées et uniquement des instructions

    For ...To

    Next

    et l'instruction de condition

    If ...Then

    Pour comparer un à un, les i éléments d'un tableau Ta() avec les j éléments d'un second tableau Tb() et stocker dans un troisième tableau Tc () uniquement les éléments du second tableau qui diffèrent de ceux du premier tableau Ta()

  2. #2
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Bonjour,

    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
    Sub test()
     
        Dim Tb(2) As String
        Dim Ta(2) As String
        Dim Tc(2) As String
     
        Ta(0) = "123"
        Ta(1) = "456"
        Ta(2) = "789"
     
        Tb(0) = "123"
        Tb(1) = "455"
        Tb(2) = "789"
     
        Dim pareil As Boolean
        Dim i As Integer
        Dim j As Integer
        Dim k As Integer
     
        k = 0
     
        For i = 0 To 2
     
            For j = 0 To 2
                If Tb(i) = Ta(j) Then
                    pareil = True
                    Exit For
                Else
                    pareil = False
                End If
            Next
     
            If pareil = False Then
                Tc(k) = Tb(i)
                k = k + 1
            End If
     
        Next
     
    End Sub

  3. #3
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Bonjour,

    voici une démonstration général VBA universelle :
    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
    Sub Demo()
        TA = Split("A B C")
        TB = Split("F C E A D B")
     
        For Each B In TB
            For Each A In TA
                  If A = B Then Exit For
            Next
     
            If A = "" Then TC = TC & B & " "
        Next
     
        TC = Split(RTrim(TC))
     
        MsgBox "TA :  " & Join(TA) & vbLf & vbLf & "TB :  " & Join(TB) _
                                   & vbLf & vbLf & "TC :  " & Join(TC)
    End Sub
    Dans le cas d'une procédure VBA Excel avec des variables tableau de milliers d'éléments,
    une méthode à double boucle n'est pas la plus efficace, voire limite idiote !
    Mieux vaut privilégier par exemple une simple boucle combinée à la fonction de feuille de calculs EQUIV (Match en VBA),
    à consulter dans l'aide et dans les discussions du forum dédié …

    __________________________________________________________________________________________________
    Je suis Charlie - Je suis Bardo
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 186
    Points : 114
    Points
    114
    Par défaut
    merci.

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

Discussions similaires

  1. PL/SQL COMPARAISON DE DEUX TABLEAUX APRES BULK
    Par mimi_été dans le forum PL/SQL
    Réponses: 5
    Dernier message: 30/06/2009, 12h14
  2. Comparaison de deux tableaux
    Par tibss dans le forum Excel
    Réponses: 1
    Dernier message: 06/05/2009, 21h30
  3. Comparaison de deux tableaux en VB6
    Par taille50 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 10/08/2007, 10h28
  4. Comparaison de deux tableaux
    Par solorac dans le forum Excel
    Réponses: 7
    Dernier message: 03/08/2007, 08h49
  5. Comparaison de deux tableaux
    Par siaoly dans le forum Langage
    Réponses: 5
    Dernier message: 27/06/2006, 19h40

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