Faire concorder les données
#1
Débutant XLPages

Inscription: 16/11/2009

Messages: 14

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 04-01-2010 15h11
Bonjour et bonne année!

J'ai un chiffrier qui contiens des données et je dois l'arimer avec une liste de numéros.

Explications:

Je veux que les nombres de la colonne A s'allignent avec ceux de la colonne B, par exemple, je voudrais que le 123456 de la colonne A soit vis à vis le 123456 de la colonne B. Mon fichier contiens 13206 numéros et ma liste fait 12855 numéros. Je veux que ces derniers se placent vis à vis leur semblable.

Suis-je clair?

Je joint un fichier de données à titre d'exemple.

Merci!
Pièce jointe:
xls Test 1.xls   [ Taille: 19.50 Ko - Téléchargements: 484 ]
Hors Ligne
Rapport   Haut 

Re: Faire concorder les données
#2
Accro XLPages

Inscription: 09/01/2008
De Montréal, Québec

Messages: 463

Système d'exploitation:
PC
Version Excel utilisée:
97 à 2016
Posté le : 04-01-2010 16h09
Bonjour Slimbad,

Le fichier fourni porte des nombres (no. de téléphone).
Les no. des lignes 3, 18, 19, 29, 30 de la colonne B n'ont pas de vis-a-vis.

Qu'est-ce qui différencie les no. de la colonne A de ceux de la colonne B?
Comment sont chargés ces no.?
Peux-tu donner un topo plus large de ce que tu cherches à faire?

Cordialement,

Guy



Hors Ligne
Rapport   Haut 

Re: Faire concorder les données
#3
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 04-01-2010 16h25
Bonjour Slimbad, Guy, le Forum,

Meilleurs voeux pour cette nouvelle année !

Si j'ai bien compris, en pièce jointe, peut-être une réponse à ta question...

J'ai utilisé la procédure VBA suivante :
Option Explicit
' myDearFriend!  -  www.mdf-xlpages.com

Sub Traitement()
Dim TabA As Variant, TabB As Variant
Dim L As Long, L1 As Long
    With Sheets("Feuil1")
        'Mémorise les données en colonne A
        L = .Cells(.Rows.Count, 1).End(xlUp).Row
        TabA = .Range(.Cells(2, 1), .Cells(L, 1)).Value
        'Mémorise les données en colonne B et l'efface
        L = .Cells(.Rows.Count, 2).End(xlUp).Row
        With .Range(.Cells(2, 2), .Cells(L, 2))
            TabB = .Value
            .ClearContents
        End With
        'Pour chaque élément de la colonne B
        On Error Resume Next
        For L = 1 To UBound(TabB, 1)
            'Cherche la correspondance en A
            L1 = Application.Match(TabB(L, 1), TabA, 0)
            If L1 > 0 Then
                'MAJ colonne B
                .Cells(L1 + 1, 2).Value = TabB(L, 1)
                L1 = 0
            Else
                'Archive les non-correspondances en Feuil2
                With Sheets("Feuil2")
                    .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row + 1, 1).Value = TabB(L, 1)
                End With
            End If
        Next L
    End With
    MsgBox "Redistribution terminée !", vbOKOnly + vbInformation, "myDearFriend! - www.mdf-xlpages.com"
End Sub
Dans le doute, ce code archive en Feuil2 les éléments de la colonne B n'ayant pas trouvé correspondance.

Bien cordialement,
Pièce jointe:
zip PourSlimbad.zip   [ Taille: 12.87 Ko - Téléchargements: 480 ]

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Faire concorder les données
#4
Débutant XLPages

Inscription: 16/11/2009

Messages: 14

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 04-01-2010 17h28
Bonjour et merci!

Cela fonctionne sauf que le fait d'enlever les éléments de B ne trouvant pas de concordance dans A fausse mes données.

Est-ce possible de plutôt laisser la cellule vide en A ? De cette manière je pourrais filtrer sur les vides si besoin. La raison est que les cellules suivantes sont importantes et j'ai besoin du numéro pour recherche.

Merci! (en passant, je suis nul en VBA)
Hors Ligne
Rapport   Haut 

Re: Faire concorder les données
#5
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 04-01-2010 17h52
Re,

Dans ce cas, le code peut devenir celui-ci :
Option Explicit
' myDearFriend!  -  www.mdf-xlpages.com

Sub
Traitement()
Dim TabA As Variant, TabB As Variant
Dim L As Long, L1 As Long
    With Sheets("Feuil1")
        'Mémorise les données en colonne A
        L = .Cells(.Rows.Count, 1).End(xlUp).Row
        TabA = .Range(.Cells(2, 1), .Cells(L, 1)).Value
        'Mémorise les données en colonne B et l'efface
        L = .Cells(.Rows.Count, 2).End(xlUp).Row
        With .Range(.Cells(2, 2), .Cells(L, 2))
            TabB = .Value
            .ClearContents
        End With
        'Pour chaque élément de la colonne B
        On Error Resume Next
        For L = 1 To UBound(TabB, 1)
            'Cherche la correspondance en A
            L1 = Application.Match(TabB(L, 1), TabA, 0)
            If L1 > 0 Then
                'MAJ colonne B
                .Cells(L1 + 1, 2).Value = TabB(L, 1)
                L1 = 0
            Else
                'Ajoute les non-correspondances en fin de tableau colonne B
                .Cells(Application.Max(.Cells(.Rows.Count, 2).End(xlUp).Row + 1, _
                        UBound(TabA, 1) + 2), 2).Value = TabB(L, 1)

            End If
        Next L
    End With
    MsgBox "Redistribution terminée !", vbOKOnly + vbInformation, _
            "myDearFriend! - www.mdf-xlpages.com"
End Sub
Il rassemblera les non-correspondances en fin de tableau colonne B.

Habituellement, je ne suis pas fan de donner du code VBA à quelqu'un qui ne saura sans doute pas quoi en faire d'ici quelques jours ou qui ne pourra le modifier lui-même lorsqu'une modification du traitement se fera sentir... Je te conseille fortement d'essayer d'en apprendre les rudiments pour la suite si tu comptes en tirer avantage à l'avenir...

Bien cordialement,

Pièce jointe:
zip PourSlimbad2.zip   [ Taille: 12.96 Ko - Téléchargements: 461 ]

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Faire concorder les données
#6
Débutant XLPages

Inscription: 16/11/2009

Messages: 14

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 21-01-2010 02h51
Bonjour,

Désolé du retard.

Ça a très bien fonctionné.

Merci!
Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes