PB de marco sous Excel -flitrer et copier

Neopy -  
Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   -
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
Configuration: Windows 2000
Internet Explorer 6.0

3 réponses

  1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    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
  2. Neopy
     
    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
  3. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    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