Somme des colonnes visibles uniquement

Le
Josephine
Bonjour, j'ai un onglet1 sur lequel est positionné un bouton qui me
renvoie à un onglet2 qui affiche des colonnes en fonction d'un choix
fait dans onglet1. Comment avoir sur onglet2 un total ligne qui ne me
prend que les colonnes visibles ?
Merci.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #24155181
Bonjour,

Dans un module standard, copie cette fonction personnalisée et dans
la cellule de la feuille de calcul, tu inscris la formule suivante :

=Sum_Col_Visibles(Feuil1!A1:D1)
Tu adaptes le nom de la feuille et de l'adresse de la plage à additionner

'------------------------------------
Function Sum_Col_Visibles(Rg As Range)
Dim C As Range, S As Double
For Each C In Rg.Rows(1).Cells
If C.EntireColumn.Hidden = False Then
If IsNumeric(C.Value) Then
S = S + C.Value
End If
End If
Next
Sum_Col_Visibles = S
End Function
'------------------------------------


MichD
------------------------------------------
"Josephine" a écrit dans le message de groupe de discussion :


Bonjour, j'ai un onglet1 sur lequel est positionné un bouton qui me
renvoie à un onglet2 qui affiche des colonnes en fonction d'un choix
fait dans onglet1. Comment avoir sur onglet2 un total ligne qui ne me
prend que les colonnes visibles ?
Merci.
Josephine
Le #24155521
Merci bcp, cela fonctionne.... mais j'ai juste encore un petit pb : le
recalcul de la somme avec la formule Sum_Col_Visibles ne se fait pas
automatiquement. Je suis obligée de me positionner dans la barre de
formule et de valider pour que le recalcul s'opère. Je précise que je
suis en excel 2010 et que j'ai bien coché calcul auto dans les
options.
Merci.
MichD
Le #24155731
| le recalcul de la somme avec la formule Sum_Col_Visibles ne se fait pas automatiquement

**** Le fait de masquer ou d'afficher une ou des colonnes n'entraîne aucune mise à jour
des fonctions dans la feuille de calcul AUTOMATIQUEMENT, ni, ne provoque ou déclenche
une quelconque procédure évènementielle. Effectivement,tu dois utiliser la touche F9 pour
la mise à jour.
**** Il est possible d'ajouter ce code dans le module feuille de la feuil1 où il y a des colonnes
à masquer ou à afficher. "Feuil2" représente la propriété "Name" de l'objet Feuille visible seulement
dans la fenêtre de l'éditeur de code. Feuil2 dans ce cas, est la feuille de calcul où tu as inséré la
fonction personnalisée dans une de ses cellules.
Dès que tu quittes la Feuil1, toute la feuil2 est recalculée. Tu peux être encore plus spécifique et
déterminer une plage spécifique de cellules à être recalculer comme : Feuil2.Range(G1:G10").calculate
qui allège le temps de calcul. C'est ton choix !

'---------------------
Private Sub Worksheet_Deactivate()
Feuil2.Calculate
End Sub
'---------------------


**** Cependant, si tu modifies le contenu d'une des cellules de la plage que tu as passée
en paramètre à la fonction, la mise à jour s'effectue.

MichD
------------------------------------------
"Josephine" a écrit dans le message de groupe de discussion :


Merci bcp, cela fonctionne.... mais j'ai juste encore un petit pb : le
recalcul de la somme avec la formule Sum_Col_Visibles ne se fait pas
automatiquement. Je suis obligée de me positionner dans la barre de
formule et de valider pour que le recalcul s'opère. Je précise que je
suis en excel 2010 et que j'ai bien coché calcul auto dans les
options.
Merci.
Publicité
Poster une réponse
Anonyme