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

Fusion

20 réponses
Avatar
pb
Bonjour,
J'ai deux fichiers 2008 et 2009 avec pour chacun d'eux en ColA un nom de
Gamme de produits et en ColB le nom du produit. Une gamme peu contenir X
Produits
A partir de ces deux fichiers, je dois en faire un troisiéme unique
regroupant toutes les données sachant que certaines gammes et certains
produits, ne sont pas communs au deux.
Sur 50 lignes je le faisais à la main, le souci là ce sont les 290 lignes.
Quelqu'un a t'il une idée??
Merci
Pascal

10 réponses

1 2
Avatar
LSteph
Bonjour,

En trois coup les gros:

Dans classeur3 colles tes données A:B.. du 2008
puis juste en dessous tes données A:B..n du 2009

Sélectionne le tout Données Filtre élaboré
coche sans doublons et pour Copier vers un autre emplacement
choisis la cellule D1 par exemple un peu plus loin et zou extrais.

Tu obtiens la liste sans doublons
Plus qu'à supprimer les colonnes A:C devenues inutiles.

--
lSteph


pb a écrit :
Bonjour,
J'ai deux fichiers 2008 et 2009 avec pour chacun d'eux en ColA un nom de
Gamme de produits et en ColB le nom du produit. Une gamme peu contenir X
Produits
A partir de ces deux fichiers, je dois en faire un troisiéme unique
regroupant toutes les données sachant que certaines gammes et certains
produits, ne sont pas communs au deux.
Sur 50 lignes je le faisais à la main, le souci là ce sont les 290 lignes.
Quelqu'un a t'il une idée??
Merci
Pascal




Avatar
pb
Merci de ta solution,
C'est ce que j'ai fais le seul truc mais je ne l'avais pas précisé, dans les
colonnes adjacentes c-->f j'ai des Qtés qui doivent bien sûr s'additionner
sur le classeur 3 au même endroit
Merci
Pascal
"LSteph" a écrit dans le message de news:

Bonjour,

En trois coup les gros:

Dans classeur3 colles tes données A:B.. du 2008
puis juste en dessous tes données A:B..n du 2009

Sélectionne le tout Données Filtre élaboré
coche sans doublons et pour Copier vers un autre emplacement
choisis la cellule D1 par exemple un peu plus loin et zou extrais.

Tu obtiens la liste sans doublons
Plus qu'à supprimer les colonnes A:C devenues inutiles.

--
lSteph


pb a écrit :
Bonjour,
J'ai deux fichiers 2008 et 2009 avec pour chacun d'eux en ColA un nom de
Gamme de produits et en ColB le nom du produit. Une gamme peu contenir X
Produits
A partir de ces deux fichiers, je dois en faire un troisiéme unique
regroupant toutes les données sachant que certaines gammes et certains
produits, ne sont pas communs au deux.
Sur 50 lignes je le faisais à la main, le souci là ce sont les 290
lignes.
Quelqu'un a t'il une idée??
Merci
Pascal





Avatar
Jacquouille
Salut Pb
Ben, tu fais comme Stéphane te l'a suggéré, sauf que tu sélectionnes toutes
les colonnes (a à F ou Z...), soit A1:Z500.
Ensuite, au lieu d'extraire sans doublons en col F, tu choisis une autre
feuille.....
Si ça va pas, tu reviens.

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

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

Merci de ta solution,
C'est ce que j'ai fais le seul truc mais je ne l'avais pas précisé, dans
les colonnes adjacentes c-->f j'ai des Qtés qui doivent bien sûr
s'additionner sur le classeur 3 au même endroit
Merci
Pascal
"LSteph" a écrit dans le message de news:

Bonjour,

En trois coup les gros:

Dans classeur3 colles tes données A:B.. du 2008
puis juste en dessous tes données A:B..n du 2009

Sélectionne le tout Données Filtre élaboré
coche sans doublons et pour Copier vers un autre emplacement
choisis la cellule D1 par exemple un peu plus loin et zou extrais.

Tu obtiens la liste sans doublons
Plus qu'à supprimer les colonnes A:C devenues inutiles.

--
lSteph


