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 :

Problème de filtrage dans une macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 22
    Par défaut Problème de filtrage dans une macro
    Bonjour à tous,

    J'ai un problème au niveau de l'enregistrement de ma macro.
    Le principe de ma macro consiste à filtrer par rapport a la valeur de la cellule "B62" et donc faire la somme des valeurs de la colomne M correspondant au filtre.
    Le probleme est dans la somme.
    une fois ma macro lancée, le filre s'effecue correctement mais on me donne toujours la somme que j'ai enregistrer avec ma macro et non celle correspondante au filtre.
    Je doute que le probleme soit dans cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       ActiveCell.FormulaR1C1 = "=SUM(R[-83]C[10]:R[-31]C[10])"
    Votre aide est précieuse.

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    et pourquoi pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    activecell = worksheetfunction.SumIf("ta_plage","toncritère") 'et plus besoin de filtre
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 22
    Par défaut
    Dans mon programme il est necessaire de faire le filre.
    Je vous montre un peu le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Range("C85").Select
        Selection.Copy
        Range("B62").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Application.CutCopyMode = False
        ActiveSheet.Range("$A$4:$M$63").AutoFilter Field:=2, Criteria1:="=" & Range("B62").Value
        Range("C92").Select
        ActiveCell.FormulaR1C1 = "=SUM(R[-83]C[10]:R[-31]C[10])"
        Rows("62:62").Select
        Selection.EntireRow.Hidden = True

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur
    Inscrit en
    Janvier 2010
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2010
    Messages : 272
    Par défaut
    Effectivement, le code tel que donné dans ton post calcule la somme des valeurs des cellules M9 à M61, indépendamment du fait qu'elles soient filtrées ou non par ton critère.

    Est-ce que cette solution te convient ?

    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
        Range("C85").Select
        Selection.Copy
        Range("B62").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Application.CutCopyMode = False
        ActiveSheet.Range("$A$4:$M$63").AutoFilter Field:=2, Criteria1:="=" & Range("B62").Value
        Range("C92").Select
     
        Dim somme As Long
        somme = 0
        For Each cel In Range("M9:M61")
            If cel.EntireRow.Hidden = False Then
                somme = somme + cel.Value
            End If
        Next cel
        Range("C92").Value = somme
     
        Rows("62:62").Select
        Selection.EntireRow.Hidden = True

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 22
    Par défaut
    parfait !! Merci
    Mnt je voudrai savoir si cest possible d'associer un graphe au meme filtre aussi .Cad, Selon le resultat du filtre on obtient un graphe précis !!!!!!

  6. #6
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Changes cette partie, c'est moche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Range("C85").Select
        Selection.Copy
        Range("B62").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Application.CutCopyMode = False
    en, tout simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("B62").value = Range("C85").value
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

Discussions similaires

  1. [XL-2007] Problème de codage dans une macro en VBA
    Par skipeemed dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/12/2010, 17h32
  2. Problème de doublons dans une macro d'insertion
    Par guilo49 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/12/2009, 16h35
  3. [XL-2003] problème formule #NOM? dans une macro
    Par VBA je te hais dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/09/2009, 15h43
  4. Probléme de filtrage dans une boucle
    Par Gad29 dans le forum Langage
    Réponses: 5
    Dernier message: 04/05/2007, 09h16
  5. problème de condition dans une macro
    Par Skizo dans le forum Access
    Réponses: 3
    Dernier message: 15/05/2006, 11h22

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