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.
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.
bonjour
pour le code deux boucles for next suffisent
ici la somme est donnée dans un msgbox mais tu peux aisément la mettre dans une cellule avec un poil de modif
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
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 :tu sélectionnes la cellule où tu veux le résultat
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
À 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+
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
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?
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
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.
Salut isis1bela 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 F9pour "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?
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+
ok merci quand même pour tes lumière @++ et bon surf
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
Salut isis1beÉternel problème de la mise en forme : pas de macro accessible qui se lance en cas de changement de mise en forme.Tous fonctionne mais quand on change une cellule en gras ou pas gras, le résultat ne se met pas à jour directement
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 :A+
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
Ouf je te remercie vraiment Gorfael ca marche super.
Partager