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

Recherches sur plusieurs feuilles

6 réponses
Avatar
pascale
Bonjour à toutes et à tous,

Je ne sais pas si mon message du 3 octobre est bien arrivé sur le forum
alors je me permets de vous l'adresser à nouveau. Merci

je travaille sur Excel 2003, dans un classeur j'ai une feuille clients avec
code client nom etc dans une deuxième feuille la liste des clients sortis et
dans une troisième feuille la liste des clients ajoutés. je dois dans une
quatrième feuille récupérer toutes les données de la feuille clients et
retirer ceux de la feuille sortis et insérer les nouveaux clients j'ai essayé
index equiv sans succès.

Merci à vous tous

Bonne fin journée
--
Pascale

--
Pascale

6 réponses

Avatar
Jacky
Bonsoir,

Si toutes les feuilles ont la même structure:
Mettre dans la 4 ème feuille les 3 autres feuilles à les unes à la suite des
autres et faire une extraction sans doublon.

Sinon, un peu de VBA

--
Salutations
JJ

"pascale" (sansspam)> a écrit dans le message de news:

Bonjour à toutes et à tous,

Je ne sais pas si mon message du 3 octobre est bien arrivé sur le forum
alors je me permets de vous l'adresser à nouveau. Merci

je travaille sur Excel 2003, dans un classeur j'ai une feuille clients
avec
code client nom etc dans une deuxième feuille la liste des clients sortis
et
dans une troisième feuille la liste des clients ajoutés. je dois dans une
quatrième feuille récupérer toutes les données de la feuille clients et
retirer ceux de la feuille sortis et insérer les nouveaux clients j'ai
essayé
index equiv sans succès.

Merci à vous tous

Bonne fin journée
--
Pascale

--
Pascale


Avatar
pascale
Merci beaucoup Jacky je vais essayer, je serais ok pour "un peu de VBA"
encore merci

Bonne journée à toutes et à tous
--
Pascale



Bonsoir,

Si toutes les feuilles ont la même structure:
Mettre dans la 4 ème feuille les 3 autres feuilles à les unes à la suite des
autres et faire une extraction sans doublon.

Sinon, un peu de VBA

--
Salutations
JJ

"pascale" (sansspam)> a écrit dans le message de news:

Bonjour à toutes et à tous,

Je ne sais pas si mon message du 3 octobre est bien arrivé sur le forum
alors je me permets de vous l'adresser à nouveau. Merci

je travaille sur Excel 2003, dans un classeur j'ai une feuille clients
avec
code client nom etc dans une deuxième feuille la liste des clients sortis
et
dans une troisième feuille la liste des clients ajoutés. je dois dans une
quatrième feuille récupérer toutes les données de la feuille clients et
retirer ceux de la feuille sortis et insérer les nouveaux clients j'ai
essayé
index equiv sans succès.

Merci à vous tous

Bonne fin journée
--
Pascale

--
Pascale







Avatar
JLuc
*Bonjour pascale*,

Merci beaucoup Jacky je vais essayer, je serais ok pour "un peu de VBA"
encore merci

Bonne journée à toutes et à tous
--
Pascale


Si tu es Ok pour un peu de VBA :

Sub Total()
Copie ("Clients")
Enleve ("Supprime")
Copie ("Ajoute")
Sheets("Resultat").Range("A1").Sort Key1:=Range("A7"),
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
End Sub

Sub Copie(feuille As String)
Dim existe As Boolean
With Sheets(feuille)
For x = 2 To .Range("A65536").End(xlUp).Row
existe = False
For y = 2 To Sheets("Resultat").Range("A65536").End(xlUp).Row
If .Cells(x, 1) = Sheets("Resultat").Cells(y, 1) Then
existe = True
Exit For
End If
Next
If Not existe Then
.Cells(x, 1).EntireRow.Copy Destination:= _
Sheets("Resultat").Cells(Range("A65536").End(xlUp).Row + 1,
1).EntireRow
End If
Next
End With
End Sub

Sub Enleve(feuille As String)
With Sheets(feuille)
For x = 2 To .Range("A65536").End(xlUp).Row
For y = 2 To Sheets("Resultat").Range("A65536").End(xlUp).Row
If .Cells(x, 1) = Sheets("Resultat").Cells(y, 1) Then
Sheets("Resultat").Cells(y, 1).EntireRow.Delete
Exit For
End If
Next
Next
End With
End Sub

Le fichier : http://cjoint.com/?khoGwikdUo

--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
pascale
Mille mercis cela fonctionne à merveille !

bonne journée
--
Pascale



*Bonjour pascale*,

Merci beaucoup Jacky je vais essayer, je serais ok pour "un peu de VBA"
encore merci

Bonne journée à toutes et à tous
--
Pascale


Si tu es Ok pour un peu de VBA :

Sub Total()
Copie ("Clients")
Enleve ("Supprime")
Copie ("Ajoute")
Sheets("Resultat").Range("A1").Sort Key1:=Range("A7"),
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
End Sub

