Comparer et extraire

tim

XLDnaute Nouveau
Bonjour le forum,

Chaque mois, je reçois 2 bases longues de plus de 800 lignes chacune, je dois comparer et en extraire les différentes anomalies.
Etant novice en VBA, je fais appel à vos connaissances afin d’établir des macros me permettant d’aboutir en quelques clics aux résultats escomptés sur differentes feuilles. Je joins un fichier pour être plus explicite.

Je remercie d’avance toutes les personnes qui se pencheront sur cette recherche.

Tim
 

Pièces jointes

  • test.xls
    64.5 KB · Affichages: 71
  • test.xls
    64.5 KB · Affichages: 78
  • test.xls
    64.5 KB · Affichages: 82
Dernière édition:

fhoest

XLDnaute Accro
Re : Comparer et extraire

Bonjour,
pour commencer voici une macro qui te permettra de prendre les communs: code a coller derriere le bouton communs a base 1 et base 2.
click droit sur le bouton ->affecter une macro-> ok
coller le code suivant.
Code:
Sub Itemscommuns()
Dim communs, i, j, drligne1, drligne2, nb As Long
Dim c, d As Range
Dim comparer1, comparer2 As String

drligne1 = Sheets("BASE 1").UsedRange.Rows.Count
drligne2 = Sheets("BASE 2").UsedRange.Rows.Count
If drligne1 <= drligne2 Then
drligne = drligne2
Else:
drligne = drligne1
End If
For i = 2 To drligne
comparer1 = Sheets("BASE 1").Cells(i, 1) & Sheets("BASE 1").Cells(i, 2)
For j = 2 To drligne
comparer2 = Sheets("BASE 2").Cells(j, 1) & Sheets("BASE 2").Cells(j, 2)
If comparer1 = comparer2 Then communs = communs + 1
Next
Next
MsgBox (communs)
End Sub
A+
 

Dranreb

XLDnaute Barbatruc
Re : Comparer et extraire

Bonsoir

Attention fhoest
Dim communs, i, j, drligne1, drligne2, nb As Long
Dim c, d As Range
Dim comparer1, comparer2 As String
Il faut que tu saches qu'avec ces Dim: nb est déclaré Long, d Range et comparer2 String. Toutes les autres sont déclarées Variant.

Par ailleurs, je préfère personnellement les faire commencer par une majuscule. Je les tape ensuite en minuscule dans le code: s'il ne me rectifie pas la casse c'est que j'ai une erreur de frappe ou que la variable n'est pas encore déclarée.
À +
 

fhoest

XLDnaute Accro
Re : Comparer et extraire

Bonjour Dranreb,
merci pour l'info,
je pensé que le fait de séparer par une virgule les variables étaient automatiquement dimensionnés sur le dernier type
il faudra alors que je change ceci dans pas mal de mes projets maintenant.
je ferais maintenant plus attention a ça ainsi qu' a la façon de les créers
Au plaisir.
 

tim

XLDnaute Nouveau
Re : Comparer et extraire

Bonsoir,
Tout d'abord merci d'avoir consacré de votre temps à ce cas.
Fhoest et Dranreb je suis trop novice en VBA pour comprendre votre échange, mais celà a mis en doute l'utilisation de la macro de Dranreb.

J'ai utilisé le travail de Boisgontier en le transcrivant sur la totalité de mes 2 bases (+ de 800 lignes).
Il reste quelques perfectionnements à apporter essentiellement dans le feuillet "BD2 Non BD1" qui rapporte des codes sans les noms (+ des 2/3 absents).
Toutefois le travail accompli est impressionnant :)
Merci

Arf je rajoute un commentaire , j'avais pas vu les modifications apportées à ton fichier Boisgontier,
Je reteste le tout et te tiens informé. Merci :)
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Comparer et extraire

Trouvé au sujet de Variant dans l'aide
Conseil Si vous spécifiez un type de données pour une variable ou un argument, puis n'utilisez pas le bon type de données, une erreur de type de données se produit. Pour éviter cet incident, utilisez uniquement des variables implicites (de type Variant) ou déclarez explicitement toutes les variables et spécifiez un type de données. La dernière méthode est préférable.
Personnellement, déjà ça m'arrive rarement, ensuite je ne le perçois pas comme un incident mais comme une assistance à la mise au point qui fixe les idées sur ce que je tente de faire et sa conformité avec ce que je voulais faire.
Mais c'est surtout la dernière phrase que je retiens.
Cordialement
 

Statistiques des forums

Discussions
312 112
Messages
2 085 417
Membres
102 885
dernier inscrit
AISSOU