Lancer "private sub" par formulaire ?

Bonjour le forum,

J'ai un une 'Private sub" fournie par curulis, que j'aimerais déclencher par le bouton valider du formulaire "U_Poules".

Elle fonctionne actuellement en cliquant directement dans les cellules de la "Feuil3".

Dans le VBA de ce formulaire, J'ai créé une "sub" qui me permet de cocher les case "Equipes" et "Poules" de la "Feuil3".

Dans un 1er temps, Pouvez-vous me dire s'il existe une programmation plus courte et plus élégante pour arriver au même résultat ?

Et si possible, d'expliquer la démarche...

Le bouton "Tirage des poules", me permet de lancer le formulaire "U_Poules.

Comment faire pour que le tirage (Le résultat du tirage se fait en "Feuil4") se fasse quand je clique sur le bouton "Tirage des poules" ?

Merci de votre aide à tous...

Mon fichier joint:

Bonjour

Peut-être tout simplement en forçant l'évènement Worksheet_SelectionChange de ta feuille 3

Private Sub btnValider_Click()
      Range("D2").Select
      Unload Me
End Sub

Si tu veux forcer l'évènement Worksheet_SelectionChange d'une autre feuille, tu sélectionnes une cellule de cette autre feuille qui est traitée dans ce changement de sélection

A +

Le forum,

@Patty5046

Au lieu de D2 ce serait C2 pour If Not Intersect(Target, Range("C2:C5")) ...

@atlonia

Dans U_Poules, l'utilisation du With est pour éviter la répétition du nom de l'objet.

Mais dans le code, il n'y a pas de . devant Range.

La plage Range affectée sera donc celle de la feuille en cours et le With ne sert à rien.

Avec le .Range, ce sera la Feuil3 ... celle du With

Dans ce cas précis, le code étant court, je préfèrerais écrire

Private Sub optJpE2_Click()
Sheets("Feuil3").Range("G2:G4") = ""
If optJpE2 = True Then Sheets("Feuil3").Range("G4") = "P"
End Sub 

Jim

Merci Patty5046 et jim55,

@jim55,

Merci pour la simplification du code, ça fonctionne parfaitement...

@Patty5046,

Merci également pour ton idée, mais ça ne fonctionne pas, en sélectionnant la cellule C2 avant la fermeture du UserForm, ça m'annule et remplace ma 1ere sélection.

De plus, la "private sub" n'est pas lancée, donc l'affichage ne change pas en "Feuil4".

Peut être as tu une autre idée ?

Merci encore pour ton aide

Le forum,

L'idée de Patty5046 est excellente, il ne faut que l'améliorer.

Je crois même que c'était sa pensée, suggérant implicitement qu'il ne restait qu'à l'adapter.

Private Sub btnValider_Click()
    If Range("C2") <> "" Then Range("C2").Select
    If Range("C3") <> "" Then Range("C3").Select
    If Range("C4") <> "" Then Range("C4").Select
    If Range("C5") <> "" Then Range("C5").Select
      Unload Me
End Sub

Jim

Bonjour,

met le code dans une procédure indépendante, que tu pourras appeler aussi bien depuis le SelectionChange que depuis le bouton.

eric

Merci Jim55 et eriiic,

@Jim55,

Parfait Jim55, ça correspond exactement à ce que je voulais...

@eriiic,

J'ai pas tout compris, peux tu m'expliquer un peu plus...

Merci encore pour votre aide à tous...

Bonjour,

Private Sub Worksheet_SelectionChange(ByVal target As Range)
    ma_proc target
End Sub

Sub ma_proc(ByVal target As Range)
    'le code copié Worksheet_SelectionChange
End Sub

tu peux appeler ma_proc de multiples endroits, en lui passant la plage concernée en paramètre.

eric

Bonjour eriiic,

Effectivement, ça fonctionne parfaitement...

Merci pour ton aide.

Rechercher des sujets similaires à "lancer private sub formulaire"