Bonsoir,
Comment puis je comparer deux listes ou deux feuilles excel pour en extraire
les enregistrements différents (en clair les mises à jour dans l'une d'elle)
Merci à tous ;-)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ChrisV
Bonjour,
Sans autre précision... En supposant que la liste 1 se situe en Feuil1!A1:A15 (plage nommée Zn1) et la liste 2 en Feuil2!A1:A15 (plage nommée Zn2), et que tu veuilles extraire sur un onglet différent les éléments de Zn1 non-présents en Zn2...
Sub comPar() Dim inF As String, x As Long, c As Range Dim reC With Application .ScreenUpdating = False .DisplayAlerts = False End With On Error Resume Next Sheets("Comp").Delete Sheets.Add After:=Worksheets(Worksheets.Count) ActiveSheet.Name = "Comp" x = 1 For Each c In Range("Zn1") Set reC = Range("Zn2").Find(c) If reC Is Nothing Then Range("A" & x) = c x = x + 1 End If Next With Application .ScreenUpdating = True .DisplayAlerts = True End With If IsEmpty([A1]) Then _ MsgBox "Toutes les données correspondent !" Set reC = Nothing End Sub
ChrisV
"news.wanadoo.fr" a écrit dans le message de news: bv6laq$gmm$
Bonsoir, Comment puis je comparer deux listes ou deux feuilles excel pour en extraire
les enregistrements différents (en clair les mises à jour dans l'une d'elle)
Merci à tous ;-)
Bonjour,
Sans autre précision...
En supposant que la liste 1 se situe en Feuil1!A1:A15 (plage nommée Zn1) et
la liste 2 en Feuil2!A1:A15 (plage nommée Zn2), et que tu veuilles extraire
sur un onglet différent les éléments de Zn1 non-présents en Zn2...
Sub comPar()
Dim inF As String, x As Long, c As Range
Dim reC
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
On Error Resume Next
Sheets("Comp").Delete
Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "Comp"
x = 1
For Each c In Range("Zn1")
Set reC = Range("Zn2").Find(c)
If reC Is Nothing Then
Range("A" & x) = c
x = x + 1
End If
Next
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
If IsEmpty([A1]) Then _
MsgBox "Toutes les données correspondent !"
Set reC = Nothing
End Sub
ChrisV
"news.wanadoo.fr" <bd@wanadoo.fr> a écrit dans le message de news:
bv6laq$gmm$1@news-reader1.wanadoo.fr...
Bonsoir,
Comment puis je comparer deux listes ou deux feuilles excel pour en
extraire
les enregistrements différents (en clair les mises à jour dans l'une
d'elle)
Sans autre précision... En supposant que la liste 1 se situe en Feuil1!A1:A15 (plage nommée Zn1) et la liste 2 en Feuil2!A1:A15 (plage nommée Zn2), et que tu veuilles extraire sur un onglet différent les éléments de Zn1 non-présents en Zn2...
Sub comPar() Dim inF As String, x As Long, c As Range Dim reC With Application .ScreenUpdating = False .DisplayAlerts = False End With On Error Resume Next Sheets("Comp").Delete Sheets.Add After:=Worksheets(Worksheets.Count) ActiveSheet.Name = "Comp" x = 1 For Each c In Range("Zn1") Set reC = Range("Zn2").Find(c) If reC Is Nothing Then Range("A" & x) = c x = x + 1 End If Next With Application .ScreenUpdating = True .DisplayAlerts = True End With If IsEmpty([A1]) Then _ MsgBox "Toutes les données correspondent !" Set reC = Nothing End Sub
ChrisV
"news.wanadoo.fr" a écrit dans le message de news: bv6laq$gmm$
Bonsoir, Comment puis je comparer deux listes ou deux feuilles excel pour en extraire
les enregistrements différents (en clair les mises à jour dans l'une d'elle)
Merci à tous ;-)
news.wanadoo.fr
Merci je teste ;-) "ChrisV" a écrit dans le message de news:
Bonjour,
Sans autre précision... En supposant que la liste 1 se situe en Feuil1!A1:A15 (plage nommée Zn1) et
la liste 2 en Feuil2!A1:A15 (plage nommée Zn2), et que tu veuilles extraire
sur un onglet différent les éléments de Zn1 non-présents en Zn2...
Sub comPar() Dim inF As String, x As Long, c As Range Dim reC With Application .ScreenUpdating = False .DisplayAlerts = False End With On Error Resume Next Sheets("Comp").Delete Sheets.Add After:=Worksheets(Worksheets.Count) ActiveSheet.Name = "Comp" x = 1 For Each c In Range("Zn1") Set reC = Range("Zn2").Find(c) If reC Is Nothing Then Range("A" & x) = c x = x + 1 End If Next With Application .ScreenUpdating = True .DisplayAlerts = True End With If IsEmpty([A1]) Then _ MsgBox "Toutes les données correspondent !" Set reC = Nothing End Sub
ChrisV
"news.wanadoo.fr" a écrit dans le message de news: bv6laq$gmm$
Bonsoir, Comment puis je comparer deux listes ou deux feuilles excel pour en extraire
les enregistrements différents (en clair les mises à jour dans l'une d'elle)
Merci à tous ;-)
Merci je teste ;-)
"ChrisV" <chrisve@wanadoo.fr> a écrit dans le message de
news:OidK2gT5DHA.1936@TK2MSFTNGP12.phx.gbl...
Bonjour,
Sans autre précision...
En supposant que la liste 1 se situe en Feuil1!A1:A15 (plage nommée Zn1)
et
la liste 2 en Feuil2!A1:A15 (plage nommée Zn2), et que tu veuilles
extraire
sur un onglet différent les éléments de Zn1 non-présents en Zn2...
Sub comPar()
Dim inF As String, x As Long, c As Range
Dim reC
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
On Error Resume Next
Sheets("Comp").Delete
Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "Comp"
x = 1
For Each c In Range("Zn1")
Set reC = Range("Zn2").Find(c)
If reC Is Nothing Then
Range("A" & x) = c
x = x + 1
End If
Next
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
If IsEmpty([A1]) Then _
MsgBox "Toutes les données correspondent !"
Set reC = Nothing
End Sub
ChrisV
"news.wanadoo.fr" <bd@wanadoo.fr> a écrit dans le message de news:
bv6laq$gmm$1@news-reader1.wanadoo.fr...
Bonsoir,
Comment puis je comparer deux listes ou deux feuilles excel pour en
extraire
les enregistrements différents (en clair les mises à jour dans l'une
d'elle)
Merci je teste ;-) "ChrisV" a écrit dans le message de news:
Bonjour,
Sans autre précision... En supposant que la liste 1 se situe en Feuil1!A1:A15 (plage nommée Zn1) et
la liste 2 en Feuil2!A1:A15 (plage nommée Zn2), et que tu veuilles extraire
sur un onglet différent les éléments de Zn1 non-présents en Zn2...
Sub comPar() Dim inF As String, x As Long, c As Range Dim reC With Application .ScreenUpdating = False .DisplayAlerts = False End With On Error Resume Next Sheets("Comp").Delete Sheets.Add After:=Worksheets(Worksheets.Count) ActiveSheet.Name = "Comp" x = 1 For Each c In Range("Zn1") Set reC = Range("Zn2").Find(c) If reC Is Nothing Then Range("A" & x) = c x = x + 1 End If Next With Application .ScreenUpdating = True .DisplayAlerts = True End With If IsEmpty([A1]) Then _ MsgBox "Toutes les données correspondent !" Set reC = Nothing End Sub
ChrisV
"news.wanadoo.fr" a écrit dans le message de news: bv6laq$gmm$
Bonsoir, Comment puis je comparer deux listes ou deux feuilles excel pour en extraire
les enregistrements différents (en clair les mises à jour dans l'une d'elle)
Merci à tous ;-)
news.wanadoo.fr
Bonjour, ça marche mais je n'ai pas donné assez d'informations. Les infos sont regroupées dans une seule colonne, alors que mes tableaux sont formatés de A1 à H1. je ne vois pas à quel endroit modifier la plage dans la macro. merci
"ChrisV" a écrit dans le message de news:
Bonjour,
Sans autre précision... En supposant que la liste 1 se situe en Feuil1!A1:A15 (plage nommée Zn1) et
la liste 2 en Feuil2!A1:A15 (plage nommée Zn2), et que tu veuilles extraire
sur un onglet différent les éléments de Zn1 non-présents en Zn2...
Sub comPar() Dim inF As String, x As Long, c As Range Dim reC With Application .ScreenUpdating = False .DisplayAlerts = False End With On Error Resume Next Sheets("Comp").Delete Sheets.Add After:=Worksheets(Worksheets.Count) ActiveSheet.Name = "Comp" x = 1 For Each c In Range("Zn1") Set reC = Range("Zn2").Find(c) If reC Is Nothing Then Range("A" & x) = c x = x + 1 End If Next With Application .ScreenUpdating = True .DisplayAlerts = True End With If IsEmpty([A1]) Then _ MsgBox "Toutes les données correspondent !" Set reC = Nothing End Sub
ChrisV
"news.wanadoo.fr" a écrit dans le message de news: bv6laq$gmm$
Bonsoir, Comment puis je comparer deux listes ou deux feuilles excel pour en extraire
les enregistrements différents (en clair les mises à jour dans l'une d'elle)
Merci à tous ;-)
Bonjour,
ça marche mais je n'ai pas donné assez d'informations.
Les infos sont regroupées dans une seule colonne, alors que mes tableaux
sont formatés de A1 à H1.
je ne vois pas à quel endroit modifier la plage dans la macro.
merci
"ChrisV" <chrisve@wanadoo.fr> a écrit dans le message de
news:OidK2gT5DHA.1936@TK2MSFTNGP12.phx.gbl...
Bonjour,
Sans autre précision...
En supposant que la liste 1 se situe en Feuil1!A1:A15 (plage nommée Zn1)
et
la liste 2 en Feuil2!A1:A15 (plage nommée Zn2), et que tu veuilles
extraire
sur un onglet différent les éléments de Zn1 non-présents en Zn2...
Sub comPar()
Dim inF As String, x As Long, c As Range
Dim reC
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
On Error Resume Next
Sheets("Comp").Delete
Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "Comp"
x = 1
For Each c In Range("Zn1")
Set reC = Range("Zn2").Find(c)
If reC Is Nothing Then
Range("A" & x) = c
x = x + 1
End If
Next
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
If IsEmpty([A1]) Then _
MsgBox "Toutes les données correspondent !"
Set reC = Nothing
End Sub
ChrisV
"news.wanadoo.fr" <bd@wanadoo.fr> a écrit dans le message de news:
bv6laq$gmm$1@news-reader1.wanadoo.fr...
Bonsoir,
Comment puis je comparer deux listes ou deux feuilles excel pour en
extraire
les enregistrements différents (en clair les mises à jour dans l'une
d'elle)
Bonjour, ça marche mais je n'ai pas donné assez d'informations. Les infos sont regroupées dans une seule colonne, alors que mes tableaux sont formatés de A1 à H1. je ne vois pas à quel endroit modifier la plage dans la macro. merci
"ChrisV" a écrit dans le message de news:
Bonjour,
Sans autre précision... En supposant que la liste 1 se situe en Feuil1!A1:A15 (plage nommée Zn1) et
la liste 2 en Feuil2!A1:A15 (plage nommée Zn2), et que tu veuilles extraire
sur un onglet différent les éléments de Zn1 non-présents en Zn2...
Sub comPar() Dim inF As String, x As Long, c As Range Dim reC With Application .ScreenUpdating = False .DisplayAlerts = False End With On Error Resume Next Sheets("Comp").Delete Sheets.Add After:=Worksheets(Worksheets.Count) ActiveSheet.Name = "Comp" x = 1 For Each c In Range("Zn1") Set reC = Range("Zn2").Find(c) If reC Is Nothing Then Range("A" & x) = c x = x + 1 End If Next With Application .ScreenUpdating = True .DisplayAlerts = True End With If IsEmpty([A1]) Then _ MsgBox "Toutes les données correspondent !" Set reC = Nothing End Sub
ChrisV
"news.wanadoo.fr" a écrit dans le message de news: bv6laq$gmm$
Bonsoir, Comment puis je comparer deux listes ou deux feuilles excel pour en extraire
les enregistrements différents (en clair les mises à jour dans l'une d'elle)
Merci à tous ;-)
Michel Gaboly
Bonjour,
Voici une varaiante sans boucle, qui affiche dans la feuille "Comp", au même emplacement, les valeurs de la seconde feuille, lorsqu'elles diffèrent de celles de la première feuille.
Sub Compare() ListeDiff Sheets("Feuil1"), Sheets("Feuil2") End Sub
Private Sub ListeDiff(F1 As Worksheet, F2 As Worksheet) Dim Plage As String Plage = F1.UsedRange.Address(False, False) With Application .ScreenUpdating = False .DisplayAlerts = False End With On Error Resume Next Sheets("Comp").Delete On Error GoTo 0 Sheets.Add , Sheets(Sheets.Count) ActiveSheet.Name = "Comp" With Range(Plage) .FormulaR1C1 = "=IF(EXACT(Feuil1!RC,Feuil2!RC),"""",Feuil2!RC)" .Value = .Value End With With Application .ScreenUpdating = True .DisplayAlerts = True End With End Sub
Bonjour, ça marche mais je n'ai pas donné assez d'informations. Les infos sont regroupées dans une seule colonne, alors que mes tableaux sont formatés de A1 à H1. je ne vois pas à quel endroit modifier la plage dans la macro. merci
"ChrisV" a écrit dans le message de news:
Bonjour,
Sans autre précision... En supposant que la liste 1 se situe en Feuil1!A1:A15 (plage nommée Zn1) et
la liste 2 en Feuil2!A1:A15 (plage nommée Zn2), et que tu veuilles extraire
sur un onglet différent les éléments de Zn1 non-présents en Zn2...
Sub comPar() Dim inF As String, x As Long, c As Range Dim reC With Application .ScreenUpdating = False .DisplayAlerts = False End With On Error Resume Next Sheets("Comp").Delete Sheets.Add After:=Worksheets(Worksheets.Count) ActiveSheet.Name = "Comp" x = 1 For Each c In Range("Zn1") Set reC = Range("Zn2").Find(c) If reC Is Nothing Then Range("A" & x) = c x = x + 1 End If Next With Application .ScreenUpdating = True .DisplayAlerts = True End With If IsEmpty([A1]) Then _ MsgBox "Toutes les données correspondent !" Set reC = Nothing End Sub
ChrisV
"news.wanadoo.fr" a écrit dans le message de news: bv6laq$gmm$
Bonsoir, Comment puis je comparer deux listes ou deux feuilles excel pour en extraire
les enregistrements différents (en clair les mises à jour dans l'une d'elle)
Merci à tous ;-)
-- Cordialement,
Michel Gaboly http://www.gaboly.com
Bonjour,
Voici une varaiante sans boucle, qui affiche dans la feuille "Comp", au même
emplacement, les valeurs de la seconde feuille, lorsqu'elles diffèrent de celles
de la première feuille.
Sub Compare()
ListeDiff Sheets("Feuil1"), Sheets("Feuil2")
End Sub
Private Sub ListeDiff(F1 As Worksheet, F2 As Worksheet)
Dim Plage As String
Plage = F1.UsedRange.Address(False, False)
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
On Error Resume Next
Sheets("Comp").Delete
On Error GoTo 0
Sheets.Add , Sheets(Sheets.Count)
ActiveSheet.Name = "Comp"
With Range(Plage)
.FormulaR1C1 = "=IF(EXACT(Feuil1!RC,Feuil2!RC),"""",Feuil2!RC)"
.Value = .Value
End With
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
End Sub
Bonjour,
ça marche mais je n'ai pas donné assez d'informations.
Les infos sont regroupées dans une seule colonne, alors que mes tableaux
sont formatés de A1 à H1.
je ne vois pas à quel endroit modifier la plage dans la macro.
merci
"ChrisV" <chrisve@wanadoo.fr> a écrit dans le message de
news:OidK2gT5DHA.1936@TK2MSFTNGP12.phx.gbl...
Bonjour,
Sans autre précision...
En supposant que la liste 1 se situe en Feuil1!A1:A15 (plage nommée Zn1)
et
la liste 2 en Feuil2!A1:A15 (plage nommée Zn2), et que tu veuilles
extraire
sur un onglet différent les éléments de Zn1 non-présents en Zn2...
Sub comPar()
Dim inF As String, x As Long, c As Range
Dim reC
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
On Error Resume Next
Sheets("Comp").Delete
Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "Comp"
x = 1
For Each c In Range("Zn1")
Set reC = Range("Zn2").Find(c)
If reC Is Nothing Then
Range("A" & x) = c
x = x + 1
End If
Next
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
If IsEmpty([A1]) Then _
MsgBox "Toutes les données correspondent !"
Set reC = Nothing
End Sub
ChrisV
"news.wanadoo.fr" <bd@wanadoo.fr> a écrit dans le message de news:
bv6laq$gmm$1@news-reader1.wanadoo.fr...
Bonsoir,
Comment puis je comparer deux listes ou deux feuilles excel pour en
extraire
les enregistrements différents (en clair les mises à jour dans l'une
d'elle)
Voici une varaiante sans boucle, qui affiche dans la feuille "Comp", au même emplacement, les valeurs de la seconde feuille, lorsqu'elles diffèrent de celles de la première feuille.
Sub Compare() ListeDiff Sheets("Feuil1"), Sheets("Feuil2") End Sub
Private Sub ListeDiff(F1 As Worksheet, F2 As Worksheet) Dim Plage As String Plage = F1.UsedRange.Address(False, False) With Application .ScreenUpdating = False .DisplayAlerts = False End With On Error Resume Next Sheets("Comp").Delete On Error GoTo 0 Sheets.Add , Sheets(Sheets.Count) ActiveSheet.Name = "Comp" With Range(Plage) .FormulaR1C1 = "=IF(EXACT(Feuil1!RC,Feuil2!RC),"""",Feuil2!RC)" .Value = .Value End With With Application .ScreenUpdating = True .DisplayAlerts = True End With End Sub
Bonjour, ça marche mais je n'ai pas donné assez d'informations. Les infos sont regroupées dans une seule colonne, alors que mes tableaux sont formatés de A1 à H1. je ne vois pas à quel endroit modifier la plage dans la macro. merci
"ChrisV" a écrit dans le message de news:
Bonjour,
Sans autre précision... En supposant que la liste 1 se situe en Feuil1!A1:A15 (plage nommée Zn1) et
la liste 2 en Feuil2!A1:A15 (plage nommée Zn2), et que tu veuilles extraire
sur un onglet différent les éléments de Zn1 non-présents en Zn2...
Sub comPar() Dim inF As String, x As Long, c As Range Dim reC With Application .ScreenUpdating = False .DisplayAlerts = False End With On Error Resume Next Sheets("Comp").Delete Sheets.Add After:=Worksheets(Worksheets.Count) ActiveSheet.Name = "Comp" x = 1 For Each c In Range("Zn1") Set reC = Range("Zn2").Find(c) If reC Is Nothing Then Range("A" & x) = c x = x + 1 End If Next With Application .ScreenUpdating = True .DisplayAlerts = True End With If IsEmpty([A1]) Then _ MsgBox "Toutes les données correspondent !" Set reC = Nothing End Sub
ChrisV
"news.wanadoo.fr" a écrit dans le message de news: bv6laq$gmm$
Bonsoir, Comment puis je comparer deux listes ou deux feuilles excel pour en extraire
les enregistrements différents (en clair les mises à jour dans l'une d'elle)
Merci à tous ;-)
-- Cordialement,
Michel Gaboly http://www.gaboly.com
DB
Merci Michel, Cela fonctionne mais je retombe sur la liste la plus ancienne et non pas sur la MAJ ! Feuil1 = nouvelle liste Feuil2 = ancienne liste je voudrais que la feuille "comp" m'affiche les nouveaux enregistrements. Merci pour votre patience Didier "Michel Gaboly" a écrit dans le message de news:
Bonjour,
Voici une varaiante sans boucle, qui affiche dans la feuille "Comp", au même
emplacement, les valeurs de la seconde feuille, lorsqu'elles diffèrent de celles
de la première feuille.
Sub Compare() ListeDiff Sheets("Feuil1"), Sheets("Feuil2") End Sub
Private Sub ListeDiff(F1 As Worksheet, F2 As Worksheet) Dim Plage As String Plage = F1.UsedRange.Address(False, False) With Application .ScreenUpdating = False .DisplayAlerts = False End With On Error Resume Next Sheets("Comp").Delete On Error GoTo 0 Sheets.Add , Sheets(Sheets.Count) ActiveSheet.Name = "Comp" With Range(Plage) .FormulaR1C1 "=IF(EXACT(Feuil1!RC,Feuil2!RC),"""",Feuil2!RC)" .Value = .Value End With With Application .ScreenUpdating = True .DisplayAlerts = True End With End Sub
Bonjour, ça marche mais je n'ai pas donné assez d'informations. Les infos sont regroupées dans une seule colonne, alors que mes tableaux sont formatés de A1 à H1. je ne vois pas à quel endroit modifier la plage dans la macro. merci
"ChrisV" a écrit dans le message de news:
Bonjour,
Sans autre précision... En supposant que la liste 1 se situe en Feuil1!A1:A15 (plage nommée Zn1)
et
la liste 2 en Feuil2!A1:A15 (plage nommée Zn2), et que tu veuilles extraire
sur un onglet différent les éléments de Zn1 non-présents en Zn2...
Sub comPar() Dim inF As String, x As Long, c As Range Dim reC With Application .ScreenUpdating = False .DisplayAlerts = False End With On Error Resume Next Sheets("Comp").Delete Sheets.Add After:=Worksheets(Worksheets.Count) ActiveSheet.Name = "Comp" x = 1 For Each c In Range("Zn1") Set reC = Range("Zn2").Find(c) If reC Is Nothing Then Range("A" & x) = c x = x + 1 End If Next With Application .ScreenUpdating = True .DisplayAlerts = True End With If IsEmpty([A1]) Then _ MsgBox "Toutes les données correspondent !" Set reC = Nothing End Sub
ChrisV
"news.wanadoo.fr" a écrit dans le message de news: bv6laq$gmm$
Bonsoir, Comment puis je comparer deux listes ou deux feuilles excel pour en extraire
les enregistrements différents (en clair les mises à jour dans l'une d'elle)
Merci à tous ;-)
-- Cordialement,
Michel Gaboly http://www.gaboly.com
Merci Michel,
Cela fonctionne mais je retombe sur la liste la plus ancienne et non pas sur
la MAJ !
Feuil1 = nouvelle liste
Feuil2 = ancienne liste
je voudrais que la feuille "comp" m'affiche les nouveaux enregistrements.
Merci pour votre patience
Didier
"Michel Gaboly" <michel@Suppgaboly.com> a écrit dans le message de
news:401772D8.1C9CB313@Suppgaboly.com...
Bonjour,
Voici une varaiante sans boucle, qui affiche dans la feuille "Comp", au
même
emplacement, les valeurs de la seconde feuille, lorsqu'elles diffèrent de
celles
de la première feuille.
Sub Compare()
ListeDiff Sheets("Feuil1"), Sheets("Feuil2")
End Sub
Private Sub ListeDiff(F1 As Worksheet, F2 As Worksheet)
Dim Plage As String
Plage = F1.UsedRange.Address(False, False)
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
On Error Resume Next
Sheets("Comp").Delete
On Error GoTo 0
Sheets.Add , Sheets(Sheets.Count)
ActiveSheet.Name = "Comp"
With Range(Plage)
.FormulaR1C1 "=IF(EXACT(Feuil1!RC,Feuil2!RC),"""",Feuil2!RC)"
.Value = .Value
End With
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
End Sub
Bonjour,
ça marche mais je n'ai pas donné assez d'informations.
Les infos sont regroupées dans une seule colonne, alors que mes tableaux
sont formatés de A1 à H1.
je ne vois pas à quel endroit modifier la plage dans la macro.
merci
"ChrisV" <chrisve@wanadoo.fr> a écrit dans le message de
news:OidK2gT5DHA.1936@TK2MSFTNGP12.phx.gbl...
Bonjour,
Sans autre précision...
En supposant que la liste 1 se situe en Feuil1!A1:A15 (plage nommée
Zn1)
et
la liste 2 en Feuil2!A1:A15 (plage nommée Zn2), et que tu veuilles
extraire
sur un onglet différent les éléments de Zn1 non-présents en Zn2...
Sub comPar()
Dim inF As String, x As Long, c As Range
Dim reC
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
On Error Resume Next
Sheets("Comp").Delete
Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "Comp"
x = 1
For Each c In Range("Zn1")
Set reC = Range("Zn2").Find(c)
If reC Is Nothing Then
Range("A" & x) = c
x = x + 1
End If
Next
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
If IsEmpty([A1]) Then _
MsgBox "Toutes les données correspondent !"
Set reC = Nothing
End Sub
ChrisV
"news.wanadoo.fr" <bd@wanadoo.fr> a écrit dans le message de news:
bv6laq$gmm$1@news-reader1.wanadoo.fr...
Bonsoir,
Comment puis je comparer deux listes ou deux feuilles excel pour en
extraire
les enregistrements différents (en clair les mises à jour dans l'une
d'elle)
Merci Michel, Cela fonctionne mais je retombe sur la liste la plus ancienne et non pas sur la MAJ ! Feuil1 = nouvelle liste Feuil2 = ancienne liste je voudrais que la feuille "comp" m'affiche les nouveaux enregistrements. Merci pour votre patience Didier "Michel Gaboly" a écrit dans le message de news:
Bonjour,
Voici une varaiante sans boucle, qui affiche dans la feuille "Comp", au même
emplacement, les valeurs de la seconde feuille, lorsqu'elles diffèrent de celles
de la première feuille.
Sub Compare() ListeDiff Sheets("Feuil1"), Sheets("Feuil2") End Sub
Private Sub ListeDiff(F1 As Worksheet, F2 As Worksheet) Dim Plage As String Plage = F1.UsedRange.Address(False, False) With Application .ScreenUpdating = False .DisplayAlerts = False End With On Error Resume Next Sheets("Comp").Delete On Error GoTo 0 Sheets.Add , Sheets(Sheets.Count) ActiveSheet.Name = "Comp" With Range(Plage) .FormulaR1C1 "=IF(EXACT(Feuil1!RC,Feuil2!RC),"""",Feuil2!RC)" .Value = .Value End With With Application .ScreenUpdating = True .DisplayAlerts = True End With End Sub
Bonjour, ça marche mais je n'ai pas donné assez d'informations. Les infos sont regroupées dans une seule colonne, alors que mes tableaux sont formatés de A1 à H1. je ne vois pas à quel endroit modifier la plage dans la macro. merci
"ChrisV" a écrit dans le message de news:
Bonjour,
Sans autre précision... En supposant que la liste 1 se situe en Feuil1!A1:A15 (plage nommée Zn1)
et
la liste 2 en Feuil2!A1:A15 (plage nommée Zn2), et que tu veuilles extraire
sur un onglet différent les éléments de Zn1 non-présents en Zn2...
Sub comPar() Dim inF As String, x As Long, c As Range Dim reC With Application .ScreenUpdating = False .DisplayAlerts = False End With On Error Resume Next Sheets("Comp").Delete Sheets.Add After:=Worksheets(Worksheets.Count) ActiveSheet.Name = "Comp" x = 1 For Each c In Range("Zn1") Set reC = Range("Zn2").Find(c) If reC Is Nothing Then Range("A" & x) = c x = x + 1 End If Next With Application .ScreenUpdating = True .DisplayAlerts = True End With If IsEmpty([A1]) Then _ MsgBox "Toutes les données correspondent !" Set reC = Nothing End Sub
ChrisV
"news.wanadoo.fr" a écrit dans le message de news: bv6laq$gmm$
Bonsoir, Comment puis je comparer deux listes ou deux feuilles excel pour en extraire
les enregistrements différents (en clair les mises à jour dans l'une d'elle)