Sub Copie(feuille As String)
Dim existe As Boolean
With Sheets(feuille)
For x = 2 To .Range("A65536").End(xlUp).Row
existe = False
For y = 2 To Sheets("Resultat").Range("A65536").End(xlUp).Row
If .Cells(x, 1) = Sheets("Resultat").Cells(y, 1) Then
existe = True
Exit For
End If
Next
If Not existe Then
.Cells(x, 1).EntireRow.Copy Destination:= _
Sheets("Resultat").Cells(Range("A65536").End(xlUp).Row + 1,
1).EntireRow
End If
Next
End With
End Sub

Sub Enleve(feuille As String)
With Sheets(feuille)
For x = 2 To .Range("A65536").End(xlUp).Row
For y = 2 To Sheets("Resultat").Range("A65536").End(xlUp).Row
If .Cells(x, 1) = Sheets("Resultat").Cells(y, 1) Then
Sheets("Resultat").Cells(y, 1).EntireRow.Delete
Exit For
End If
Next
Next
End With
End Sub

Le fichier : http://cjoint.com/?khoGwikdUo

--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O






Avatar
JB
Bonjour,

Solution1: Avec formules:

http://cjoint.com/?khqpG7z5rq

=SI(LIGNE()-1<=NBVAL(origine);INDEX(origine;LIGNE()-1);INDEX(nouveau;LI GNE()-1-NBVAL(origine)))

=SI(ESTTEXTE(INDEX(union;PETITE.VALEUR(SI(ESTNA(EQUIV(union;sup;0));EQUIV (union;union;0);"");LIGNE(INDIRECT("1:"&LIGNES(union))))));INDEX(union;PETI TE.VALEUR(SI(ESTNA(EQUIV(union;sup;0));EQUIV(union;union;0);"");LIGNE(INDIR ECT("1:"&LIGNES(union)))));"")

Solution2: Filtre élaboré:

http://cjoint.com/?khqtcTSv4w

Critère: =NB.SI(Sup!A2:A1000;Origine!A2)=0

Sub extrait()
Sheets("Origine").[A1:A1000].AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=[D1:D2], CopyToRange:=[A1]
Sheets("Nouveau").[A2:A1000].Copy [A65000].End(xlUp).Offset(1, 0)
End Sub


Cordialement JB


Bonjour à toutes et à tous,

Je ne sais pas si mon message du 3 octobre est bien arrivé sur le forum
alors je me permets de vous l'adresser à nouveau. Merci

je travaille sur Excel 2003, dans un classeur j'ai une feuille clients av ec
code client nom etc dans une deuxième feuille la liste des clients sort is et
dans une troisième feuille la liste des clients ajoutés. je dois dans une
quatrième feuille récupérer toutes les données de la feuille clie nts et
retirer ceux de la feuille sortis et insérer les nouveaux clients j'ai essayé
index equiv sans succès.

Merci à vous tous

Bonne fin journée
--
Pascale

--
Pascale


Avatar
pascale
Encore une fois mille merci vous êtes géniaux !

Excellente journée
--
Pascale



Bonjour,

Solution1: Avec formules:

http://cjoint.com/?khqpG7z5rq

=SI(LIGNE()-1<=NBVAL(origine);INDEX(origine;LIGNE()-1);INDEX(nouveau;LIGNE()-1-NBVAL(origine)))

=SI(ESTTEXTE(INDEX(union;PETITE.VALEUR(SI(ESTNA(EQUIV(union;sup;0));EQUIV(union;union;0);"");LIGNE(INDIRECT("1:"&LIGNES(union))))));INDEX(union;PETITE.VALEUR(SI(ESTNA(EQUIV(union;sup;0));EQUIV(union;union;0);"");LIGNE(INDIRECT("1:"&LIGNES(union)))));"")

Solution2: Filtre élaboré:

http://cjoint.com/?khqtcTSv4w

Critère: =NB.SI(Sup!A2:A1000;Origine!A2)=0

Sub extrait()
Sheets("Origine").[A1:A1000].AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=[D1:D2], CopyToRange:=[A1]
Sheets("Nouveau").[A2:A1000].Copy [A65000].End(xlUp).Offset(1, 0)
End Sub


Cordialement JB


Bonjour à toutes et à tous,

Je ne sais pas si mon message du 3 octobre est bien arrivé sur le forum
alors je me permets de vous l'adresser à nouveau. Merci

je travaille sur Excel 2003, dans un classeur j'ai une feuille clients avec
code client nom etc dans une deuxième feuille la liste des clients sortis et
dans une troisième feuille la liste des clients ajoutés. je dois dans une
quatrième feuille récupérer toutes les données de la feuille clients et
retirer ceux de la feuille sortis et insérer les nouveaux clients j'ai essayé
index equiv sans succès.

Merci à vous tous

Bonne fin journée
--
Pascale

--
Pascale