Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

comparer le contenu de deux fichier xls et avoir le resultat dans un troisieme

11 réponses
Avatar
sleg
Bonjour,

voila mon probleme :

j'ai 3 fichiers :
- analyse.xls
- gp.xls
- ass.xls
ces 3 fichiers sont dans le m=EAme repertoire.


dans les fichier gp.xls & ass.xls j'ai en colonne A un nom de PC
identique dans chaque fichier (gp.xls & ass.xls) et je dois comparer
les informations du fichier gp.xls avec le ficheir ass.xls sur les
colonne A =E0 G ( le nom des colonnes est differents d'un fichier a
l'autre et impossible de les changer ) mais la colonne b de gp.xls
contient la meme information que la colonne B de ass.xls etc jusqu'a
G. on considere que le fichier gp.xls est le ficheir referent
contenant les bonne information et j'aimerais donc dans mon fichier
analyse.xls le nom des serveurs et les informations en ecart entre
gp.xls & ass.xls.


les colonne de mon fichier analyse.xls ont les meme noms que mon
fichier gp.xls.

comment faire cela ?

merci de votre aide.

10 réponses

1 2
Avatar
FFO
Salut à toi
Aprés avoir ouvert tes 3 fichiers
Soit la Feuil1 de chacun d'eux
Je te propose ce code :

Différence = 0
For Each c In Workbooks("gp.xls").Worksheets("Feuil1").Range("A2", "A" &
Workbooks("gp.xls").Worksheets("Feuil1").Range("A65535").End(xlUp).Row)
Workbooks("ass.xls").Activate
Sheets("Feuil1").Activate
Range("A1").Activate
On Error Resume Next
Range("A1", "A" & Range("A65535").End(xlUp).Row).Find(What:=c,
After:=Range("A1"), LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Activate
If ActiveCell.Address <> Range("A1").Address Then
For i = 1 To 6
If c.Offset(0, i) <> ActiveCell.Offset(0, i) Then

Workbooks("analyse.xls").Sheets("Feuil1").Range("A65535").End(xlUp).Offset(1,
i) = ActiveCell.Offset(0, i)
Différence = 1
End If
Next
If Différence = 1 Then

Workbooks("analyse.xls").Sheets("Feuil1").Range("A65535").End(xlUp).Offset(1,
0) = c
End If
Différence = 0
Else
Workbooks("gp.xls").Sheets("Feuil1").Range("A" & c.Row, "G" &
c.Row).Copy
Workbooks("analyse.xls").Sheets("Feuil1").Range("A65535").End(xlUp).Offset(1,
0)
End If
Next

Celà devrait convenir

Dis moi !!!
Avatar
sleg
grand merci ,

mais ne manquerait il pas un bout de code sur la ligne
"Workbooks("analyse.xls").Sheets("analyse").Range("A65535").End(xlUp).Offse t(­
1, 0)" du style un = quelque chose ?

merci de ton retour.


On 3 oct, 08:48, FFO wrote:
Salut à toi
Aprés avoir ouvert tes 3 fichiers
Soit la Feuil1 de chacun d'eux
Je te propose ce code :

Différence = 0
For Each c In Workbooks("gp.xls").Worksheets("Feuil1").Range("A2", "A" &
Workbooks("gp.xls").Worksheets("Feuil1").Range("A65535").End(xlUp).Row)
Workbooks("ass.xls").Activate
Sheets("Feuil1").Activate
    Range("A1").Activate
    On Error Resume Next
    Range("A1", "A" & Range("A65535").End(xlUp).Row).Find(What:=c,
After:=Range("A1"), LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=x lNext,
MatchCase:= _
        False, SearchFormat:úlse).Activate
    If ActiveCell.Address <> Range("A1").Address Then
    For i = 1 To 6
    If c.Offset(0, i) <> ActiveCell.Offset(0, i) Then

Workbooks("analyse.xls").Sheets("Feuil1").Range("A65535").End(xlUp).Offse t(­1,
i) = ActiveCell.Offset(0, i)
    Différence = 1
    End If
    Next
    If Différence = 1 Then

Workbooks("analyse.xls").Sheets("Feuil1").Range("A65535").End(xlUp).Offse t(­1,
0) = c
    End If
    Différence = 0
    Else
    Workbooks("gp.xls").Sheets("Feuil1").Range("A" & c.Row, "G" &
c.Row).Copy
Workbooks("analyse.xls").Sheets("Feuil1").Range("A65535").End(xlUp).Offse t(­1,
0)
    End If
    Next

Celà devrait convenir

Dis moi !!!


Avatar
FFO
Rebonjours à toi

Si tu parles de la partie du code :

Workbooks("gp.xls").Sheets("Feuil1").Range("A" & c.Row, "G" &
c.Row).Copy
Workbooks("analyse.xls").Sheets("Feuil1").Range("A65535").End(xlUp).Offset(1,
0)

les 2 lignes marchent ensemble et doivent être mises bout à bout pour n'en
faire qu'une
Aprés Copy doit suivre sur la même ligne Workbooks("analyse.xls") et le reste

Espérant que tu es compris

Le code fonctionne t-il selon tes attentes ???

Dis moi !!!
Avatar
sleg
Merci pour ta reponse.

Non apres avoir executer la macro dans le ficheir analyse il ne
m'affiche que la derniere ligne du fichier ass.xls

une idée ?


On 3 oct, 12:12, FFO wrote:
Rebonjours à toi

Si tu parles de la partie du code :

Workbooks("gp.xls").Sheets("Feuil1").Range("A" & c.Row, "G" &
c.Row).Copy
Workbooks("analyse.xls").Sheets("Feuil1").Range("A65535").End(xlUp).Offse t(­1,
0)

les 2 lignes marchent ensemble et doivent être mises bout à bout pour n'en
faire qu'une
Aprés Copy doit suivre sur la même ligne Workbooks("analyse.xls") et le reste

Espérant que tu es compris

Le code fonctionne t-il selon tes attentes ???

Dis moi !!!


Avatar
P.Bastard
Bonjour, sleg

Peux-tu joindre un exemple de ton classeur avec ses 3 feuilles, et quelques
lignes de données dans gp.xls & ass.xls ?
sur cjoint.com ou dans ma bal perso ?

Bien amicordialement,

--
patrick.bastardchezdbmail.com

"sleg" a écrit dans le message de
news:
Bonjour,

voila mon probleme :

j'ai 3 fichiers :
- analyse.xls
- gp.xls
- ass.xls
ces 3 fichiers sont dans le même repertoire.


dans les fichier gp.xls & ass.xls j'ai en colonne A un nom de PC
identique dans chaque fichier (gp.xls & ass.xls) et je dois comparer
les informations du fichier gp.xls avec le ficheir ass.xls sur les
colonne A à G ( le nom des colonnes est differents d'un fichier a
l'autre et impossible de les changer ) mais la colonne b de gp.xls
contient la meme information que la colonne B de ass.xls etc jusqu'a
G. on considere que le fichier gp.xls est le ficheir referent
contenant les bonne information et j'aimerais donc dans mon fichier
analyse.xls le nom des serveurs et les informations en ecart entre
gp.xls & ass.xls.


les colonne de mon fichier analyse.xls ont les meme noms que mon
fichier gp.xls.

comment faire cela ?

merci de votre aide.
Avatar
sleg
Bonjour,

voici mes fichiers
http://cjoint.com/?kdoWvm8Abu

merci d'avance


On 3 oct, 14:06, "P.Bastard"
wrote:
Bonjour, sleg

Peux-tu joindre un exemple de ton classeur avec ses 3 feuilles, et quelqu es
lignes de données dans gp.xls & ass.xls  ?
sur cjoint.com ou dans ma bal perso ?

Bien amicordialement,

--
patrick.bastardchezdbmail.com

"sleg" a écrit dans le message denews:dd00bbcd-d
Bonjour,

voila mon probleme :

j'ai 3 fichiers :
- analyse.xls
- gp.xls
- ass.xls
 ces 3 fichiers sont dans le même repertoire.

dans les fichier gp.xls & ass.xls j'ai en colonne A un nom de PC
identique dans chaque fichier (gp.xls & ass.xls) et je dois comparer
les informations du fichier gp.xls avec le ficheir ass.xls sur les
colonne A à G ( le nom des colonnes est differents d'un fichier a
l'autre et impossible de les changer ) mais la colonne b de gp.xls
contient la meme information que la colonne B de ass.xls etc jusqu'a
G. on considere que le fichier gp.xls est le ficheir referent
contenant les bonne information et j'aimerais donc dans mon fichier
analyse.xls le nom des serveurs et les informations en ecart entre
gp.xls & ass.xls.

les colonne de mon fichier analyse.xls ont les meme noms que mon
fichier gp.xls.

comment faire cela ?

merci de votre aide.


Avatar
P.Bastard
Bonjour, sleg.

Tes 3 feuilles ouvertes :
Sur la feuille analyse.xls, en ligne 1, de A à G : les mêmes titres que ceux
de la feuille gpi.
En A2 : =gpi.xls!A2, à recopier en B2 (Ctrl + D), ce qui donne en A2
=gpi.xls!A2
En C2 : =SI(gpi.xls!C2=Assyst.xls!C2;"";gpi.xls!C2) à recopier jusqu'en G2
(Toujours Ctrl+D).

Sélectionner ensuite A2 jusqu'à Gx (x étant le nombre de lignes utiles), et
Ctrl+B pour recopier vers le bas.

Seules les valeurs de GPI différentes dans Assyst apparaissent dans analyse
(A condition que tes données A et B se trouvent sur la même ligne dans tes
deux fichiers à comparer !).

Cela te convient-il ?

--
Bien ,

patrick.bastardchezdbmail.com

"sleg" a écrit dans le message de
news:
Bonjour,

voici mes fichiers
http://cjoint.com/?kdoWvm8Abu

merci d'avance


On 3 oct, 14:06, "P.Bastard"
wrote:
Bonjour, sleg

Peux-tu joindre un exemple de ton classeur avec ses 3 feuilles, et
quelques
lignes de données dans gp.xls & ass.xls ?
sur cjoint.com ou dans ma bal perso ?

Bien amicordialement,

--
patrick.bastardchezdbmail.com

"sleg" a écrit dans le message
denews:
Bonjour,

voila mon probleme :

j'ai 3 fichiers :
- analyse.xls
- gp.xls
- ass.xls
ces 3 fichiers sont dans le même repertoire.

dans les fichier gp.xls & ass.xls j'ai en colonne A un nom de PC
identique dans chaque fichier (gp.xls & ass.xls) et je dois comparer
les informations du fichier gp.xls avec le ficheir ass.xls sur les
colonne A à G ( le nom des colonnes est differents d'un fichier a
l'autre et impossible de les changer ) mais la colonne b de gp.xls
contient la meme information que la colonne B de ass.xls etc jusqu'a
G. on considere que le fichier gp.xls est le ficheir referent
contenant les bonne information et j'aimerais donc dans mon fichier
analyse.xls le nom des serveurs et les informations en ecart entre
gp.xls & ass.xls.

les colonne de mon fichier analyse.xls ont les meme noms que mon
fichier gp.xls.

comment faire cela ?

merci de votre aide.


Avatar
sleg
merci mais les informations ne se trouve pas sur la meme ligne dans
les 2 fichiers.


On 3 oct, 15:23, "P.Bastard"
wrote:
Bonjour, sleg.

Tes 3 feuilles ouvertes :
Sur la feuille analyse.xls, en ligne 1, de A à G : les mêmes titres q ue ceux
de la feuille gpi.
En A2 : =gpi.xls!A2, à recopier en B2 (Ctrl + D), ce qui donne en A2
=gpi.xls!A2
En C2 : =SI(gpi.xls!C2=Assyst.xls!C2;"";gpi.xls!C2) à recopier jusq u'en G2
(Toujours Ctrl+D).

Sélectionner ensuite A2 jusqu'à Gx (x étant le nombre de lignes uti les), et
Ctrl+B pour recopier vers le bas.

Seules les valeurs de GPI différentes dans Assyst apparaissent dans ana lyse
(A condition que tes données A et B se trouvent sur la même ligne dan s tes
deux fichiers à comparer !).

Cela te convient-il ?

--
Bien ,

patrick.bastardchezdbmail.com

"sleg" a écrit dans le message denews:50456d74-1
Bonjour,

voici mes fichiershttp://cjoint.com/?kdoWvm8Abu

merci d'avance

On 3 oct, 14:06, "P.Bastard"
wrote:



> Bonjour, sleg

> Peux-tu joindre un exemple de ton classeur avec ses 3 feuilles, et
> quelques
> lignes de données dans gp.xls & ass.xls ?
> sur cjoint.com ou dans ma bal perso ?

> Bien amicordialement,

> --
> patrick.bastardchezdbmail.com

> "sleg" a écrit dans le message
> denews: m...
> Bonjour,

> voila mon probleme :

> j'ai 3 fichiers :
> - analyse.xls
> - gp.xls
> - ass.xls
> ces 3 fichiers sont dans le même repertoire.

> dans les fichier gp.xls & ass.xls j'ai en colonne A un nom de PC
> identique dans chaque fichier (gp.xls & ass.xls) et je dois comparer
> les informations du fichier gp.xls avec le ficheir ass.xls sur les
> colonne A à G ( le nom des colonnes est differents d'un fichier a
> l'autre et impossible de les changer ) mais la colonne b de gp.xls
> contient la meme information que la colonne B de ass.xls etc jusqu'a
> G. on considere que le fichier gp.xls est le ficheir referent
> contenant les bonne information et j'aimerais donc dans mon fichier
> analyse.xls le nom des serveurs et les informations en ecart entre
> gp.xls & ass.xls.

> les colonne de mon fichier analyse.xls ont les meme noms que mon
> fichier gp.xls.

> comment faire cela ?

> merci de votre aide.- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
FFO
Rebonjour à toi

Aprés analyse de tes fichiers transmis j'ai remarqué que mon code avait été
modifié sur les lignes suivantes :


Workbooks("analyse.xls").Sheets("analyse").Range("A65535").End(xlUp).Offset(-1, i) = ActiveCell.Offset(0, i)

J'ai écrit :

Workbooks("analyse.xls").Sheets("analyse").Range("A65535").End(xlUp).Offset(1, i) = ActiveCell.Offset(0, i)

La différence se situe sur :

Range("A65535").End(xlUp).Offset(-1, i)
Range("A65535").End(xlUp).Offset(1, i)

Ce qui conduit à ta constatation quant au résultat

De même pour les lignes :

Workbooks("analyse.xls").Sheets("analyse").Range("A65535").End(xlUp).Offset(-1, 0) = c
et
Workbooks("gpi.xls").Sheets("gpi").Range("A" & c.Row, "G" & c.Row).Copy
Workbooks("analyse.xls").Sheets("analyse").Range("A65535").End(xlUp).Offset(-1, 0)

Aucun Offset ne porte en valeur un "-1" dans mon code il faut mettre :

Workbooks("analyse.xls").Sheets("analyse").Range("A65535").End(xlUp).Offset(1, 0) = c

et
Workbooks("gpi.xls").Sheets("gpi").Range("A" & c.Row, "G" & c.Row).Copy
Workbooks("analyse.xls").Sheets("analyse").Range("A65535").End(xlUp).Offset(1, 0)

Corriges ces imperfections et le résultat s'en ressentira

Donnes moi des nouvelles !!!!
Avatar
P.Bastard
Bonjour, sleg.

Cette nouvelle contrainte n'était ni mentionnée dans ta demande, ni
apparente dans tes fichiers joints.
Une solution est cependant possible avec index, equiv et décaler.

Merci de renvoyer un exemple lorsque tu auras analysé *toutes* les autres
contraintes.

--
Bien ,

patrick.bastardchezdbmail.com

"sleg" a écrit dans le message de
news:

merci mais les informations ne se trouve pas sur la meme ligne dans
les 2 fichiers.


On 3 oct, 15:23, "P.Bastard"
wrote:
Bonjour, sleg.

Tes 3 feuilles ouvertes :
Sur la feuille analyse.xls, en ligne 1, de A à G : les mêmes titres que
ceux
de la feuille gpi.
En A2 : =gpi.xls!A2, à recopier en B2 (Ctrl + D), ce qui donne en A2
=gpi.xls!A2
En C2 : =SI(gpi.xls!C2=Assyst.xls!C2;"";gpi.xls!C2) à recopier jusqu'en G2
(Toujours Ctrl+D).

Sélectionner ensuite A2 jusqu'à Gx (x étant le nombre de lignes utiles),
et
Ctrl+B pour recopier vers le bas.

Seules les valeurs de GPI différentes dans Assyst apparaissent dans
analyse
(A condition que tes données A et B se trouvent sur la même ligne dans tes
deux fichiers à comparer !).

Cela te convient-il ?

--
Bien ,

patrick.bastardchezdbmail.com

"sleg" a écrit dans le message
denews:
Bonjour,

voici mes fichiershttp://cjoint.com/?kdoWvm8Abu

merci d'avance

On 3 oct, 14:06, "P.Bastard"
wrote:



> Bonjour, sleg

> Peux-tu joindre un exemple de ton classeur avec ses 3 feuilles, et
> quelques
> lignes de données dans gp.xls & ass.xls ?
> sur cjoint.com ou dans ma bal perso ?

> Bien amicordialement,

> --
> patrick.bastardchezdbmail.com

> "sleg" a écrit dans le message
> denews:
> Bonjour,

> voila mon probleme :

> j'ai 3 fichiers :
> - analyse.xls
> - gp.xls
> - ass.xls
> ces 3 fichiers sont dans le même repertoire.

> dans les fichier gp.xls & ass.xls j'ai en colonne A un nom de PC
> identique dans chaque fichier (gp.xls & ass.xls) et je dois comparer
> les informations du fichier gp.xls avec le ficheir ass.xls sur les
> colonne A à G ( le nom des colonnes est differents d'un fichier a
> l'autre et impossible de les changer ) mais la colonne b de gp.xls
> contient la meme information que la colonne B de ass.xls etc jusqu'a
> G. on considere que le fichier gp.xls est le ficheir referent
> contenant les bonne information et j'aimerais donc dans mon fichier
> analyse.xls le nom des serveurs et les informations en ecart entre
> gp.xls & ass.xls.

> les colonne de mon fichier analyse.xls ont les meme noms que mon
> fichier gp.xls.

> comment faire cela ?

> merci de votre aide.- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


1 2