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 :

comparer les valeur de A & B et saisir la différence en colonne C & D [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut comparer les valeur de A & B et saisir la différence en colonne C & D
    Salut tout le monde
    Grace à vous j'avance dans mon projet ... merci pour toutes et tous
    je cherche macro qui parcours les valeurs figurant dans la colonne A les compare par rapport à la colonne B et renvoie les valeur qui figure en "A" mais pas dans "B" à la colonne "C"
    De même il compare "B" par rapport à "A" et renvoie la différence à la colonne "D"

    Merci d'avance

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    j'ai peur de mal comprendre, je reformule :

    Si A <> B alors :

    - C = A
    ET
    - D = B - A

    c'est ça ?


    et si A = B : on ne fait rien

  3. #3
    Membre très actif Avatar de lionel86500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2013
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

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

    Informations forums :
    Inscription : Juin 2013
    Messages : 144
    Par défaut
    Bonjour,

    La seconde explication me parait plus compréhensible.
    oui je pense que c'est ca.

    Fonction de base sous excel

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    c'est une rapprochement entre A & B
    En colonne C je veux enregistrer les montant qui existe ds la colonne A:A mais non pas dans la colonne B:B
    et dans la colonne "D" j'enregistre les montant qui existe ds la colonne B;B mais non pas dans la colonne A:A

    CAD
    donc si A = B ===== Rien a faire
    Si A(i) inexistant dans B:B donc Enregistrer A(i) dans C
    Si B (i) inexistant dans A:A donc Enregistrer B(i) dans D

    Merci encore

    Je suis pour toute solution qui peut rapprocher les montants de deux colonnes (de meme signe) meme en supprimant ceux qui sont identique
    j'attends svp un coup de main.. bonne soirée

  5. #5
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    en partant du principe que :

    - les données commencent en ligne 2
    - on a autant de lignes en colonne A qu'en colonne B

    ça ressemble à ça (largement optimisable mais je suis pressé)

    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
    Sub Comparaison()
    Dim Tablo
     
    With Worksheets("Feuil1")
    Tablo = .Range(.Cells(2, 1), .Cells(.Rows.Count, 2).End(xlUp))
     
        For i = LBound(Tablo, 1) To UBound(Tablo, 1)
            existe = False
            For j = LBound(Tablo, 1) To UBound(Tablo, 1)
                If Tablo(i, 1) = Tablo(j, 2) Then
                    existe = True
                    Exit For
                End If
            Next j
            If existe = False Then .Cells(i + 1, 3) = Tablo(i, 1)
        Next i
     
        For i = LBound(Tablo, 1) To UBound(Tablo, 1)
            existe = False
            For j = LBound(Tablo, 1) To UBound(Tablo, 1)
                If Tablo(i, 2) = Tablo(j, 1) Then
                    existe = True
                    Exit For
                End If
            Next j
            If existe = False Then .Cells(i + 1, 4) = Tablo(i, 2)
        Next i
    End With
     
    End Sub
    dis nous ce qu'il en est, si c'est ok je verrai pour simplifier

  6. #6
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Tout d'abord GRAND MERCI
    j'ai testé et il y a deux problème ;
    1/ Si la colonne B > A il s'arret au dernier colonne de B et voila l'exemple :
    ColA ColB ColC ColD
    1 / 1
    2 / 2
    9 / 9
    7
    ds l'exemple il doit envoyé le (7) vers le colonne C
    2/ Un montant qui a déjà fait l'objet de rapprochement continue la comparaison pour les montants de meme valeur (problème de doublon)
    Exemple :
    ColA ColB ColC ColD
    1 / 1
    2 / 2
    9 / 2 / 9
    normalement le montant (2) de la troisième ligne doit figurer ds la colonne D -ligne 3
    Encore merci et bonne nuit

  7. #7
    Expert éminent
    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
    Par défaut

    Bonjour, bonjour !

    Effectivement, mieux vaut penser d'abord Excel avant VBA !
    Qui plus est un code faisant appel aux fonctions d'Excel est plus efficace qu'un autre en pur VBA …

    Avec juste un peu de jugeote, une simple formule de feuille de calculs fait déjà l'affaire !
    En reprenant l'exemple de données de Sergerie, formule de la cellule C1 :

    =SI(NB.SI($A$1:$A1;A1)>NB.SI($B$1:$B$6;A1);A1;"")

    Puis la recopier vers le bas jusqu'à la cellule C6. Ce n'est pas compliqué, à la portée d'un débutant …
    Donc pour les quiches en VBA ou profitant des forums pour faire faire leur boulot,
    une formule de feuille de calculs est déjà à leur portée s'ils sont pressés !

    Si un code est vraiment nécessaire, il suffit d'activer le Générateur de macros
    puis de réitérer les manipulations : une base de code est livrée sur un plateau !

    Avec un peu d'expérience de codage, affecter directement la formule à la plage de cellules est plus efficace.
    S'il y a énormément de lignes à traiter, les dictionnaires s'imposent;
    si TamTam64 passe par là, un fondu de dictionnaire même quand il n'y en a pas vraiment besoin …

    _____________________________________________________________________________________________________
    Je suis Charlie - Je suis Bardo

  8. #8
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    simple et efficace ...MERCI Monsieur
    Pour moi c'est résolu
    bonne appétit à tous et a toutes

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

Discussions similaires

  1. comparer les valeurs d'un même tableau
    Par DelphLaga dans le forum Langage
    Réponses: 11
    Dernier message: 19/07/2006, 14h32
  2. comment comparer les valeurs retournés par DBGrid
    Par Ice-tea dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/06/2006, 14h42
  3. [VBA-E] Comparer les valeurs entre classeur
    Par Mut dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/03/2006, 12h32
  4. Réponses: 17
    Dernier message: 31/12/2005, 21h32
  5. comparer les valeurs d'un tableau
    Par nicerico dans le forum ASP
    Réponses: 4
    Dernier message: 19/08/2004, 11h20

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