Option buttons pour calculer une somme dans un tableau

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

malek713

XLDnaute Nouveau
Bonjour tout le monde,
je travaille depuis quelque jours sur une feuille excel qui contient une sorte de questionnaire. le questionnaire et composé de 3 tableaux remplis par des boutton radio.
les entêtes des 3 tableaux contiennent des chiffres.
j'ai ajouter deux bouttons au dessous de chaque tableau, un bouton de réeinitialisation des boutton radio et un boutton pour calcule de la somme.

j'ai fait le code pour le premier boutton, mais pour le deusième je bloque.

j'ai cherché une propriété qui me permet d'affecter les chiffres correspondant pour les bouton radio mais ca marche pas

voici le code:

Private Sub CommandButton1_Click()

Dim i As Integer
Dim N As Integer
Dim T1 As Integer
Dim K As Integer

N = ActiveSheet.OLEObjects.Count - 45

For i = 1 To N

If TypeName(ActiveSheet.OLEObjects(i).Object) = "OptionButton" Then
If ActiveSheet.OLEObjects(i).Object = True Then

K = ActiveSheet.OLEObjects(i).Object.Caption
T1 = T1 + K

End If

End If

Next i

ActiveWorkbook.Sheets(1).[G13] = T1


End Sub

merci d'avance
 
Re : Option buttons pour calculer une somme dans un tableau

Bonjour malek713
Difficile de s'y retrouver sans le support... Il serait bien de déposer un classeur, éventuellement simplifié, pour y voir plus clair.​
ROGER2327
#4348


Dimanche 15 Haha 138 (Nativité de l' Œstre, artificier, ST)
29 Vendémiaire An CCXIX
2010-W42-3T14:20:29Z
 
Re : Option buttons pour calculer une somme dans un tableau

Re...
Bonjour ROGER2327,
Merci d'avoir répondre 🙂
voilà le classeur est en pièce jointe
Vous aurez maintenant plus de chance d'obtenir de l'aide. Malheureusement, ne disposant que d'Excel2003, je ne peux ouvrir votre classeur. Place aux spécialistes d'Excel2007...​
Bonne soirée.

ROGER2327
#4350


Dimanche 15 Haha 138 (Nativité de l' Œstre, artificier, ST)
29 Vendémiaire An CCXIX
2010-W42-3T16:34:55Z
 
Re : Option buttons pour calculer une somme dans un tableau

Bonsoir à tous
ne pouvant malheureusement pas pouvoir aider je peux juste remettre le fichier compatible 97 / 2003
 

Pièces jointes

Dernière édition:
Re : Option buttons pour calculer une somme dans un tableau

Bonjour à tous
Merci à tactic6 et pierrejean pour le fichier au format .xls.
(Devant le déferlement de formats divers et variés, je me
demande si je ne vais pas bientôt disparaître de ce forum.
Place aux jeunes...)

Je viens d'analyser le dit classeur et ça m'a pris beaucoup de temps avant que de comprendre sa construction. Le piège était pourtant assez rudimentaire, mais bien caché.
J'explique :
La feuille Sheet1 (feuille, ça fait vulgaire, surtout sur un forum francophone...) laisse apparaître six CommandButton et septante-cinq OptionButton. Mais en réalité, il y en a septante-six ! Il y en a un supplémentaire planqué sous celui qu'on voit dans la cellule C17.
Pour vérifier cela, il suffit d'exécuter le code suivant :
Code:
[COLOR="DarkSlateGray"][B]Sub tata()
Dim i&, obj
  With Application: .ScreenUpdating = 0: .Calculation = -4135: .EnableEvents = 0: End With
  With Sheet2
    .Range("A1").CurrentRegion.ClearContents
    .Range("A1").Value = "TypeName"
    .Range("B1").Value = "Name"
    .Range("C1").Value = "Link Type"
    .Range("D1").Value = "Index"
    .Range("E1").Value = "Placement"
    .Range("F1").Value = "GroupName"
    .Range("G1").Value = "Caption"
    .Range("H1").Value = "Left"
    .Range("I1").Value = "Top"
    .Range("J1").Value = "TakeFocusOnClick"
    i = 1
    For Each obj In Worksheets("Sheet1").OLEObjects
      i = i + 1
      On Error Resume Next [COLOR="Sienna"]'Parce que les objets ne possèdent pas toutes les propriétés.[/COLOR]
      .Cells(i, 1).Value = TypeName(obj.Object)
      .Cells(i, 2).Value = obj.Name
      .Cells(i, 3) = obj.OLEType
      .Cells(i, 4).Value = obj.Index
      .Cells(i, 5).Value = obj.Placement
      .Cells(i, 6).Value = obj.Object.GroupName
      .Cells(i, 7).Value = obj.Object.Caption
      .Cells(i, 10).Value = obj.Object.TakeFocusOnClick
      .Cells(i, 8).Value = obj.Left
      .Cells(i, 9).Value = obj.Top
      On Error GoTo 0
    Next
  End With
  With Application: .EnableEvents = 1: .Calculation = -4105: .ScreenUpdating = 1: End With
End Sub[/B][/COLOR]
code qui permet d'examiner certaines propriétés des objets OLE de la première feuille. On s'aperçoit alors que le groupe line6 comporte six boutons au lieu des cinq attendus, et qu'il caché sous le premier bouton du groupe line7...

Comme cet OptionButton ne sert à rien (me semble-t-il), je l'ai viré, pour obtenir finalement le code suivant :
Code:
[COLOR="DarkSlateGray"][B]Private Sub CommandButton1_Click()
  toto 4, 33, [G13]
End Sub

Private Sub CommandButton2_Click()
  toto 34, 63, [G23]
End Sub

Private Sub CommandButton3_Click()
  toto 64, 78, [G33]
End Sub

Private Sub CommandButton4_Click()
  tutu 4, 33, [G13]
End Sub

Private Sub CommandButton5_Click()
  tutu 34, 63, [G23]
End Sub

Private Sub CommandButton6_Click()
  tutu 64, 78, [G33]
End Sub

Private Sub toto(d%, f%, r As Range)
Dim i%, T1%
  For i = d To f Step 5
    If OLEObjects(i).Object Then
      T1 = T1 + 0
    ElseIf OLEObjects(i + 1).Object Then
      T1 = T1 + 3
    ElseIf OLEObjects(i + 2).Object Then
      T1 = T1 + 5
    ElseIf OLEObjects(i + 3).Object Then
      T1 = T1 + 8
    ElseIf OLEObjects(i + 4).Object Then
      T1 = T1 + 10
    End If
  Next i
  r.Value = T1
End Sub

Private Sub tutu(d%, f%, r As Range)
Dim i%
  For i = d To f: OLEObjects(i).Object = False: Next i
  r.Value = ""
End Sub[/B][/COLOR]
Sur ce, ROGER2327 est fatigué. ROGER2327 va se coucher.​
ROGER2327
#4352


Lundi 16 Haha 138 (Saint Vadrouille, emblème, SQ)
30 Vendémiaire An CCXIX
2010-W42-4T02:34:29Z

________________________________
Postscriptum : Modification de la pièce jointe pour tenir compte de l'évolution proposée dans mon message suivant.
 

Pièces jointes

Dernière édition:
Re : Option buttons pour calculer une somme dans un tableau

Suite...
Modification du code de la feuille Sheet1 pour donner la possibilité d'avoir des coefficients différents pour chaque tableau.
Code:
[COLOR="DarkSlateGray"][B]Private Sub CommandButton1_Click()
  toto 4, 33, [COLOR="Navy"][C6:G6],[/COLOR] [G13]
End Sub

Private Sub CommandButton2_Click()
  toto 34, 63, [COLOR="Navy"][C16:G16],[/COLOR] [G23]
End Sub

Private Sub CommandButton3_Click()
  toto 64, 78, [COLOR="Navy"][C26:G26],[/COLOR] [G33]
End Sub

Private Sub CommandButton4_Click()
  tutu 4, 33, [G13]
End Sub

Private Sub CommandButton5_Click()
  tutu 34, 63, [G23]
End Sub

Private Sub CommandButton6_Click()
  tutu 64, 78, [G33]
End Sub

Private Sub toto(d%, f%, [COLOR="Navy"]r As Range, s As Range[/COLOR])
Dim i%, T1%
  For i = d To f Step 5
    If OLEObjects(i).Object Then
      T1 = T1 + [COLOR="Navy"]r(1)[/COLOR]
    ElseIf OLEObjects(i + 1).Object Then
      T1 = T1 + [COLOR="Navy"]r(2)[/COLOR]
    ElseIf OLEObjects(i + 2).Object Then
      T1 = T1 + [COLOR="Navy"]r(3)[/COLOR]
    ElseIf OLEObjects(i + 3).Object Then
      T1 = T1 + [COLOR="Navy"]r(4)[/COLOR]
    ElseIf OLEObjects(i + 4).Object Then
      T1 = T1 + [COLOR="Navy"]r(5)[/COLOR]
    End If
  Next i
  [COLOR="Navy"]s[/COLOR].Value = T1
End Sub

Private Sub tutu(d%, f%, r As Range)
Dim i%
  For i = d To f: OLEObjects(i).Object = False: Next i
  r.Value = ""
End Sub[/B][/COLOR]
ROGER2327
#4356


Lundi 16 Haha 138 (Saint Vadrouille, emblème, SQ)
30 Vendémiaire An CCXIX
2010-W42-4T09:12:05Z
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
203
Réponses
9
Affichages
597
Retour