IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

programmation autofiltre excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 1
    Par défaut programmation autofiltre excel
    Bonjour,
    très peu expérimentée dans ce domaine, je rencontre des difficultés avec vba, voici le programme que j'ai écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Sub essaiencore1()
    '
    ' essaiencore1 Macro
    ' Macro enregistrée le 31/01/2012 par legrand
    '
     Fname1 = "P23-4-segmentedP23-4_0"
        Fname3 = "_Parms.xls"
     
        For k% = 0 To 74
           FnameVal2 = 199 + 20 * k%
           Fname2 = Str(FnameVal2)
           If FnameVal2 < 1000 Then Fname2 = "0" + Mid$(Fname2, 2, 3)
           If FnameVal2 > 1000 Then Fname2 = Mid$(Fname2, 2, 4)
           Fname = Fname1 + Fname2 + Fname3
     
        Workbooks.Open Filename:=Fname
        Range("A5:C5").Select
        Selection.AutoFilter
        Selection.AutoFilter Field:=3, Criteria1:="<=5", Operator:=xlAnd
        Range("H2").Select
        MsgBox Application.WorksheetFunction.Subtotal(5000, Columns(3))
     
     
        Range("H2").Select
        Selection.Copy
        Windows("distri.xls").Activate
        Range("A2").Select
        ActiveSheet.Paste
        ActiveSheet.Paste Link:=True
        Cells(3 + k%, 2) = Elise
           Range("A4").Select
           Workbooks(Fname).Close SaveChanges:=True
    Mais je rencontre un souci, en effet je voudrais faire la somme de la colonne C6 jusqu'à C5000 mais sur les données filtrées?? Comment faire?
    Par ailleurs je veux que cette somme soit copier coller dans un autre fichier : 'distri' mais il m'affiche les valeurs dans A2 alors que je voudrais qu'il me les mettent les unes à la suite des autres dans la colonne A.
    Je ne sais pas si c'est très clair mais si vous avez une idée, n'hésitez pas!
    merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Une piste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    Sub Totaliser()
     
        Dim Plg As Range
        Dim Cel As Range
        Dim Total As Double
     
        'défini la plage (ici en colonne C de C6 à Cx)
        With ThisWorkbook.Worksheets("Feuil1")
     
            Set Plg = .Range(.Cells(6, 3), .Cells(.Rows.Count, 3).End(xlUp))
     
        End With
     
        'applique le filtre
        Plg.AutoFilter 1, "<=5", xlAnd
     
        'parcour les cellules visible de la plage
        'en effectuant le total
        For Each Cel In Plg.SpecialCells(xlCellTypeVisible)
     
            Total = Total + Cel.Value
     
        Next Cel
     
        'supprime le filtre
        Plg.AutoFilter
     
        'colle le total dans la feuille "Feuil1" en colonne A
        'du classeur "distri" et à la suite des valeurs présentent
        Workbooks("distri.xls").Worksheets("Feuil1").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = Total
     
    End Sub
    Hervé.

Discussions similaires

  1. programmation commentaire excel 2003.
    Par ylarvor dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/11/2007, 08h24
  2. Programme qu'Excel réalise une sélection
    Par sylv123123 dans le forum Excel
    Réponses: 7
    Dernier message: 28/06/2007, 16h24
  3. Lancer un programme dans Excel
    Par asperge dans le forum LabVIEW
    Réponses: 3
    Dernier message: 02/05/2007, 13h42
  4. Programmation VBA Excel UserForm
    Par rifchavon dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/03/2007, 08h52
  5. Réponses: 3
    Dernier message: 31/08/2006, 10h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo