Désactiver une boucle provisoirement...?

Bonsoir à tout le monde,

quelqu'un aurait-il une astuce pour désactiver une boucle If provisoirement ?

Merci de votre aide...

Bonjour,

non, vu qu'if n'a jamais fait une boucle.

eric

Bonsoir,

la mettre en commentaire : rajouter une apostrophe.

exemple :

Sub test()
    If a = 0 Then Stop
    If a = 2 And b = 6 Then
            traitement
    End If
    If b = 3 Then Exit Sub
End Sub

pour ne pas exécuter la seconde condition, mettre comme ci-dessous

Sub test()
    If a = 0 Then Stop
   'If a = 2 And b = 6 Then
    '        traitement
    'End If
    If b = 3 Then Exit Sub
End Sub

Bonjour eriiic,

eriiic a écrit :

Bonjour,

non, vu qu'if n'a jamais fait une boucle.

eric

J'ai pas tout compris...

A+ lol

Bonjour,

IF est un test, pas une boucle.

Les boucles c'est For ... Next, While ... Wend, Do .... Loop, etc

eric

eriiic a écrit :

Bonjour,

IF est un test, pas une boucle.

Les boucles c'est For ... Next, While ... Wend, Do .... Loop, etc

eric

Oups!

c'est vrai, quel idiot je fais...

Je ferme le post et j'en ouvre un autre.

Merci A+


Thihii a écrit :

Bonsoir,

la mettre en commentaire : rajouter une apostrophe.

exemple :

Sub test()
    If a = 0 Then Stop
    If a = 2 And b = 6 Then
            traitement
    End If
    If b = 3 Then Exit Sub
End Sub

pour ne pas exécuter la seconde condition, mettre comme ci-dessous

Sub test()
    If a = 0 Then Stop
   'If a = 2 And b = 6 Then
    '        traitement
    'End If
    If b = 3 Then Exit Sub
End Sub

Merci Thihiii,

J'ai envisagé cette solution, mais ce test comme l'a rectifié avec justesse eriiic m'est utile dans une autre partie du programme, ce que je souhaiterais faire, c'est une macro séparée qui le désactive et le réactive une fois la macro terminée...

En tout cas merci de t'intéresser à ma demande.

J'ouvre un autre post pour corriger mon erreur d'appellation.

A+

Pourquoi créer un doublon ? Edite le titre

Utilise une variable booléenne (Public si nécessaire) que tu testes en plus de ton test.

La logique dépend de si tu veux que cette partie soit exécutée à l'ouverture ou pas, puisqu'elle sera False à ce moment.

Imaginons que oui.

Dans un module standard :

Public nePasFaire as boolean

Ton test devient :

If nePasFaire and ton_test then ...

Quand tu veux que la portion ne s'exécute pas à un passage tu mets :

nePasFaire =True

que tu remets à False quand tu veux rétablir.

eric

Bonjour,

il est vrai que si la demande n'est pas explicite, il est difficile d'apporter une réponse qui convienne...

eriiic a écrit :

Pourquoi créer un doublon ? Edite le titre

Utilise une variable booléenne (Public si nécessaire) que tu testes en plus de ton test.

La logique dépend de si tu veux que cette partie soit exécutée à l'ouverture ou pas, puisqu'elle sera False à ce moment.

Imaginons que oui.

eric

Re bonjour eriic, Tu as bien compris ce que je recherchais, je vais creuser de ce côté là, et si je ne m'en sort pas, je reviens vers toi si tu le veux bien...

Bonne journée A+

à me relire c'est sans doute plus

If not nePasFaire and ton_test then ...

eric

Bonjour eriiic,

Comme je le craignais, j'ai du mal à m'en sortir seul...

L'exposé du problème est le suivant:

J'ai dans le module "M_tirages" une procédure "Tirage des équipes en doublettes" activée par le bouton "Tirage Doublettes" du UserForm "U_Inscriptions".

Cette procédure sert pour un concours de pétanque à la mélée...

Pour l'actionner, je passe par la feuille "Menu" ==> bouton "Concours" ==> bouton "clore les inscriptions" et là il apparaît.

Je l'actionnes, il lit les noms (Col A) et prénoms (Col B) de la feuille "Inscriptions" , les concatène, appaire les joueurs par un tirage au sort et les écrit en Cols N et O de la même feuille.

Puis le résultat est envoyé en feuille "Concours".

Le problème à résoudre est celui ci:

Je veux me servir de cette procédure pour les équipes choisies (donc plus besoin de lire les cols A et B, ni de concaténer, ni d'appairer les joueurs 2 à 2, puisqu'ils se sont inscrits en équipe).

Je les inscrit en passant par : Feuille "Menu" ==> bouton "concours" ==> bouton "Concours Equipes Choisies" ==> bouton "Inscriptions en Doublettes"

L'enregistrement se fait directement concaténé dans les Cols N et O de la feuille "Inscription".

En partant de la procédure que tu m'as donné, j'ai créé une variable publique en module "M_admin", puis j'ai mis ma procédure dans

"Tirage des équipes en doublettes" du module "M_Tirages" repérée par des '0000000000000000

et là après plusieurs tentatives pour la faire fonctionner, j'avoue mon incompétence et sollicite ton aide...

Merci de ton indulgence..

Mon fichier joint:

A+

Bonjour,

Pour faire court, dans quelle procédure de quel module veux-tu ne pas exécuter quelle procédure et à quelle condition supplémentaire ?

eric

bonjour eriiic,

dans la procédure "Sub Tirage(equip As Integer)" du module "M_Tirages".

Pour la partie de la procédure à désactiver, c'est je pense celle encadrée de ' 000000000000

Celle qui appaire les joueurs par équipe de 2 dans la feuille "Inscription Col N et O.

Merci...

A+

réponse incomplète...

Pardon eriiic, mais, je ne comprends pas ...

Mes explications ne sont pas claires...?

Dis moi ce que tu veux comme explications supplémentaires...

il manque : et à quelle condition supplémentaire ?

Tu as ajouté une variable nePasFaire, tu vois (ou suppose) où elle devrait servir, mais tu ne dis pas à quel moment elle doit être active en la passant à True et à quel moment elle doit redevenir False. Toi seul le sait.

eric

Bonsoir eriiic,

En fait, je ne sais pas trop ou je vais... le code n'est pas de moi, tu t'en doute,

J'essaies de l'adapter.

je rentre les noms des joueurs en colonnes A et B de la feuille Inscription par le Useform " U_Inscriptions" pour le tirage classique.

Pour le tirage en "équipes choisies", je les rentre en équipes de 2 par un autre Userform "U_Doublettes", pas en colonnes A et B mais en colonnes N et O, donc plus besoin du tirage au sort pour appairer les équipes.

Ce que cherche a faire, c'est mettre en veille la partie de code que j'ai balisé avec les '0000000000000000 qui me sert en tirage classique et pas en tirage équipes choisies.

Car lors du tirage de la 1ère partie, elle remplace les joueurs que j'ai inscrits par ceux des colonnes A et B.

J'ai trouvé qu'en mettant la ligne "Tirage 2" de la macro "Sub Doublettes" en commentaire, je réussissais a faire le tirage de la 1ère partie, mais j'ai un bug sur les grilles et le tirage se fait dans l'ordre d'inscription, Je n'ai plus la partie randomise ni le tri.

Désolé se ne pas être plus clair, mais ça fait 2 heures que je cherche, et j'ai le cerveau qui fume...

si tu arrive a y voir plus clair avec ça tant mieux, sinon ne te casse pas la tête pour rien, je vais essayer de mettre de l'ordre dans mes idées.

J'ai démarré l'apprentissage du VBA avec ce projet, et j'avoue que même si j'ai beaucoup appris, tout n'est pas encore trés clair.

En tout cas merci de t'intéresser à mon problème.

Bonne soirée

A+

Bonjour,

Ce que cherche a faire, c'est mettre en veille la partie de code que j'ai balisé avec les '0000000000000000 qui me sert en tirage classique et pas en tirage équipes choisies.

Ok, on avance. Comment se fait la différence entre équipe classique et choisies ?

Un bouton différent ? Une valeur dans une cellule ? Autre chose ?

Bonjour eriiic,

Pour les équipes en tirage classique, j'inscris les joueurs par le bouton "Inscrire au concours" du Userform "U_Inscriptions.

Ils sont enregistrés dans les Col A et B (Nom et Prénom) de la feuille "Inscription"

Ensuite, ils sont ensuite concaténés, tirés au sort pour constituer des équipes de 2 ou 3 joueurs selon le type de jeu voulu (Doublettes ou triplettes) et retranscrits dans les Col N et O pour les doublettes, N, O et P pour les triplettes

Pour le tirage en équipes choisies, je les inscris par le bouton "Enregistrer" du UserForm "U_doublettes".

Dans ce cas, ils sont concaténés dans ce même bouton et enregistrés dans les col N et O ou N, O et P de la même feuille.

Peut-on se servir de cette différence pour créer la condition additionnelle...?

Bonne fin de Week end,

A+

Un essai. J'ai mis le test et le endif associé là où tu voulais strapper le code (à part que le endif ne peut pas être dans le For, mis au-dessus.

J'ai renommé la variable equChoisie que ce soit plus parlant.

L'activation/désactivation se fait sur bouton "Enregistrer" du UserForm "U_doublettes".

Sur les lignes modifiées j'ai mis en commentaire 'equChoisie. Faire une recherche dessus au niveau Projet si tu veux les parcourir.

A tester...

eric

Rechercher des sujets similaires à "desactiver boucle provisoirement"