Effectuer une boucle sur des checkbox

Bonjour ! Je souhaiterais savoir si il serait possible " d'optimiser" mon code ci dessous. En effet, j'ai 8 checkbox, et le même code va s'appliquer à chaque cas. Est-il possible d'effectuer une boucle ou utiliser une autre solution pour éviter de devoir copier coller à chaque fois mon code pour chacune des checkbox ? Ça ne me pose en soit, pas de problème, mais rend le code très long pour pas grand chose..

Lorsque que l'on change de checkBox, valeur de la ligne de Cell() est incrémenté de 1. Par exemple pour la checkbox2 on aura : Sheets(Bonne_Fiche).Cells(6, Colonne_Date.Value). Autrement, tous le reste du code est le même.

If CheckBox1.Value = True And ComboBox1.Value = Catamaran Then

                    While (Colonne_Date <> Colonne_Date + 4)

                             If Sheets(Bonne_Fiche).Cells(5, Colonne_Date).Value <> "" Then
                                 Colonne_Date = Colonne_Date + 1

                                   Else
                                   If MsgBox(" Un créneau est disponnible sur cette horaire, voulez vous le réserver?",vbYesNo) = vbYes Then
                                   Sheets(Bonne_Fiche).Cells(5, Colonne_Date).Font.ColorIndex = 4

                                   Else
                                   End If
                             End If
                    Wend

End If

Merci d'avance !

Bonjour Joh.v, bonjour le forum,

Il te faudra passer par un module de classe mais le code que tu daignes nous montrer contient des variables inconnues qui ne nous permettent pas de te proposer une solution. Si tu es intéressé il faudra nous fournir le fichier qui va bien...

Bonjour à tous,

Lorsque que l'on change de checkBox, valeur de la ligne de Cell() est incrémenté de 1. Par exemple pour la checkbox2 on aura : Sheets(Bonne_Fiche).Cells(6, Colonne_Date.Value). Autrement, tous le reste du code est le même.

Est-ce que cela veut dire qu'en cochant un checkbox > tous les autres checkbox seront désactivés ?

ric

Thauthème
Si cela ne vous pose pas de problème, je vous transmet mon code par message !

Ric

Non justement, plusieurs checkbox peuvent être activé simultanément. D'où mon idée initial de faire 8 boucles distinctes

Bonsoir le fil, bonsoir le forum,

Désolé Joh.v mais je ne réponds pas aux mail perso. C'est juste une question d'éthique. C'est un forum d'entraide et les réponses doivent pouvoir bénéficier à tous mais pire, si tu ne t'adresses qu'à moi, tu te prives des réponses d'autres membres éminents de ce forum.

En revanche, rien ne t'empêche de créer un fichier exemple reprenant la structure de ton original, avec une poignée de données anonymes juste assez pour pouvoir faire tourner le code et de nous le soumettre. Nous nous ferons un plaisir de te venir en aide...

Vous trouverez ci-joint la partie de mon projet qui concerne les boucles sur les checkbox ! Je ne suis pas certain qu'il soit possible de tester cette partie, en effet, je travail encore à faire fonctionner le code visant à localiser la Bonne date et la bonne colonne qui ne fonctionne pas car ne trouve pas l'égalité ( juste au dessus des checkbox ).. je mettrais à jour dès que je l'ai fais fonctionner pour tester la boucle sur les checkbox

Bonjour à tous,

En attendant le module de classe de ThauThème > (il faut que j'apprenne la composition de ces modules de Classe) ...

Voici une ébauche d'un débutant ...

Il y a encore beaucoup de choses à ajouter > telles : gestion de la date saisie dans " Date_Location " du formulaire > Liste de clients > gestion des plages déjà réservées > etc.

ric

Bonjour,

Une autre version incluant la gestion de la saisie de la date ( voir ce fil ... https://forum.excel-pratique.com/astuces/gestion-des-dates-dans-des-textbox-147509 ) ...

Vérification si au moins une plage horaire est sélectionnée ...

Si le choix est catamaran > vérification s'il y a au moins un catamaran de choisi ...

ric

Bonjour,

Tout d'abord merci, je me rapproche exactement de ce que je voulais ! Ensuite, afin de bien comprendre chaque ligne ( et modifier très très légèrement certains points), je réécris petit à petit mon code avec votre base. Néanmoins, lorsque j'arrive dans ma section " localisation", les valeurs sh et ColDate qui ont été initialisé dans la section " Valider " ne sont plus reconnues et leurs valeurs deviennent vide !

ColDate = n
Sh = Sheets(i).Name
Call localisation
Exit Sub

Mes valeurs ici sont bien reconnus, mais impossible de les utiliser dans la section localisation.

J'ai beau chercher les différences entre votre algorithme et le mien, je ne vois pas de différence qui explique cette " disparition" des valeurs dans ma fonction localisation, ni de ligne dans votre code qui indique un rappel des valeurs entre les deux sections ! Peut être ai-je mal compris une ligne de votre code ?

Autant pour moi ... je n'avais pas défini les variables Sh et Coldate dans Option Explicit

Bonjour,

Pour passer la valeur d'une variable d'une macro à l'autre dans un userform > il faut placer la déclaration de ces variables tout au haut en dehors des macros ....

Va voir en haut du code ...

Option Explicit

Dim ColDate As Integer, Sh As String

ric

Bonjour le fil, bonjour le forum,

Désolé pour le retard mais je suis moins disponible en ce moment...
En pièce jointe une proposition avec un module de classe qui permet de définir les lignes selon le créneau horaire et les colonne selon le catamaran...
Je n'ai rien fait ni pour la gestion des dates ni pour la gestion des créneaux non disponibles...

11joh-v-ep-v01.xlsm (68.13 Ko)


Rechercher des sujets similaires à "effectuer boucle checkbox"