pb a écrit :
Bonjour,
J'ai deux fichiers 2008 et 2009 avec pour chacun d'eux en ColA un nom de
Gamme de produits et en ColB le nom du produit. Une gamme peu contenir X
Produits
A partir de ces deux fichiers, je dois en faire un troisiéme unique
regroupant toutes les données sachant que certaines gammes et certains
produits, ne sont pas communs au deux.
Sur 50 lignes je le faisais à la main, le souci là ce sont les 290
lignes.
Quelqu'un a t'il une idée??
Merci
Pascal









Avatar
pb
Merci j'essaye
Pascal
"Jacquouille" a écrit dans le message de
news:
Salut Pb
Ben, tu fais comme Stéphane te l'a suggéré, sauf que tu sélectionnes
toutes les colonnes (a à F ou Z...), soit A1:Z500.
Ensuite, au lieu d'extraire sans doublons en col F, tu choisis une autre
feuille.....
Si ça va pas, tu reviens.

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

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

Merci de ta solution,
C'est ce que j'ai fais le seul truc mais je ne l'avais pas précisé, dans
les colonnes adjacentes c-->f j'ai des Qtés qui doivent bien sûr
s'additionner sur le classeur 3 au même endroit
Merci
Pascal
"LSteph" a écrit dans le message de news:

Bonjour,

En trois coup les gros:

Dans classeur3 colles tes données A:B.. du 2008
puis juste en dessous tes données A:B..n du 2009

Sélectionne le tout Données Filtre élaboré
coche sans doublons et pour Copier vers un autre emplacement
choisis la cellule D1 par exemple un peu plus loin et zou extrais.

Tu obtiens la liste sans doublons
Plus qu'à supprimer les colonnes A:C devenues inutiles.

--
lSteph


pb a écrit :
Bonjour,
J'ai deux fichiers 2008 et 2009 avec pour chacun d'eux en ColA un nom
de Gamme de produits et en ColB le nom du produit. Une gamme peu
contenir X Produits
A partir de ces deux fichiers, je dois en faire un troisiéme unique
regroupant toutes les données sachant que certaines gammes et certains
produits, ne sont pas communs au deux.
Sur 50 lignes je le faisais à la main, le souci là ce sont les 290
lignes.
Quelqu'un a t'il une idée??
Merci
Pascal














Avatar
Daniel.C
Bonjour.
Essaie :

Sub test()
Dim SourceA As Worksheet, SourceB As Worksheet, Dico As Object
Dim c As Range, Sh As Worksheet, Ctr As Long, Ligne
Set Dico = CreateObject("Scripting.dictionary")
Workbooks.Add 1
Set Sh = ActiveSheet
Workbooks.Open "e:donneesdanielmpfeSourceA.xls"
Set SourceA = Sheets("Feuil1")
With SourceA
For Each c In Range(.[A1], .[A65000].End(xlUp))
If Not Dico.exists(c.Offset(, 1).Value) Then
Dico.Add c.Offset(, 1).Value, c.Offset(, 1).Value
Ctr = Ctr + 1
Sh.Cells(Ctr, 1) = c
Sh.Cells(Ctr, 2) = c.Offset(, 1)
Sh.Cells(Ctr, 3) = c.Offset(, 2)
Else
Ligne = Application.Match(c, Sh.[B:B], 0)
If IsNumeric(Ligne) Then
Sh.Cells(Ligne, 3) = Sh.Cells(Ligne, 3) +
c.Offset(, 2)
End If
End If
Next c
End With
ActiveWorkbook.Close False
Workbooks.Open "e:donneesdanielmpfeSourceB.xls"
Set SourceB = Sheets("Feuil1")
With SourceB
For Each c In Range(.[A1], .[A65000].End(xlUp))
If Not Dico.exists(c.Offset(, 1).Value) Then
Dico.Add c.Offset(, 1).Value, c.Offset(, 1).Value
Ctr = Ctr + 1
Sh.Cells(Ctr, 1) = c
Sh.Cells(Ctr, 2) = c.Offset(, 1)
Sh.Cells(Ctr, 3) = c.Offset(, 2)
Else
Ligne = Application.Match(c.Offset(, 1), Sh.[B:B], 0)
If IsNumeric(Ligne) Then
Sh.Cells(Ligne, 3) = Sh.Cells(Ligne, 3) +
c.Offset(, 2)
End If
End If
Next c
End With
ActiveWorkbook.Close False
End Sub

