Microsoft 365 VBA : Addition conditionnel et checkbox

JulienLebreton

XLDnaute Nouveau
Bonjour à tous,

Je suis tombé sur votre forum en faisant des recherches sur les checkbox.
Je suis actuellement en train de faire une petite application pour calculer les temps passé sur différents projets en fonction de la réalisation de taches, dans l'idée quelque choses de plutôt simple.
J'ai réussi à obtenir le fonctionnement voulu sans VBA mais je me rends compte que le fichier que j'ai créé n'est pas viable car le fichier pourraient rapidement s'étonner et finir par contenir beaucoup de lignes et dans ce cas créé manuellement toutes les checkbox ne serait pas viable dans la durée.

Il y a sans doute un moyen plus simple de procéder, je vous joins le fichier en question.

Merci de votre aide

A bientôt,

Julien
 

Pièces jointes

  • Essai.xls
    40.5 KB · Affichages: 11
Solution
Bonjour Julien et bienvenu sur XLD,
Des centaines de checkbox sur une feuille n'ont jamais été la panacée.
Une autre approche est la macro Worksheet_SelectionChange à mettre dans la feuille.
Quand on clique sur une cellule on change sa valeur de FAUX on passe à VRAI et vice versa.
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Fin
    If Target.Count > 1 Then Exit Sub                                ' Si plusieurs cellules on sort
    If Not Intersect(Target, Range("O2:Q13")) Is Nothing Then        ' On définit la zone de travail
        If Target = "VRAI" Then Target = "FAUX" Else Target = "VRAI" ' On traite la valeur
    End If
Fin:
End Sub

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Julien et bienvenu sur XLD,
Des centaines de checkbox sur une feuille n'ont jamais été la panacée.
Une autre approche est la macro Worksheet_SelectionChange à mettre dans la feuille.
Quand on clique sur une cellule on change sa valeur de FAUX on passe à VRAI et vice versa.
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Fin
    If Target.Count > 1 Then Exit Sub                                ' Si plusieurs cellules on sort
    If Not Intersect(Target, Range("O2:Q13")) Is Nothing Then        ' On définit la zone de travail
        If Target = "VRAI" Then Target = "FAUX" Else Target = "VRAI" ' On traite la valeur
    End If
Fin:
End Sub
 

Pièces jointes

  • Essai (1).xls
    46 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
C'est simplement de la gestion d'erreur.
1.jpg
 

JulienLebreton

XLDnaute Nouveau
Bonsoir,
Ah ah désolé, je ne vais pas mettre la faute sur le correcteur !
Merci beaucoup Sylvanu !
Le code fonctionne à merveille, au début les formules ne sortaient pas de résultat, j'ai juste rajouté un des guillemets pour signifier qu'il s'agissait bien de texte au mot VRAI.

Merci encore,

A bientôt,

Julien
 

Discussions similaires

Statistiques des forums

Discussions
312 251
Messages
2 086 625
Membres
103 270
dernier inscrit
milvi.org