Faire la somme des cellules visibles d'une dont certaines colonnes sont masquées

Résolu/Fermé
Looping38 Messages postés 92 Date d'inscription samedi 22 octobre 2016 Statut Membre Dernière intervention 20 juillet 2020 - 9 déc. 2018 à 16:35
Looping38 Messages postés 92 Date d'inscription samedi 22 octobre 2016 Statut Membre Dernière intervention 20 juillet 2020 - 9 déc. 2018 à 16:50
Bonjour,
Je galère depuis plusieurs jours pour trouver la formules miracle.
J'ai un tableau dont les colonnes se masquent par une macro. Sur la ligne 9 de l'ensemble du tableau, j'ai écris des 1. Je souhaite faire la somme de ces 1 uniquement sur les colonnes visibles afin de décompter les colonnes restantes.

J'ai tenté de mettre une fonction associé à la macro suivante, mais j'utilise le compilateur DoneEx qui me supprime cette fonction lors de la transformation en .exe...

Function SommeVisibles(Champ As Range)
Application.Volatile
t = 0
For Each c In Champ
If Not c.EntireRow.Hidden And Not c.EntireColumn.Hidden Then
t = t + c.Value
End If
Next c
SommeVisibles = t
End Function


En langage vulgarisé, je souhaite :
somme des cellules G9 à derncol 9 uniquement sur les cellules visibles...

Si quelqu'un à un peu de temps à m'accorder?
Merci d'avance.


Configuration: Windows / Chrome 70.0.3538.110
A voir également:

1 réponse

Looping38 Messages postés 92 Date d'inscription samedi 22 octobre 2016 Statut Membre Dernière intervention 20 juillet 2020 1
9 déc. 2018 à 16:50
Je me répond à moi-même en espérant en faire profiter.

Sur un site en anglais, j'ai trouvé ces formules : (traduit par google)

Pour sélectionner uniquement les cellules visibles dans une plage de cellules sélectionnées, vous pouvez utiliser la ligne de code suivante:

Selection.SpecialCells (xlCellTypeVisible).Select


Si vous devez travailler sur une autre plage initiale de cellules avant de sélectionner le sous-ensemble visible de ces cellules, il vous suffit de modifier la partie "Sélection" de la ligne. Par exemple, vous pouvez sélectionner les cellules visibles dans la plage utilisée de la feuille de calcul en utilisant cette ligne:

ActiveSheet.UsedRange.SpecialCells (xlCellTypeVisible).Select


De même, vous pouvez sélectionner toutes les cellules visibles de la feuille de calcul en utilisant cette ligne:

Cells.SpecialCells (xlCellTypeVisible).Select


N'oubliez pas que les techniques décrites jusqu'à présent sélectionnent toutes les cellules visibles, même si elles sont hors écran. En d'autres termes, les techniques sélectionnent les cellules non masquées de la feuille de calcul. Si vous voulez vraiment sélectionner uniquement les cellules non cachées visibles à l'écran à l'heure actuelle, vous pouvez utiliser une technique différente:

Intersection (MyRange, ActiveWindow.VisibleRange) .SpecialCells (xlCellTypeVisible)


Le code commence par sélectionner uniquement les cellules où une plage donnée (dans le cas présent "MyRange") croise la plage visible de cellules dans la fenêtre active. La recherche de ces cellules est également effectuée à l'aide de la collection SpecialCells afin de s'assurer que seules les cellules non masquées sont utilisées.


J'ai également trouvé sur https://excel-malin.com/tutoriels/vba-tutoriels/somme-en-vba/ un tuto pour les sommes en VBA.
Pour mon exemple, un fichier ci-joint : https://www.cjoint.com/c/HLjpTPovrVM

Pour une fois que je participe à faire avancer le shmimblick !
1