Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème avec macro somme sur une colonne

  • Initiateur de la discussion Initiateur de la discussion jacksud
  • Date de début Date de début

jacksud

XLDnaute Occasionnel
En colonne E j’ai différents critères « ‘TOTO’ ‘TATA’’Vide’
En colonne G j’ai des montants et en cellule G1 j’ai le résultat de la somme.

Si je fais un filtre automatique à la main sur le critère ‘TOTO’ je trouve la valeur 1572k€ et quand je lance ma macro je trouve 2292k€

Je pense que le filtre de la macro n’arrive pas à exclure les cellules vides de la colonne E.
Ou alors il ne fait pas un filtre strict sur TOTO en gardant les cellules vides.

Si vous avez une idée ?

Voir fichier en pièce jointe

Jack Sud
 

Pièces jointes

  • Somme colonne G.xls
    53 KB · Affichages: 48

myDearFriend!

XLDnaute Barbatruc
Re : Problème avec macro somme sur une colonne

Bonjour jacksud, le Forum,

Code:
[COLOR=NAVY]Set[/COLOR] Plage = Range(Range("E65536").[COLOR=NAVY]End[/COLOR](xlUp), Range("E3"))
n'inclue pas la totatlité de la plage souhaitée mais s'arrête à la ligne 393 justement à cause des cellules vides en E394:E403.
Cette plage E394:E403 n'est donc pas filtrée et reste donc inclue dans ton sous-total.

Tu peux faire par exemple :
Code:
[COLOR=NAVY]Set[/COLOR] Plage = Range(Range("D65536").[COLOR=NAVY]End[/COLOR](xlUp).Offset(0, 1), Range("E3"))
pour régler ton problème.

Cordialement,
 

myDearFriend!

XLDnaute Barbatruc
Re : Problème avec macro somme sur une colonne

Re,

Cela dit, le plus simple reste encore de faire directement :
Code:
[COLOR=NAVY]Set[/COLOR] Plage = Range("E3:E65536")
Plage.AutoFilter Field:=1, Criteria1:="TOTO"


Cordialement,
 

jacksud

XLDnaute Occasionnel
Re : Problème avec macro somme sur une colonne

Merci beaucoup myDearFriends c'est ce que je voulais. J'ai pataugé une partie de l’après midi avec ce problème de somme.

Encore deux questions si je n’abuse pas trop :
Pourquoi AutoField Field=1 alors que lorsque l’on fait par enregistreur de macro il écrit Selection.AutoFilter Field:=5,

Comment mettre deux critères à la suite par exemple filtrer sur TOTO et les vides en même temps ?

Comment écrit une exclusion par exemple les vides ?

Je sais cela fait trois questions…..

Jack
 

myDearFriend!

XLDnaute Barbatruc
Re : Problème avec macro somme sur une colonne

Re,
Pourquoi AutoField Field=1 alors que lorsque l’on fait par enregistreur de macro il écrit Selection.AutoFilter Field:=5,
Tout d'abord, on parle bien d'AutoFilter et non d'AutoField.
Ensuite, tu n'as visiblement pas compris le code que tu essais de mettre en place. Dans le code, tu utilises Field:=1 car il n'y a qu'une seule colonne concernée par le filtre (voir ton code : Plage ne comprend qu'une seule colonne !). Si tu utilises l'enregistreur et qu'il t'indique Field:=5, cela signifie simplement que ta feuille comporte au moins 5 colonnes en autofiltre et que c'est la 5ième que tu as fait jouer.

Comment mettre deux critères à la suite par exemple filtrer sur TOTO et les vides en même temps ?
Là encore tu peux te servir de l'enregistreur de macro et choisir manuellement "(personnalisé...)" dans la liste, puis Egal à Toto OU Egal à (vide)
Ca te donnera un code qui ressemble à ça :
Code:
[COLOR=GRAY][B][I]RÉSULTAT DE L'ENREGISTREUR DE MACRO POUR "TOTO OU VIDE"[/I][/B][/COLOR]

    Selection.AutoFilter Field:=5, Criteria1:="=TOTO", Operator:=xlOr, _
        Criteria2:="="
que tu vas pouvoir adapter comme suit dans ton code :
Code:
Plage.AutoFilter Field:=1, Criteria1:="=*TOTO*", Operator:=xlOr, _
        Criteria2:="="
Comment écrit une exclusion par exemple les vides ?
Le principe reste le même que ci-dessus. Tu utilises l'enregistreur de macro et tu choisis manuellement "(Non vides)" dans la liste... Puis, tu adaptes pour ton code.

Cordialement,
 

jacksud

XLDnaute Occasionnel
Re : Problème avec macro somme sur une colonne


Merci pour toutes ces réponses et pour ta grande pédagogie.
Si tu connais un bouquin ou un site pour se former sur VBA je suis preneur. Car comme tu l’a remarqué je suis plus intuitif que raisonnés. Je ne suis pas programmeur seulement un cadre qui essai de se dépatouiller avec EXCEL.

Encore merci Jack
 

Discussions similaires

Réponses
4
Affichages
258
Réponses
8
Affichages
271
Réponses
2
Affichages
388
Réponses
5
Affichages
241
Réponses
3
Affichages
260
Réponses
20
Affichages
908
Réponses
6
Affichages
451
  • Question Question
Microsoft 365 Filtres avec multi ligne
Réponses
5
Affichages
277
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…