Cordialement.
Daniel

Merci de ta solution,
C'est ce que j'ai fais le seul truc mais je ne l'avais pas précisé, dans les
colonnes adjacentes c-->f j'ai des Qtés qui doivent bien sûr s'additionner
sur le classeur 3 au même endroit
Merci
Pascal
"LSteph" a écrit dans le message de news:

Bonjour,

En trois coup les gros:

Dans classeur3 colles tes données A:B.. du 2008
puis juste en dessous tes données A:B..n du 2009

Sélectionne le tout Données Filtre élaboré
coche sans doublons et pour Copier vers un autre emplacement
choisis la cellule D1 par exemple un peu plus loin et zou extrais.

Tu obtiens la liste sans doublons
Plus qu'à supprimer les colonnes A:C devenues inutiles.

--
lSteph


pb a écrit :
Bonjour,
J'ai deux fichiers 2008 et 2009 avec pour chacun d'eux en ColA un nom de
Gamme de produits et en ColB le nom du produit. Une gamme peu contenir X
Produits
A partir de ces deux fichiers, je dois en faire un troisiéme unique
regroupant toutes les données sachant que certaines gammes et certains
produits, ne sont pas communs au deux.
Sur 50 lignes je le faisais à la main, le souci là ce sont les 290 lignes.
Quelqu'un a t'il une idée??
Merci
Pascal







Avatar
MichDenis
Bonjour Pb,

Si tes données sont sur une même feuille de calcul,
tu peux utiliser faire un TDC de tes données.

Dans un deuxième temps, si tu veux te "débarrasser" du TDC
tu fais un copier coller du tableau.



"pb" a écrit dans le message de groupe de discussion : eEVB7N#
Bonjour,
J'ai deux fichiers 2008 et 2009 avec pour chacun d'eux en ColA un nom de
Gamme de produits et en ColB le nom du produit. Une gamme peu contenir X
Produits
A partir de ces deux fichiers, je dois en faire un troisiéme unique
regroupant toutes les données sachant que certaines gammes et certains
produits, ne sont pas communs au deux.
Sur 50 lignes je le faisais à la main, le souci là ce sont les 290 lignes.
Quelqu'un a t'il une idée??
Merci
Pascal
Avatar
pb
Merci Daniel,
J'ai adapté les différents chemin et j'ai collé ton module dans le 3éme
classeur de destination
J'ai un soucis sur la dernière ligne de ce bout de code

Dim SourceA As Worksheet, SourceB As Worksheet, Dico As Object
Dim c As Range, Sh As Worksheet, Ctr As Long, Ligne
Set Dico = CreateObject("Scripting.dictionary")
Workbooks.Add 1
Set Sh = ActiveSheet
Workbooks.Open "S:Atlantic Santécr2009.xls"
Set SourceA = Sheets("Feuil5")
Débogage sur : Set SourceA = Sheets("Feuil5")

Pascal





"Daniel.C" a écrit dans le message de news:
%
Bonjour.
Essaie :

