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 :

addition de nombre en gras dans un tableau


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Points : 60
    Points
    60
    Par défaut addition de nombre en gras dans un tableau
    Bonjour à tous

    Dans un tableau Excel j'ai différentes colonnes et lignes de nombres et j'aimerais savoir comment faire pour additionner uniquement les nombres en gras.
    et où dois-je mettre ce code.

    Je vous remercie de votre aide et à très bientôt.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 52
    Points : 68
    Points
    68
    Par défaut
    bonjour

    pour le code deux boucles for next suffisent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Dim ligne As Byte
    Dim colonne As Byte
    Dim somme As Byte
     
    For ligne = 1 To [derniere ligne]
        For colonne = 1 To [derniere colonne]
        If Cells(ligne, colonne).Font.Bold = True Then
        somme = somme + Cells(ligne, colonne).Value
        End If
     
        Next colonne
    Next ligne
    MsgBox somme
    ici la somme est donnée dans un msgbox mais tu peux aisément la mettre dans une cellule avec un poil de modif

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut isis1be et le forum
    vu la formulation, je suppose que tu n'as pas de grandes connaissances en VBA. Si ce n'est pas le cas, copie directement la fonction

    Menu Outils>>Macro>>Nouvelle macro>>OK
    tu arrêtes la macro à l'aide de "arrêter l'enregistrement" (et tu lèves ton verre : une première macro ça s'arrose )

    Menu macro>>Macros
    tu sélectionnes la macro que tu viens de faire et bouton "modifier"
    => tu es passé sous VBEditor

    en dessous de "End Sub", tu colles le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function NombreEbGras(plage_T As Range) As Double
    Dim cel As Range
    Dim Tot As Double
    Application.Volatile
    For Each cel In plage_T
        If IsNumeric(cel) And (cel.Font.Bold) Then
            Tot = Tot + cel
        End If
    Next cel
    NombreEbGras = Tot
    End Function
    tu sélectionnes la cellule où tu veux le résultat
    À gauche de la barre de formule tu cliques sur Fx
    (ou menu Insertion>>Fonction)
    sélectionner une catégorie : personnalisée
    tu sélectionnes : NombreEbGras
    l'argument doit être une plage de cellule comme tu le fais pour les autres fonction
    ATTENTION : si tu changes uniquement le formatage des cellules (mise en gras, en couleurs, bordure, sélection...) ta fonction ne se réactualisera pas. Il faut que tu provoques un calcul de la feuille soit avec F9, soit en passant en mode édition dans une cellule (double-clic, puis enter par exemple).
    A+

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Points : 60
    Points
    60
    Par défaut
    vous deux

    Ben oui je suis pas très fort en vba mais on apprend.
    Je te remercie Gorfael pour ton aide précieuse détaillée ca marche nickel.
    Petite précision concernant le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function NombreEbGras(plage_T As Range) As Double
    Dim cel As Range
    Dim Tot As Double
    Application.Volatile
    pour "application.volatile", j'ai regardé dans l'aide pour comprendre la signification mais je ne sais pas très bien ce que cela veut dire?
    est-ce que cela signifie que la fonction concerne certaines cellules dans une plage?

    Voila encore un grand merci pour votre aide et à très bientôt.

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut isis1be
    pour "application.volatile", j'ai regardé dans l'aide pour comprendre la signification mais je ne sais pas très bien ce que cela veut dire?
    la même fonction sans cette instruction se mettrait à jour uniquement au moment de la saise (ou de l'ouverture du fichier). Elle dit simplement que la formule doit être calculée à chaque fois que la page est calculée : en automatique, c'est à chaque fois qu'une cellule sort du mode édition, sinon c'esy par F9
    l'inconvénient, c'est que les modifications d'apparence de la feuille (couleur, bordures, polices, sélection, etc...) n'entraînent pas un recalcul.
    Mais on ne peut pas tout avoir
    A+

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Points : 60
    Points
    60
    Par défaut
    ok merci quand même pour tes lumière @++ et bon surf

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Points : 60
    Points
    60
    Par défaut
    Juste encore un truc,
    Tous fonctionne mais quand on change une cellule en gras ou pas gras, le résultat ne se met pas à jour directement, il faut relancer l'application, comment faire pour qu'il se remmette à jour? y a-t-il moyen? Voila je te remercie encore et à bientôt

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut isis1be
    Tous fonctionne mais quand on change une cellule en gras ou pas gras, le résultat ne se met pas à jour directement
    Éternel problème de la mise en forme : pas de macro accessible qui se lance en cas de changement de mise en forme.
    Donc, pas de solution... mais un palliatif possible : à chaque changement de sélection, un macro automatique se lance. On peut l'utiliser pour demander à Excel de recalculer la feuille. Mais Excel le fera à chaque changement de sélection, que tu ais changer quelque chose ou non. ce qui peut être gènant si le temps de traitement de ta feuille est long.

    Curseur souris sur le nom de l'onglet>>Clic-droit => menu contextuel>>Visualiser le code
    tu colles la macro suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Me.Calculate
    End Sub
    A+

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Points : 60
    Points
    60
    Par défaut
    Ouf je te remercie vraiment Gorfael ca marche super.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Nombre de lignes dans un tableau
    Par philippef dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 05/02/2007, 19h35
  2. nombre plus present dans un tableau
    Par Hachmoon dans le forum C
    Réponses: 8
    Dernier message: 21/11/2006, 17h21
  3. [VB6] Nombre d'element dans un tableau ?
    Par belfaigore dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 20/09/2006, 23h23
  4. [VBA-E] connaitre le nombre de ligne dans un tableau excel
    Par bigbarbe dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/04/2006, 11h03
  5. Compter le nombre d'élément dans un tableau
    Par cryptorchild dans le forum Langage
    Réponses: 6
    Dernier message: 08/07/2005, 14h01

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