Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/02/2012, 15h12   #1
Invité de passage
 
Femme
Étudiant
Inscription : 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
Points : 0
Points : 0
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 :
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
pamplemousse 76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 16h26   #2
Membre Expert
 
Homme Hervé Silve
Inscription : août 2010
Messages : 775
Détails du profil
Informations personnelles :
Nom : Homme Hervé Silve
Localisation : France

Informations forums :
Inscription : août 2010
Messages : 775
Points : 2 095
Points : 2 095
Bonjour,

Une piste :
Code :
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é.
Theze est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h30.


 
 
 
 
Partenaires

Hébergement Web