Sub test()
Dim SourceA As Worksheet, SourceB As Worksheet, Dico As Object
Dim c As Range, Sh As Worksheet, Ctr As Long, Ligne
Set Dico = CreateObject("Scripting.dictionary")
Workbooks.Add 1
Set Sh = ActiveSheet
Workbooks.Open "e:donneesdanielmpfeSourceA.xls"
Set SourceA = Sheets("Feuil1")
With SourceA
For Each c In Range(.[A1], .[A65000].End(xlUp))
If Not Dico.exists(c.Offset(, 1).Value) Then
Dico.Add c.Offset(, 1).Value, c.Offset(, 1).Value
Ctr = Ctr + 1
Sh.Cells(Ctr, 1) = c
Sh.Cells(Ctr, 2) = c.Offset(, 1)
Sh.Cells(Ctr, 3) = c.Offset(, 2)
Else
Ligne = Application.Match(c, Sh.[B:B], 0)
If IsNumeric(Ligne) Then
Sh.Cells(Ligne, 3) = Sh.Cells(Ligne, 3) + c.Offset(, 2)
End If
End If
Next c
End With
ActiveWorkbook.Close False
Workbooks.Open "e:donneesdanielmpfeSourceB.xls"
Set SourceB = Sheets("Feuil1")
With SourceB
For Each c In Range(.[A1], .[A65000].End(xlUp))
If Not Dico.exists(c.Offset(, 1).Value) Then
Dico.Add c.Offset(, 1).Value, c.Offset(, 1).Value
Ctr = Ctr + 1
Sh.Cells(Ctr, 1) = c
Sh.Cells(Ctr, 2) = c.Offset(, 1)
Sh.Cells(Ctr, 3) = c.Offset(, 2)
Else
Ligne = Application.Match(c.Offset(, 1), Sh.[B:B], 0)
If IsNumeric(Ligne) Then
Sh.Cells(Ligne, 3) = Sh.Cells(Ligne, 3) + c.Offset(, 2)
End If
End If
Next c
End With
ActiveWorkbook.Close False
End Sub

Cordialement.
Daniel

Merci de ta solution,
C'est ce que j'ai fais le seul truc mais je ne l'avais pas précisé, dans
les colonnes adjacentes c-->f j'ai des Qtés qui doivent bien sûr
s'additionner sur le classeur 3 au même endroit
Merci
Pascal
"LSteph" a écrit dans le message de news:

Bonjour,

En trois coup les gros:

Dans classeur3 colles tes données A:B.. du 2008
puis juste en dessous tes données A:B..n du 2009

Sélectionne le tout Données Filtre élaboré
coche sans doublons et pour Copier vers un autre emplacement
choisis la cellule D1 par exemple un peu plus loin et zou extrais.

Tu obtiens la liste sans doublons
Plus qu'à supprimer les colonnes A:C devenues inutiles.

--
lSteph


pb a écrit :
Bonjour,
J'ai deux fichiers 2008 et 2009 avec pour chacun d'eux en ColA un nom
de Gamme de produits et en ColB le nom du produit. Une gamme peu
contenir X Produits
A partir de ces deux fichiers, je dois en faire un troisiéme unique
regroupant toutes les données sachant que certaines gammes et certains
produits, ne sont pas communs au deux.
Sur 50 lignes je le faisais à la main, le souci là ce sont les 290
lignes.
Quelqu'un a t'il une idée??
Merci
Pascal












Avatar
pb
Bonjour,
Et non justement elles ne sont pas sur la même feuille et qui plus est, pas
dans le même classeur non plus.
Merci




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

Bonjour Pb,

Si tes données sont sur une même feuille de calcul,
tu peux utiliser faire un TDC de tes données.

Dans un deuxième temps, si tu veux te "débarrasser" du TDC
tu fais un copier coller du tableau.



"pb" a écrit dans le message de groupe de discussion :
eEVB7N#
Bonjour,
J'ai deux fichiers 2008 et 2009 avec pour chacun d'eux en ColA un nom de
Gamme de produits et en ColB le nom du produit. Une gamme peu contenir X
Produits
A partir de ces deux fichiers, je dois en faire un troisiéme unique
regroupant toutes les données sachant que certaines gammes et certains
produits, ne sont pas communs au deux.
Sur 50 lignes je le faisais à la main, le souci là ce sont les 290 lignes.
Quelqu'un a t'il une idée??
Merci
Pascal


Avatar
isabelle
bonjour Pascal,

ajoute cette ligne
Application.SheetsInNewWorkbook = 5
juste avant
Set SourceA = Sheets("Feuil5")

isabelle

pb a écrit :
Merci Daniel,
J'ai adapté les différents chemin et j'ai collé ton module dans le 3éme
classeur de destination
J'ai un soucis sur la dernière ligne de ce bout de code

Dim SourceA As Worksheet, SourceB As Worksheet, Dico As Object
Dim c As Range, Sh As Worksheet, Ctr As Long, Ligne
Set Dico = CreateObject("Scripting.dictionary")
Workbooks.Add 1
Set Sh = ActiveSheet
Workbooks.Open "S:Atlantic Santécr2009.xls"
Set SourceA = Sheets("Feuil5")
Débogage sur : Set SourceA = Sheets("Feuil5")

Pascal





"Daniel.C" a écrit dans le message de news:
%

Bonjour.
Essaie :

Sub test()
Dim SourceA As Worksheet, SourceB As Worksheet, Dico As Object
Dim c As Range, Sh As Worksheet, Ctr As Long, Ligne
Set Dico = CreateObject("Scripting.dictionary")
Workbooks.Add 1
Set Sh = ActiveSheet
Workbooks.Open "e:donneesdanielmpfeSourceA.xls"
Set SourceA = Sheets("Feuil1")
With SourceA
For Each c In Range(.[A1], .[A65000].End(xlUp))
If Not Dico.exists(c.Offset(, 1).Value) Then
Dico.Add c.Offset(, 1).Value, c.Offset(, 1).Value
Ctr = Ctr + 1
Sh.Cells(Ctr, 1) = c
Sh.Cells(Ctr, 2) = c.Offset(, 1)
Sh.Cells(Ctr, 3) = c.Offset(, 2)
Else
Ligne = Application.Match(c, Sh.[B:B], 0)
If IsNumeric(Ligne) Then
Sh.Cells(Ligne, 3) = Sh.Cells(Ligne, 3) + c.Offset(, 2)
End If
End If
Next c
End With
ActiveWorkbook.Close False
Workbooks.Open "e:donneesdanielmpfeSourceB.xls"
Set SourceB = Sheets("Feuil1")
With SourceB
For Each c In Range(.[A1], .[A65000].End(xlUp))
If Not Dico.exists(c.Offset(, 1).Value) Then
Dico.Add c.Offset(, 1).Value, c.Offset(, 1).Value
Ctr = Ctr + 1
Sh.Cells(Ctr, 1) = c
Sh.Cells(Ctr, 2) = c.Offset(, 1)
Sh.Cells(Ctr, 3) = c.Offset(, 2)
Else
Ligne = Application.Match(c.Offset(, 1), Sh.[B:B], 0)
If IsNumeric(Ligne) Then
Sh.Cells(Ligne, 3) = Sh.Cells(Ligne, 3) + c.Offset(, 2)
End If
End If
Next c
End With
ActiveWorkbook.Close False
End Sub

Cordialement.
Daniel


Merci de ta solution,
C'est ce que j'ai fais le seul truc mais je ne l'avais pas précisé, dans
les colonnes adjacentes c-->f j'ai des Qtés qui doivent bien sûr
s'additionner sur le classeur 3 au même endroit
Merci
Pascal
"LSteph" a écrit dans le message de news:


Bonjour,

En trois coup les gros:

Dans classeur3 colles tes données A:B.. du 2008
puis juste en dessous tes données A:B..n du 2009

Sélectionne le tout Données Filtre élaboré
coche sans doublons et pour Copier vers un autre emplacement
choisis la cellule D1 par exemple un peu plus loin et zou extrais.

Tu obtiens la liste sans doublons
Plus qu'à supprimer les colonnes A:C devenues inutiles.

--
lSteph


pb a écrit :

Bonjour,
J'ai deux fichiers 2008 et 2009 avec pour chacun d'eux en ColA un nom
de Gamme de produits et en ColB le nom du produit. Une gamme peu
contenir X Produits
A partir de ces deux fichiers, je dois en faire un troisiéme unique
regroupant toutes les données sachant que certaines gammes et certains
produits, ne sont pas communs au deux.
Sur 50 lignes je le faisais à la main, le souci là ce sont les 290
lignes.
Quelqu'un a t'il une idée??
Merci
Pascal
















Avatar
Daniel.C
Telle que je l'ai écrite, les résultats s'inscrivent dans un nouveau
classeur créé par :
Workbooks.Add 1
Par contre je ne vois pas ce qui peut provoquer l'erreur, sauf si
Feuil5 ne fait pas partie du classeur "S:Atlantic Santécr2009.xls".
Quel est le message d'erreur ?
Daniel

