Macro pour copier des données selon 3 critères...

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Re : Macro pour copier des données selon 3 critères...

Re, bonsoir à tous, bhbh,

En fait ça efface les zones nommées dans la feuille travail (mais uniquement dans mon appli...)

Merci, bhbh, à+
ci dessus le code :

Sub donnees()
Application.ScreenUpdating = False
Dim pl As Range
'On Error Resume Next
With Sheets("RECAP RES")
derlig = .Cells(799, 2).End(xlUp).Row
Set pl = .Range(.Cells(1, 2), .Cells(derlig, 8))
pl.Name = "base"
.Range("B1:B" & .[B799].End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Sheets("travail").Range("A1"), Unique:=True
.Range("C1:C" & .[C799].End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Sheets("travail").Range("B1"), Unique:=True
.Range("D1😀" & .[C799].End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Sheets("travail").Range("C1"), Unique:=True
End With
For i = 1 To 3
With Sheets("travail")
derlig = .Cells(799, i).End(xlUp).Row
Set pl = .Range(.Cells(2, i), .Cells(derlig, i))
pl.Name = "base" & i
.Range("base" & i).Sort Key1:=.Cells(2, i), Order1:=xlAscending
End With
With Sheets("EtqDESS")
.Cells(2, i).Validation.Delete
.Cells(2, i).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=base" & i
.[IV2].FormulaR1C1 = _
"=AND(EtqDESS!R2C1='RECAP RES'!RC[-254],EtqDESS!R2C2='RECAP RES'!RC[-253],EtqDESS!R2C3='RECAP RES'!RC[-252])"
.[H2] = Sheets("RECAP RES").[H1]
Range("base").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=.Range( _
"IV1:IV2"), CopyToRange:=.Range("H2"), Unique:=True
.Range(Cells(3, 8), Cells(799, 8)).Sort Key1:=Range("H3"), Order1:=xlAscending
.[H2].ClearContents

.[H1].Select
End With
Next i

End Sub
 
Re : Macro pour copier des données selon 3 critères...

Bonsoir, ton code modifié (en rouge) :

Code:
Sub donnees2()
Application.ScreenUpdating = False
Dim pl As Range
'On Error Resume Next
With Sheets("RECAP RES")
derlig = .Cells(799, 2).End(xlUp).Row
Set pl = .Range(.Cells(1, 2), .Cells(derlig, 8))
pl.Name = "base"
.Range("B1:B" & [COLOR="Red"]derlig[/COLOR]).AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Sheets("travail").Range("A1"), Unique:=True
.Range("C1:C" & [COLOR="Red"]derlig[/COLOR]).AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Sheets("travail").Range("B1"), Unique:=True
.Range("D1[COLOR="Red"]:D[/COLOR]" & [COLOR="Red"]derlig[/COLOR]).AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Sheets("travail").Range("C1"), Unique:=True
End With
For i = 1 To 3
With Sheets("travail")
derlig = .Cells(799, i).End(xlUp).Row
Set pl = .Range(.Cells(2, i), .Cells(derlig, i))
pl.Name = "base" & i
.Range("base" & i).Sort Key1:=.Cells(2, i), Order1:=xlAscending
End With
With Sheets("EtqDESS")
.Cells(2, i).Validation.Delete
.Cells(2, i).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=base" & i
.[IV2].FormulaR1C1 = _
"=AND(EtqDESS!R2C1='RECAP RES'!RC[-254],EtqDESS!R2C2='RECAP RES'!RC[-253],EtqDESS!R2C3='RECAP RES'!RC[-252])"
.[H2] = Sheets("RECAP RES").[H1]
Range("base").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=.Range( _
"IV1:IV2"), CopyToRange:=.Range("H2"), Unique:=True
.Range(Cells([COLOR="Red"]2[/COLOR], 8), Cells(799, 8)).Sort Key1:=[COLOR="Red"].[/COLOR]Range("H3"), Order1:=xlAscending
.[H2].ClearContents
End With
Next i
.[H1].Select
End Sub
 
Re : Macro pour copier des données selon 3 critères...

Re ,bhbh,

Effectivement, je l'ai précisé en début de fil (appli trop lourde pour la mettre sur le forum), j'ai configuré mon appli de la même façon (zones nommées,déroulants, et feuille "travail") ça marche mais ça efface les zones nommées de la feuille "travail".

a+

Christian
 
Re : Macro pour copier des données selon 3 critères...

Bonjour,
PS : une vraie usine à gaz, ton fichier 😉

remplace dans ton module 17 :

Code:
With Sheets("RECAP RES")
derlig = .Cells(799, 2).End(xlUp).Row
Set pl = .Range(.Cells(1, 2), .Cells(derlig, 8))
pl.Name = "base"
.Range("B1:B" & derlig).AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Sheets("travail").Range("A1"), Unique:=True
.Range("C1:C" & derlig).AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Sheets("travail").Range("B1"), Unique:=True
.Range("D1:D" & derlig).AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Sheets("travail").Range("C1"), Unique:=True
End With

par :


Code:
With Sheets("RECAP RES")
derlig = .Cells(799, 2).End(xlUp).Row
Set pl = .Range(.Cells(1, 2), .Cells(derlig, 8))
pl.Name = "base"
.Range("[COLOR="Red"]base[/COLOR]").AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Sheets("travail").Range("A1"), Unique:=True
.Range("[COLOR="Red"]base[/COLOR]").AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Sheets("travail").Range("B1"), Unique:=True
.Range("[COLOR="Red"]base[/COLOR]").AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Sheets("travail").Range("C1"), Unique:=True
End With
 
Re : Macro pour copier des données selon 3 critères...

Bonjour à tout le forum,

Bonjour, bhbh, désolé pour "l'usine à gaz" c'est vrai que ce fichier est lourd.

ça marche, mais les zones nommées sont réduites à A1/B1/C1 même si je les étends...


Peux-tu me dire

Merci beaucoup pour ton aide,
Bien amicalement,
Christian
 
Re : Macro pour copier des données selon 3 critères...

Salut Christian0258
Bonjour bhbh
Bonjour le fil

arfff je me suis amusé à faire un petit truc ,mais je me suis rendu compte,que ce qui est collé en feuille EtqDESS dépend aussi des cellules P1 et Q1 (d'ou viennent ces données)


pourquoi mettre
lundi 25 février 2008 MIDI dans une même cellule plutôt que dans 2

à quoi sert la colonne G qui est vide dans le fichier ?
pourquoi avoir deux colonnes pour le Codage Final ?​
dans l'attente
Bonne fin de Journée
 
Re : Macro pour copier des données selon 3 critères...

Bonsoir à tout le forum, ChTi160,

Merci, ChTi160, de t'intéresser à mon cas.

Quel beau boulot. Mais j'ai besoin de récupérer ce que tu as fais par USF dans la feuille EtqDess pour ensuite pouvoir éditer des étiquettes...

Merci pour ton aide.

Bien amicalement,
Christian
 
Re : Macro pour copier des données selon 3 critères...

Re Christian
Re le Fil
Re le Forum

Arfff Tu n'as pas répondu à mes questions un peu au dessus Lol
pour ce qui est de récupérer les données dans la feuille ,ce n'est pas un problème ,mais il y a des choses qu'il faut que je sache Lol 😛
dans l'attente d'explications
Merci d'avance
Bonne fin de Soirée
 
Re : Macro pour copier des données selon 3 critères...

Re, ChTi160,

Dans la feuille RECAP RES la col G doit rester vide le codage final est donc bien en col H.

Les codes en col AD ne servent à rien c'est une erreur...cette col est vide.

Tu peux effectivement dissocier, comme tu l'as fait, la date du repas.

Je te remercie pour ton aide si précieuse.
à+
Christian
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
240
  • Question Question
XL 2021 Macro
Réponses
6
Affichages
313
Retour