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 :

somme de cellules sauf pour les colonnes cachées VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Février 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Février 2015
    Messages : 2
    Par défaut somme de cellules sauf pour les colonnes cachées VBA
    Bonjour,

    je recherche à faire la somme de plusieurs cellules sauf pour les cellules qui sont dans des colonnes cachées

    ne trouvant pas cela au travers de formule Excel, j'ai codé en VBA une fonction personnalisée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Function SommeVisible(plage As Range)
        Application.Volatile
        Dim Wcel
        For Each Wcel In plage.Cells
            If IsNumeric(Wcel) And Wcel.EntireColumn.Hidden = False Then
                    SommeVisible = SommeVisible + Wcel.Value
            End If
        Next
    End Function
    cette fonction donne le bon résultat pour des cellules contigus, exemple :

    =SommeVisible(A1:F1)

    si B1 est dans une colonne cachée, sa valeur n'est pas prise en compte dans le total

    par contre, je souhaiterai faire la somme de cellules non-contigus comme la fonction SOMME() d'Excel, exemple :

    =SommeVisible(A1;D1;F1)

    sous cette forme j'ai une erreur #VALEUR! car je pense que le fonction n'accepte qu'un seul argument

    que faut-il changer dans la fonction pour que cela fonctionne ?
    merci de votre aide

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    ta fonction n'accepte qu'un seul argument.
    Met tes cellules entre parenthèse lors de l'appel, ou bien ajoute des arguments optionnels à ta fonction.
    eric

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 200
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    ne trouvant pas cela au travers de formule Excel, j'ai codé en VBA une fonction personnalisée
    Ah bon ?
    Si on parle bien de faire la somme d'une colonne de lignes filtrées, tu as la fonction SOUS.TOTAL
    Exemple avec le Total de la cellule B2:B100
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOUS.TOTAL(109;Feuil1!$B$2:$B$100)
    [EDIT]
    Désolé, je n'avais vu que c'était la somme de la ligne avec colonnes masquées
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Nouveau candidat au Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Février 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Février 2015
    Messages : 2
    Par défaut
    Citation Envoyé par eriiic Voir le message
    Bonjour,

    ta fonction n'accepte qu'un seul argument.
    Met tes cellules entre parenthèse lors de l'appel, ou bien ajoute des arguments optionnels à ta fonction.
    eric
    merci bien cela fonctionne en rajoutant la parenthèse

    pour la seconde solution, quelle serait la syntaxe de la fonction pour rajouter des arguments optionnels ?

    est-ce que ce serait comme la fonction SOMME standard d'Excel ?
    c-à-d =SOMME(A1;C1;G1;...autant de cellules que l'on veut)

    merci de ton aide

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Function SommeVisible(plage As Range, optional pl2 as range, optional pl3 as range, etc...)
    ou bien avec un tableau de paramètres plus adapté à ton cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Function SommeVisible(ParamArray plage()) As Double
    eric

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/12/2010, 13h59
  2. Trivial sauf pour les débutants COBOL
    Par cricri78cl dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/01/2010, 07h51
  3. requete pour les colonnes d'une table
    Par bassoum dans le forum Requêtes
    Réponses: 2
    Dernier message: 12/05/2008, 10h30
  4. disparition des options pour les fichiers cachés
    Par ph4prod dans le forum Windows XP
    Réponses: 8
    Dernier message: 07/08/2007, 03h28
  5. Partage de fichier : Marche sauf pour les exe
    Par JolyLoic dans le forum Windows XP
    Réponses: 2
    Dernier message: 27/08/2006, 18h24

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