Merci Daniel,
J'ai adapté les différents chemin et j'ai collé ton module dans le 3éme
classeur de destination
J'ai un soucis sur la dernière ligne de ce bout de code

Dim SourceA As Worksheet, SourceB As Worksheet, Dico As Object
Dim c As Range, Sh As Worksheet, Ctr As Long, Ligne
Set Dico = CreateObject("Scripting.dictionary")
Workbooks.Add 1
Set Sh = ActiveSheet
Workbooks.Open "S:Atlantic Santécr2009.xls"
Set SourceA = Sheets("Feuil5")
Débogage sur : Set SourceA = Sheets("Feuil5")

Pascal





"Daniel.C" a écrit dans le message de news:
%
Bonjour.
Essaie :

Sub test()
Dim SourceA As Worksheet, SourceB As Worksheet, Dico As Object
Dim c As Range, Sh As Worksheet, Ctr As Long, Ligne
Set Dico = CreateObject("Scripting.dictionary")
Workbooks.Add 1
Set Sh = ActiveSheet
Workbooks.Open "e:donneesdanielmpfeSourceA.xls"
Set SourceA = Sheets("Feuil1")
With SourceA
For Each c In Range(.[A1], .[A65000].End(xlUp))
If Not Dico.exists(c.Offset(, 1).Value) Then
Dico.Add c.Offset(, 1).Value, c.Offset(, 1).Value
Ctr = Ctr + 1
Sh.Cells(Ctr, 1) = c
Sh.Cells(Ctr, 2) = c.Offset(, 1)
Sh.Cells(Ctr, 3) = c.Offset(, 2)
Else
Ligne = Application.Match(c, Sh.[B:B], 0)
If IsNumeric(Ligne) Then
Sh.Cells(Ligne, 3) = Sh.Cells(Ligne, 3) + c.Offset(, 2)
End If
End If
Next c
End With
ActiveWorkbook.Close False
Workbooks.Open "e:donneesdanielmpfeSourceB.xls"
Set SourceB = Sheets("Feuil1")
With SourceB
For Each c In Range(.[A1], .[A65000].End(xlUp))
If Not Dico.exists(c.Offset(, 1).Value) Then
Dico.Add c.Offset(, 1).Value, c.Offset(, 1).Value
Ctr = Ctr + 1
Sh.Cells(Ctr, 1) = c
Sh.Cells(Ctr, 2) = c.Offset(, 1)
Sh.Cells(Ctr, 3) = c.Offset(, 2)
Else
Ligne = Application.Match(c.Offset(, 1), Sh.[B:B], 0)
If IsNumeric(Ligne) Then
Sh.Cells(Ligne, 3) = Sh.Cells(Ligne, 3) + c.Offset(, 2)
End If
End If
Next c
End With
ActiveWorkbook.Close False
End Sub

Cordialement.
Daniel

Merci de ta solution,
C'est ce que j'ai fais le seul truc mais je ne l'avais pas précisé, dans
les colonnes adjacentes c-->f j'ai des Qtés qui doivent bien sûr
s'additionner sur le classeur 3 au même endroit
Merci
Pascal
"LSteph" a écrit dans le message de news:

Bonjour,

En trois coup les gros:

Dans classeur3 colles tes données A:B.. du 2008
puis juste en dessous tes données A:B..n du 2009

Sélectionne le tout Données Filtre élaboré
coche sans doublons et pour Copier vers un autre emplacement
choisis la cellule D1 par exemple un peu plus loin et zou extrais.

Tu obtiens la liste sans doublons
Plus qu'à supprimer les colonnes A:C devenues inutiles.

--
lSteph


pb a écrit :
Bonjour,
J'ai deux fichiers 2008 et 2009 avec pour chacun d'eux en ColA un nom de
Gamme de produits et en ColB le nom du produit. Une gamme peu contenir X
Produits
A partir de ces deux fichiers, je dois en faire un troisiéme unique
regroupant toutes les données sachant que certaines gammes et certains
produits, ne sont pas communs au deux.
Sur 50 lignes je le faisais à la main, le souci là ce sont les 290
lignes.
Quelqu'un a t'il une idée??
Merci
Pascal














1 2