PB de marco sous Excel -flitrer et copier

Fermé
Neopy - 19 sept. 2007 à 10:41
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 20 sept. 2007 à 07:48
Bonjour,

Je bute sur un PB sous Excel, je cherche à créer une macro permettant de filtrer automatiquement une colonne,
puis pour chaque valeur du filtre de copier les données et de les coller sur une autre feuille.
Mon exemple:
colonne A : DEVISE colonne B: montant
EUR 100
EUR 200
USD 500
CZK 10000
USD 100

Merci de votre aide
A voir également:

3 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
19 sept. 2007 à 18:04
Bonjour
Un copier collé sur une feuille séparée marche trés bien après le tri et ne prend que les valeurs affichées.
On peut donc déja imaginer une macro"classique" qui renvoie uniquement les valeurs affichées après tri, comme par exemple ci dessous pour un champ de donnée de B4 à C27:
Sub Macro3()
'
' Macro3 Macro
' Macro enregistrée le 19/09/2007
'
Selection.AutoFilter Field:=1, Criteria1:="Firmin"
Range("B9:C52").Select
Selection.Copy
Sheets("Feuil1").Select
Range("B3").Select
ActiveSheet.Paste
Sheets("Feuil2").Select
Selection.AutoFilter Field:=1
End Sub
Cette macro copie sur la feuille 1 les données triées sous le prénom "firmin", et uniquement celles affichées de la feuille 2, elle remet ensuite la liste feuille 2 en place
A partir de là, on peut imaginer de passer par une série de boutons d'options spécifiés au nom à sélectionner et de macro correspondantes qui sélectionnerait la feuille, ou la plage de la feuille à remplir.
Ce que je ne sais pas, par contre, c'est s'il y a moyen de lancer la macro appropriée uniquement par le tri sans passer par les boutons?

Cordialement
0
Merci de ta réponse,
mais je cherche le moyen d'automatiser au maximum la procédure (je reconnais être trés feignant....).
voici le debut de ma recherche, mais ça ne fonctionne pas

Dim strDEV As String
Dim nDEV As Integer

nDEV = Sheets("Data").Cells.Find("*", Range("A1"), , , xlByRows, xlPrevious).Row - 1
For i = 2 To nDEV + 1
strDEV = Sheets("Data").Cells(i, 1)
Sheets("Data").Select
Range("A1:K1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=strDEV
Range("A1").Select
Selection.Copy
Sheets.Add
ActiveSheet.Name = strDEV
ActiveSheet.Paste
Sheets("Data").Select
Range("A1:B1").Select
Selection.AutoFilter
End If
Next i
End Sub
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
20 sept. 2007 à 07:48
Difficile d'analyser sans les info complète ce que vous voulez faire toutefois, le
"End if"
de votre macro ne répond à aucun "Then" et il semble que cela ne puisse donc pas marcher.
0