Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Comparer 2 objet ranges

  • Initiateur de la discussion Initiateur de la discussion KmiKze
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

K

KmiKze

Guest
Bonsoir,

Je suis sur un projet. Pb, je dois transférer des plages d'un classeur à l'autre.
Rien de plus simple : un copier coller.
Là où ça se complique : il faut éviter les doublons. Il me faut donc comparer chaque valeur que j'exporte avant de l'insérer à ma nouvelle base de donnée.
Qui pourrez m'indiquez quelle méthode permet la comparaison de 2 objet range !

Merci d'avance.

Ps : promis dès que mon projet est effectif je le mets sur à disposition !
 
Je proposerai plutôt cela (avec les filtres élaborés)

Sub CopieSansDoublon()
ActiveCell.CurrentRegion.Name = "maselect"
Range("maselect").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
"F1"), Unique:=True
End Sub
 
=> DEMO VBA Filtrer les Doublons en Comparaison 2 Objet Ranges(Complete Row)

Bonjour Mireille, Ronan, KmiKze, le Forum

Une autre approche 100% VBA, avec des Dynamic Arrays, et un Objet New Collection qui va analyser ligne par ligne les données de deux feuilles "DB1" et "DB2" et les reporter en clef unique sur une feuille "Reporting".

Ici je ne traite que 8 colonnes pour cette démo, mais on peut "élargir" à condition de bien respecter :
¤ D'ajuste les Tailles respectives de "PlageA" et "PlageB"
¤ D'ajuster correctement les deux Redim du Tableau "DataTab" en ajoutant les incrémentations nécessaires de colonnes.
¤ D'ajuster la Concaténation de la Variable String "TheKey"

Bonne Fin d'Après Midi
@+Thierry
 

Pièces jointes

Bonsoir à tous,

Que dire !!!

A part, trop d'la balle (pour parler comme les jeunes de maintenant).

Moi qui utilise énormément les tableaux pour extraire les doublons (où chaque ligne d'un tableau est comparée avec chaque ligne du second tableau), je ne connaissais pas la méthode utilisant l'objet "collection".
Franchement, le system :

On Error Resume Next
UnicItem.Add TheKey, TheKey

permettant d'inscrire dans l'objet "UnicItem" toutes les données sauf les doublons grâce au 2ème argument TheKey .......

Bon, décidemment, j'suis un gros nul

@+

Ronan
 
Re-Bonsoir

Une petite question à @+Thierry

Je ne comprend pas la subtilité de transposer un tableau vertical en tableau horizontal :

For i = 1 To UBound(PlageA, 1)
ReDim Preserve DataTab(8, x)
DataTab(0, x) = PlageA(i, 1)
DataTab(1, x) = PlageA(i, 2)
DataTab(2, x) = PlageA(i, 3)
DataTab(3, x) = PlageA(i, 4)
DataTab(4, x) = PlageA(i, 5)
DataTab(5, x) = PlageA(i, 6)
DataTab(6, x) = PlageA(i, 7)
DataTab(7, x) = PlageA(i, 8)
x = x + 1
Next i

Besoin d'une petite explication ???

@+

Ronan
 
Bonjour Ronan, Mireille, KmiKze, le Forum

Merci des compliments, et personne n'est nul, juste tout le monde a besoin d'apprendre c'est ce que je fais ici aussin et d'ailleurs en voici le preuve :

Pour la petite histoire et dans un souci d'équité, la méthode New Collection pour filtrer les items en double par sa propriété sur l'erreur pour la clef unique a été introduite dans ce Forum par Hurricane. Depuis c'est vrai que je me la suis octroyée !!! C'est vraiment trop pratique !! lol

Pour ta question "Pourquoi transposer un tableau vertical en tableau horizontal"...

Et bien c'est simple, dans un ReDim on ne peut que redimensionner la seconde dimension, donc je transpose...... Là aussi dans un souci d'équité avant que Zon me donne cette astuce, je cherchais la taille de mon tableau puis je l'incrémentais ensuite pour le garder à l'endroit, puis Zon m'a conseillé ce truc...

Il est évident que de faire un tableau à l'envers est un peu perturbant pour l'équilibre mental (lol) mais celà évite d'avoir à connaitre les dimensions à l'avance....

Voilà c'est tout simple. Et çà aussi je me le suis octroyé dans toutes mes applis, c'est nettement plus rapide que de faire un passage à blanc pour connaitre les dimensions...

Voilà je pense que c'est clair maintenant.

Bon Samedi à Tous et Toutes
@+Thierry
 
Bonsoir à tous,

Merci beaucoup pour ces infos mais, effectivement, en re-re-lisant l'aide (ce qu'on ne fait pas assez souvent) tout y est indiqué noir sur blanc.

@+

Ronan
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…