Matchage sur 2 tableaux selon critères

guenfood

XLDnaute Occasionnel
(RESOLU) Comment matcher 2 tableaux selon critères définis ?

Bonjour,

Je souhaite créer un tableau excel avec une macro qui aura la fonction suivante :
Ouvrir mes tableaux excel "X" et "Y" présents dans un dossier spécifique.
Faire le tri suivant :
Si ma colonne A et ma colonne F de mon tableau "X" sont identiques à mes colonnes B et M de mon tableau "Y" et uniquement si ma colonne F de mon tableau "Y" est non vide, alors toutes les lignes qui sont correspondantes soient effacées pour qu'il ne me reste que les "suspens".

En gros, si A=B et F=M entre X et Y, uniquement si B de Y est non vide, alors les lignes matchées sont effacées. Il ne reste que mes suspens.

Merci de votre aide.
 
Dernière édition:

dixit

XLDnaute Impliqué
Re : Matchage sur 2 tableaux selon critères

bonjour,
oui un exemple c'est mieux d'autant que les explications ne sont pas cohérentes ; extraits :
"uniquement si ma colonne F de mon tableau "Y" est non vide
uniquement si B de Y est non vide"
 

guenfood

XLDnaute Occasionnel
Re : Matchage sur 2 tableaux selon critères

Ci-joint 2 tableaux concernés.
En rouge les lignes à matcher ensemble si la ligne en bleue est remplie.
Les lignes qui sont matchées doivent être effacées afin qu'il ne reste que les "suspens".

Désolé pour mon manque de clarté !
 

Pièces jointes

  • X.XLS
    22 KB · Affichages: 72
  • X.XLS
    22 KB · Affichages: 65
  • X.XLS
    22 KB · Affichages: 66
  • Y.xls
    46 KB · Affichages: 69
  • Y.xls
    46 KB · Affichages: 69
  • Y.xls
    46 KB · Affichages: 71

SergiO

XLDnaute Accro
Re : Matchage sur 2 tableaux selon critères

Re,

Voici un code à tester car dans ton exemple je n'ai trouvé aucune ligne identique.

Pour le test et pour constater + facilement si ça fonctionne, les lignes ne s'effaceront pas mais se mettront en vert.


Code:
Sub Match()
Application.ScreenUpdating = False
Workbooks("Y.xls").Activate
Derlig = Range("A65536").End(xlUp).Row
For Each Cel In Range("F2:F" & Derlig)
If Cel.Value <> "" Then
Lig = Cel.Row
Num = Cells(Lig, 2)
Etat = Cells(Lig, 13)
Workbooks("X.xls").Activate
On Error Resume Next
Range("E1").Select
With Range("E1:E65536")
.Find(Etat).Activate
End With
If ActiveCell.Offset(0, -4).Value = Num Then
ActiveCell.EntireRow.Interior.ColorIndex = 4
Workbooks("Y.xls").Activate
Cells(Lig, 1).EntireRow.Interior.ColorIndex = 4
End If
End If
Workbooks("Y.xls").Activate
Next Cel
Application.ScreenUpdating = True
End Sub

@+
 

dixit

XLDnaute Impliqué
Re : Matchage sur 2 tableaux selon critères

re
voici une proposition
lire la feuil1 et faire les tests sur fichiers d'essai
ensuite il sera possible d'améliorer
[edit : n'avais pas vu la réponse précédente ...]
nota : fichier joint supprimé ; voir réponse suivante
 
Dernière édition:

guenfood

XLDnaute Occasionnel
Re : Matchage sur 2 tableaux selon critères

Merci à vous pour ces réponses.
DIXIT, comment savoir si la macro fonctionne puisque les fichiers sont fermés par la suite ?
Je ne peux visionner si le matchage se fait.
Ou bien ai-je raté un épisode ? Ce qui serait fort possible :eek:)
 

dixit

XLDnaute Impliqué
Re : Matchage sur 2 tableaux selon critères

re
je vois que monsieur ne suit pas bien.
si les fichiers sont modifiés, Excel pose la question de la sauvegarde avant de fermer : il suffit de cliquer ANNULER.
si la question n'est pas posée, c'est que le fichier n'a pas été modifié donc qu'il n'y a aucune concordance (sauf anomalie dans le code).
il me semble que Sergio a dit qu'il n'y avait aucune concordance.
je confirme que cela vient du test sur le colonne F non vide.
pour faire des essais, il est simple de mettre une apostrophe en début de ligne If Workbooks(fichier2).ActiveSheet.Range("F" & numligney) = "" Then Exit For ' si cellule vide en colonne F sortie de boucle
autre possibilité : mettre une apostrophe au début des 2 lignes avant end sub (lignes de clôture des 2 fichiers)
si ce n'est pas clair, ne pas hésiter à poser des questions.
à suivre
ps : j'ai oublié de dire que je ne sais pas à quoi correspond matcher
 

Discussions similaires

Statistiques des forums

Discussions
312 291
Messages
2 086 852
Membres
103 400
dernier inscrit
MINOU WILL