Excel comparer colonnes
bonjour,
et merci d'avance à tous ceux qui pourront m'aider
voila, dans le fichier joint, je voudrais comparer les 2 premieres colonnes des 2 onglets, et inserer dans le 2° onglet les lignes manquantes. De plus ce serait le top si ça se faisait automatiquement.
Vous pensez que c'est possible?
Bonjour,
as tu trouvé une solution, car je recherche quelque chose de similaire.
https://www.excel-pratique.com/forum/viewtopic.php?t=11183
Merci
Mathieu
j'ai trouvé ceci http://support.microsoft.com/kb/213367/fr
Bonjour,
Apres un petit quart d'heure de code, voici le resultat en VBA.
Sub comparer_completer()
'Activation de la feuille principale
Sheets("Principal").Activate
'Stockage des noms de feuilles
Range("B1").Activate
' Nom de la feuille de référence
valfprinc = ActiveCell.Value
' Nom de la feuille a compléter
valfacompleter = ActiveCell.Offset(1, 0).Value
'Activation de la feuille de référence
Sheets(valfprinc).Activate
'On se place dans la cellule A1
Range("A1").Activate
'Boucle1 ' tant que la cellule active n'est pas vide
Do While ActiveCell.Value <> ""
'Stockage des valeurs a chercher
val1 = ActiveCell.Value
val2 = ActiveCell.Offset(0, 1).Value
'ACtivation de la feuille a completer
Sheets(valfacompleter).Activate
'On se place dans la cellule A1
Range("A1").Activate
'Variable de valeur trouvée
valtrouv = ""
'Boucle2 Tant que la cellule acitve n'est pas vide
Do While ActiveCell.Value <> ""
'Test si la valeur de la cellule active est egale a val1 et si la valeur de la cellule adjacente est egal a val2
If ActiveCell.Value = val1 And ActiveCell.Offset(0, 1).Value = val2 Then
'Si valeurs sont trouvées
valtrouv = 1
'On passe a la ligne suivante
ActiveCell.Offset(1, 0).Activate
Else
'On passe a la ligne suivante
ActiveCell.Offset(1, 0).Activate
End If
'Fin du test
Loop
'Fin de boucle2
'SI on n'a pas trouvé de corerspondance
If valtrouv <> 1 Then
'On ecrit les valeurs cherchees a la fin du tableau
ActiveCell.Value = val1
ActiveCell.Offset(0, 1).Value = val2
'On remplit les cellules en rouge
ActiveCell.Interior.ColorIndex = 3
ActiveCell.Offset(0, 1).Interior.ColorIndex = 3
End If
'On revient sur la feuille de référence
Sheets(valfprinc).Activate
'Si on a pas trouvé de correspondance
If valtrouv <> 1 Then
'On remplit les cellule en rouge
ActiveCell.Interior.ColorIndex = 3
ActiveCell.Offset(0, 1).Interior.ColorIndex = 3
End If
'On passe a la ligne suivante
ActiveCell.Offset(1, 0).Activate
Loop
'Fin de boucle1
End Sub
Et voici mon fichier test
https://www.excel-pratique.com/~files/doc2/trajectoire_modif_semaine.xls
Les explications :
On copie la feuille dite de référence, ou feuille contenant toutes les données
On copie la feuille incomplète
Dans l'onglet principal en cellule B1 on indique le nom de l'onglet de référence, dans la cellule B2 on indique le nom de l'onglet à compléter.
On lance la macro "ThisWorkbook.comparer_completer"
Menu Outils --> Macro --> Macro ... sélectino dans la liste. --> Executer
Et normalement si tout va bien ... vous verrez apparaitre les lignes manquantes dans le deuxième onglet avec un remplissage rouge et dans le premier on remplit en rouge aussi pour indiquer les lignes copiées.
En espérant que cela reponde a vos attentes.
chrystelle3103,
je suppose que depuis le temps, vous avez trouvé une solution à votre problème.
Si ce n'est pas le cas et que vous n'êtes pas familière avec les macros, voici un autre piste :
Il s'agit d'un service gratuit qui semble répondre à votre besoin initial.