Excel: MAJ d'une formule + filtre auto

Fermé
audrey - 18 avril 2005 à 15:40
 nogaret - 26 déc. 2007 à 18:53
Bonjour,

je travaille avec excel sur une extraction de données d'un atelier de fabrication
ces données contiennent des caractéristiques de machine classées dans des colonnes avec étiquettes (ex: nom, qté fabriquée...)
j'ai fait des formules (majoritairement SommeSi) pour l'ensemble de l'atelier que j'aimerais appliquer à chacune des machines ,automatiquement en filtrant les infos
mais lorsque je filtre mes données(sélection d'une seule machine), les formules disparraissent, ayant déclarer des plages de cellules dans mes formules qui diffèrent d'une machines à l'autre (la colonne restant identique)

comment résoudre ce problème

est-il possible de déclarer une étiquette dans une formule, de façon à ne prendre en compte que les données présente dans le tableau en fonction du filtre

merci de votre aide
A voir également:

4 réponses

De dieu, j'adore le vba mais il ne faut pas en abuser

Il existe une fonction peu connue qui fait tout et reconnait les filtres, la fonction :
SOUS.TOTAL(no_fonction;réf1; réf2, ...) à partir de Excel 97

no_fonction représente le nombre compris entre 1 et 11 (comprend les valeurs masquées) ou 101 et 111 (ignore les valeurs masquées) indiquant quelle fonction utiliser pour calculer les sous-totaux d'une liste.

no_fonction (comprend les valeurs masquées)
1 MOYENNE
2 NB
3 NBVAL
4 MAX
5 MIN
6 PRODUIT
7 ECARTYPE
8 ECARTYPEP
9 SOMME
10VAR
11VAR.P

no_fonction(ignore les valeurs masquées)
101 MOYENNE
102 NB
103 NBVAL
104 MAX
105 MIN
106 PRODUIT
107 ECARTYPE
108 ECARTYPEP
109 SOMME
110 VAR
111 VAR.P

réf1, réf2, représentent les 1 à 29 plages ou références pour lesquelles vous souhaitez un sous-total.

Donc dans ton cas Tu dois réserver les premières lignes pour faire tes formules, et mettre des données après pour pouvoir les triées.
Cependant j'ai supposé que tes conditions de somme.si étaient tes conditions de filtre, à l'inverse vba.

Et voila, j'adore excel.
2
Canard007 Messages postés 5929 Date d'inscription mercredi 26 mai 2004 Statut Contributeur Dernière intervention 18 septembre 2009 215
18 avril 2005 à 16:41
Oui c'est possible mais en passsant par une macro VBA.
ci dessous tu a un bout de code qui sur un clic de bouton te fait la somme d'une selection filtré .
Sub Button1_Click()
Dim line As Integer
Dim resultat As Single
GetDataAutofiltre
resultat = 0
line = 1
    Do
        resultat = resultat + Cells(line, 2)
        line = line + 1
    Loop While Cells(line, 2) <> ""
    Sheet2.Cells(1, 1) = resultat
End Sub


Sub GetDataAutofiltre()

Dim Destination As Range

'Définis ta plage où sera copiée les données.
'si même feuille oublis "Sheets" seulement Range(??)
Set Destination = Sheets(6).Range("A1")

Dim MaPlage As Range

'représente les données filtrées et les titres.
Set MaPlage = Sheets("Chrono").AutoFilter.Range

'représente seulement les données
Set MaPlage = MaPlage.Offset(1, 0).Resize(MaPlage.Rows.Count - 1, MaPlage.Rows.Count)

MaPlage.Copy Destination

End Sub

1
bonjour,

pour avoir la somme je fait cette formule : exemple =somme(c3:16) et puis je fait entrer mais le resultat est 0, il y a des chiffres dans les cases c3 et c4
0
- les chiffres qui sont dans les cellules C3 et C4 s'ils sont calés a gauche cela veut dire que ce ne sont pas des chifres mais du texte .Déja il faut bien verifier cela.Sinon il suffit de configurer les cellules en nombre.
si tu peux joint ton fichier et je regarderais ton problème
0