Excel: MAJ d'une formule + filtre auto

audrey -  
 nogaret -
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

4 réponses

  1. papayes
     
    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
  2. Canard007 Messages postés 5954 Date d'inscription   Statut Contributeur 216
     
    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
  3. sara
     
    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
  4. nogaret
     
    - 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