J'ai deux feuilles (1 et 2). Je compare les 2 feuilles au=20
niveau du champ "Nom". Si un nom existe dans la FEUILLE1=20
et dans la FEUILE2, mettre "PAYE" dans le=20
champ "Situation" de la FEUILLE2; en m=EAme temps ajouter la=20
valeur du champ "annee" correspondante. Les etapes dans=20
les tableaux suivants:=20
FEUILLE1:=20
Nom annee =20
Pierre 1992
Paul 1995
FEUILLE2 (Avant la macro)=20
Nom
Pierre =20
Paul =20
Eric =20
Jean
FEUILLE2 (Apres ex=E9cusion de la macro)
Nom Situation Annee
Pierre PAYE 1992 =20
Paul PAYE 1995=20
Eric =20
Jean
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
Jean-François Aubert
Salut Pierre, j'ai supposé les noms en A2:Ax, les "PAYE" en col B, les années en col B de feuil1, et les années en col C de feuil2
Sub yy() Dim plg1 As Range, plg2 As Range, c As Range Dim x As Variant
Sheets("feuil1").Select Set plg1 = Sheets("feuil1"). _ Range("A2:A" & Range("A65536").End(xlUp).Row) Sheets("feuil2").Select Set plg2 = Sheets("feuil2"). _ Range("A2:A" & Range("A65536").End(xlUp).Row) For Each c In plg2 x = Application.Match(c.Value, plg1, 0) If IsError(x) = False Then With Sheets("feuil2") .Range(c.Address).Offset(0, 1) = "PAYE" .Range(c.Address).Offset(0, 2) = plg1(x).Offset(0, 1).Value End With End If Next Set plg1 = Nothing: Set plg2 = Nothing End Sub
-- Amicalement
Jean-François Aubert {Vaudois de la Côte Lémanique}
"Pierre" a écrit dans le message de news:009501c361b9$3d87f470$ Bonjour,
J'ai deux feuilles (1 et 2). Je compare les 2 feuilles au niveau du champ "Nom". Si un nom existe dans la FEUILLE1 et dans la FEUILE2, mettre "PAYE" dans le champ "Situation" de la FEUILLE2; en même temps ajouter la valeur du champ "annee" correspondante. Les etapes dans les tableaux suivants:
FEUILLE1:
Nom annee Pierre 1992 Paul 1995
FEUILLE2 (Avant la macro) Nom Pierre Paul Eric Jean
FEUILLE2 (Apres exécusion de la macro)
Nom Situation Annee Pierre PAYE 1992 Paul PAYE 1995 Eric Jean
Salut Pierre,
j'ai supposé les noms en A2:Ax,
les "PAYE" en col B,
les années en col B de feuil1,
et les années en col C de feuil2
Sub yy()
Dim plg1 As Range, plg2 As Range, c As Range
Dim x As Variant
Sheets("feuil1").Select
Set plg1 = Sheets("feuil1"). _
Range("A2:A" & Range("A65536").End(xlUp).Row)
Sheets("feuil2").Select
Set plg2 = Sheets("feuil2"). _
Range("A2:A" & Range("A65536").End(xlUp).Row)
For Each c In plg2
x = Application.Match(c.Value, plg1, 0)
If IsError(x) = False Then
With Sheets("feuil2")
.Range(c.Address).Offset(0, 1) = "PAYE"
.Range(c.Address).Offset(0, 2) = plg1(x).Offset(0, 1).Value
End With
End If
Next
Set plg1 = Nothing: Set plg2 = Nothing
End Sub
--
Amicalement
Jean-François Aubert
{Vaudois de la Côte Lémanique}
"Pierre" <piobote@wanadoo.fr> a écrit dans le message de
news:009501c361b9$3d87f470$a401280a@phx.gbl...
Bonjour,
J'ai deux feuilles (1 et 2). Je compare les 2 feuilles au
niveau du champ "Nom". Si un nom existe dans la FEUILLE1
et dans la FEUILE2, mettre "PAYE" dans le
champ "Situation" de la FEUILLE2; en même temps ajouter la
valeur du champ "annee" correspondante. Les etapes dans
les tableaux suivants:
FEUILLE1:
Nom annee
Pierre 1992
Paul 1995
FEUILLE2 (Avant la macro)
Nom
Pierre
Paul
Eric
Jean
FEUILLE2 (Apres exécusion de la macro)
Nom Situation Annee
Pierre PAYE 1992
Paul PAYE 1995
Eric
Jean
Salut Pierre, j'ai supposé les noms en A2:Ax, les "PAYE" en col B, les années en col B de feuil1, et les années en col C de feuil2
Sub yy() Dim plg1 As Range, plg2 As Range, c As Range Dim x As Variant
Sheets("feuil1").Select Set plg1 = Sheets("feuil1"). _ Range("A2:A" & Range("A65536").End(xlUp).Row) Sheets("feuil2").Select Set plg2 = Sheets("feuil2"). _ Range("A2:A" & Range("A65536").End(xlUp).Row) For Each c In plg2 x = Application.Match(c.Value, plg1, 0) If IsError(x) = False Then With Sheets("feuil2") .Range(c.Address).Offset(0, 1) = "PAYE" .Range(c.Address).Offset(0, 2) = plg1(x).Offset(0, 1).Value End With End If Next Set plg1 = Nothing: Set plg2 = Nothing End Sub
-- Amicalement
Jean-François Aubert {Vaudois de la Côte Lémanique}
"Pierre" a écrit dans le message de news:009501c361b9$3d87f470$ Bonjour,
J'ai deux feuilles (1 et 2). Je compare les 2 feuilles au niveau du champ "Nom". Si un nom existe dans la FEUILLE1 et dans la FEUILE2, mettre "PAYE" dans le champ "Situation" de la FEUILLE2; en même temps ajouter la valeur du champ "annee" correspondante. Les etapes dans les tableaux suivants:
FEUILLE1:
Nom annee Pierre 1992 Paul 1995
FEUILLE2 (Avant la macro) Nom Pierre Paul Eric Jean
FEUILLE2 (Apres exécusion de la macro)
Nom Situation Annee Pierre PAYE 1992 Paul PAYE 1995 Eric Jean
AV
Variation...
Sub zzz() x = "Feuil1!" & Range("Feuil1!A2:A" & [Feuil1!A65536].End(3).Row).Address y = "Feuil1!" & Range("Feuil1!B2:B" & [Feuil1!B65536].End(3).Row).Address z = "Feuil2!" & Range("Feuil2!A2:A" & [Feuil2!A65536].End(3).Row).Address Sheets("Feuil2").Select For Each c In Range(z) If Evaluate("isnumber(match(" & c.Address & "," & x & ",0))") Then c.Item(1, 2).Value = "PAYE" c.Item(1, 3).Value = Evaluate("index(" & y & ",match(" & c.Address & "," & x & ",0))") End If Next End Sub
PS : on pourrait alléger si les plages de référence étaient définies dynamiquement... AV
"Pierre" a écrit dans le message news: 009501c361b9$3d87f470$ Bonjour,
J'ai deux feuilles (1 et 2). Je compare les 2 feuilles au niveau du champ "Nom". Si un nom existe dans la FEUILLE1 et dans la FEUILE2, mettre "PAYE" dans le champ "Situation" de la FEUILLE2; en même temps ajouter la valeur du champ "annee" correspondante. Les etapes dans les tableaux suivants:
FEUILLE1:
Nom annee Pierre 1992 Paul 1995
FEUILLE2 (Avant la macro) Nom Pierre Paul Eric Jean
FEUILLE2 (Apres exécusion de la macro)
Nom Situation Annee Pierre PAYE 1992 Paul PAYE 1995 Eric Jean
Variation...
Sub zzz()
x = "Feuil1!" & Range("Feuil1!A2:A" & [Feuil1!A65536].End(3).Row).Address
y = "Feuil1!" & Range("Feuil1!B2:B" & [Feuil1!B65536].End(3).Row).Address
z = "Feuil2!" & Range("Feuil2!A2:A" & [Feuil2!A65536].End(3).Row).Address
Sheets("Feuil2").Select
For Each c In Range(z)
If Evaluate("isnumber(match(" & c.Address & "," & x & ",0))") Then
c.Item(1, 2).Value = "PAYE"
c.Item(1, 3).Value = Evaluate("index(" & y & ",match(" & c.Address &
"," & x & ",0))")
End If
Next
End Sub
PS : on pourrait alléger si les plages de référence étaient définies
dynamiquement...
AV
"Pierre" <piobote@wanadoo.fr> a écrit dans le message news:
009501c361b9$3d87f470$a401280a@phx.gbl...
Bonjour,
J'ai deux feuilles (1 et 2). Je compare les 2 feuilles au
niveau du champ "Nom". Si un nom existe dans la FEUILLE1
et dans la FEUILE2, mettre "PAYE" dans le
champ "Situation" de la FEUILLE2; en même temps ajouter la
valeur du champ "annee" correspondante. Les etapes dans
les tableaux suivants:
FEUILLE1:
Nom annee
Pierre 1992
Paul 1995
FEUILLE2 (Avant la macro)
Nom
Pierre
Paul
Eric
Jean
FEUILLE2 (Apres exécusion de la macro)
Nom Situation Annee
Pierre PAYE 1992
Paul PAYE 1995
Eric
Jean
Sub zzz() x = "Feuil1!" & Range("Feuil1!A2:A" & [Feuil1!A65536].End(3).Row).Address y = "Feuil1!" & Range("Feuil1!B2:B" & [Feuil1!B65536].End(3).Row).Address z = "Feuil2!" & Range("Feuil2!A2:A" & [Feuil2!A65536].End(3).Row).Address Sheets("Feuil2").Select For Each c In Range(z) If Evaluate("isnumber(match(" & c.Address & "," & x & ",0))") Then c.Item(1, 2).Value = "PAYE" c.Item(1, 3).Value = Evaluate("index(" & y & ",match(" & c.Address & "," & x & ",0))") End If Next End Sub
PS : on pourrait alléger si les plages de référence étaient définies dynamiquement... AV
"Pierre" a écrit dans le message news: 009501c361b9$3d87f470$ Bonjour,
J'ai deux feuilles (1 et 2). Je compare les 2 feuilles au niveau du champ "Nom". Si un nom existe dans la FEUILLE1 et dans la FEUILE2, mettre "PAYE" dans le champ "Situation" de la FEUILLE2; en même temps ajouter la valeur du champ "annee" correspondante. Les etapes dans les tableaux suivants:
FEUILLE1:
Nom annee Pierre 1992 Paul 1995
FEUILLE2 (Avant la macro) Nom Pierre Paul Eric Jean
FEUILLE2 (Apres exécusion de la macro)
Nom Situation Annee Pierre PAYE 1992 Paul PAYE 1995 Eric Jean