macro copie de lignes sélective

Le
Françoise
Bonjour à tous,

je veux faire une macro qui
dans la feuille "TOUS", met des filtres automatiques
sélectionne la colonne "E"
trie les valeurs (numériques sur 3 positions "001" "002" etc
prend la PREMIERE LIGNE de cette valeur qui correspond au 1er prix des
articles de cette valeur
copie toute la ligne
dans la feuille "UNITAIRE" sur la ligne 2
et ainsi pour toutes les valeurs triées en colonne "E" sur les lignes
suivantes de la feuille "UNITAIRE"
voici ce que j'ai commencé, mais je sèche pour l'automatisation évidemment !
--
Sub COPIE_LIGNE()

Cells.Select
Selection.AutoFilter
Selection.AutoFilter Field:=5, Criteria1:="001"
Rows("2:2").Select
Selection.Copy
Sheets("UNITAIRE").Select
ActiveSheet.Paste
Sheets("TOUS").Select
Application.CutCopyMode = False
Selection.AutoFilter Field:=5, Criteria1:="002"
Rows("4:4").Select
Selection.Copy
Sheets("UNITAIRE").Select
Rows("3:3").Select
ActiveSheet.Paste
Range("A1").Select
Sheets("TOUS").Select
Application.CutCopyMode = False
Selection.AutoFilter
Range("A2").Select
End Sub

un petit coup de main serait le bienvenu !
d'avance merci
Françoise
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #4648491
Bonjour,


Solution Filtre élaboré:

Critère:â<>E3 en G2

[A1].Sort Key1:=Range("E2"), Order1:=xlAscending,
Key2:=Range("D2"), _
Order2:=xlDescending, Header:=xlGuess
[A1:E1000].AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=[G1:G2], _
CopyToRange:=Sheets("unitaire").[A1:E1]

Solution tradi:

[A1].CurrentRegion.Sort Key1:=[E2], Order1:=xlAscending, Key2:=[D2],
Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _
:úlse
Set sh = Sheets("unitaire")
[A1].CurrentRegion.Copy sh.[A1]
i = 2
Do While sh.Cells(i, 5) <> ""
m = sh.Cells(i, 5)
i = i + 1
Do While sh.Cells(i, 5) = m
sh.Rows(i).Delete
Loop
Loop

http://cjoint.com/?ijrot3NgCS

JB


On 9 août, 16:18, Françoise wrote:
Bonjour à tous,

je veux faire une macro qui
dans la feuille "TOUS", met des filtres automatiques
sélectionne la colonne "E"
trie les valeurs (numériques sur 3 positions "001" "002" etc
prend la PREMIERE LIGNE de cette valeur qui correspond au 1er prix des
articles de cette valeur
copie toute la ligne
dans la feuille "UNITAIRE" sur la ligne 2
et ainsi pour toutes les valeurs triées en colonne "E" sur les lignes
suivantes de la feuille "UNITAIRE"
voici ce que j'ai commencé, mais je sèche pour l'automatisation évi demment !
--------------------------------
Sub COPIE_LIGNE()

Cells.Select
Selection.AutoFilter
Selection.AutoFilter Field:=5, Criteria1:="001"
Rows("2:2").Select
Selection.Copy
Sheets("UNITAIRE").Select
ActiveSheet.Paste
Sheets("TOUS").Select
Application.CutCopyMode = False
Selection.AutoFilter Field:=5, Criteria1:="002"
Rows("4:4").Select
Selection.Copy
Sheets("UNITAIRE").Select
Rows("3:3").Select
ActiveSheet.Paste
Range("A1").Select
Sheets("TOUS").Select
Application.CutCopyMode = False
Selection.AutoFilter
Range("A2").Select
End Sub
------------------------------------------------
un petit coup de main serait le bienvenu !
d'avance merci
Françoise


Françoise
Le #4648381
ça marche parfaitement, je suis stupéfaite de tes connaissances et éblouie
par les possiblités d'excel !
encore merci pour ton aide précieuse
Françoise


Bonjour,


Solution Filtre élaboré:

Critère:â<>E3 en G2

[A1].Sort Key1:=Range("E2"), Order1:=xlAscending,
Key2:=Range("D2"), _
Order2:=xlDescending, Header:=xlGuess
[A1:E1000].AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=[G1:G2], _
CopyToRange:=Sheets("unitaire").[A1:E1]

Solution tradi:

[A1].CurrentRegion.Sort Key1:=[E2], Order1:=xlAscending, Key2:=[D2],
Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _
:úlse
Set sh = Sheets("unitaire")
[A1].CurrentRegion.Copy sh.[A1]
i = 2
Do While sh.Cells(i, 5) <> ""
m = sh.Cells(i, 5)
i = i + 1
Do While sh.Cells(i, 5) = m
sh.Rows(i).Delete
Loop
Loop

http://cjoint.com/?ijrot3NgCS

JB


On 9 août, 16:18, Françoise wrote:
Bonjour à tous,

je veux faire une macro qui
dans la feuille "TOUS", met des filtres automatiques
sélectionne la colonne "E"
trie les valeurs (numériques sur 3 positions "001" "002" etc
prend la PREMIERE LIGNE de cette valeur qui correspond au 1er prix des
articles de cette valeur
copie toute la ligne
dans la feuille "UNITAIRE" sur la ligne 2
et ainsi pour toutes les valeurs triées en colonne "E" sur les lignes
suivantes de la feuille "UNITAIRE"
voici ce que j'ai commencé, mais je sèche pour l'automatisation évidemment !
--------------------------------
Sub COPIE_LIGNE()

Cells.Select
Selection.AutoFilter
Selection.AutoFilter Field:=5, Criteria1:="001"
Rows("2:2").Select
Selection.Copy
Sheets("UNITAIRE").Select
ActiveSheet.Paste
Sheets("TOUS").Select
Application.CutCopyMode = False
Selection.AutoFilter Field:=5, Criteria1:="002"
Rows("4:4").Select
Selection.Copy
Sheets("UNITAIRE").Select
Rows("3:3").Select
ActiveSheet.Paste
Range("A1").Select
Sheets("TOUS").Select
Application.CutCopyMode = False
Selection.AutoFilter
Range("A2").Select
End Sub
------------------------------------------------
un petit coup de main serait le bienvenu !
d'avance merci
Françoise







Publicité
Poster une réponse
Anonyme