Fermer Userform dans une macro

marjo_38

XLDnaute Nouveau
Bonjour,

J'ai un problème que je n'arrive pas à résoudre. J'ai plusieurs feuilles dans un classeur et à chaque fois que je clique sur la feuille 3 un userform s'affiche.
J'ai une macro dans la feuille 2 et lorsque je l'execute elle selectionne la feuille 3 pour chercher une info. Le problème c'est que lorsque la macro selectionne la feuille 3 le userform s'affiche alors que j'en ai pas besoin lors de l'execution de cette macro.Je n'arrive pas à trouver le moyen de fermer le userform à partir de la macro ou de ne pas l'afficher lorsque cette macro s'execute.
Merci beaucoup à la personne qui pourra m'aider car ca fait une heure que je me prends la tête....
 

gilbert_RGI

XLDnaute Barbatruc
Re : Fermer Userform dans une macro

Bonjour,

J'ai un problème que je n'arrive pas à résoudre. J'ai plusieurs feuilles dans un classeur et à chaque fois que je clique sur la feuille 3 un userform s'affiche.
J'ai une macro dans la feuille 2 et lorsque je l'execute elle selectionne la feuille 3 pour chercher une info. Le problème c'est que lorsque la macro selectionne la feuille 3 le userform s'affiche alors que j'en ai pas besoin lors de l'execution de cette macro.Je n'arrive pas à trouver le moyen de fermer le userform à partir de la macro ou de ne pas l'afficher lorsque cette macro s'execute.
Merci beaucoup à la personne qui pourra m'aider car ca fait une heure que je me prends la tête....

Bonjour

le fichier permettrait ou tout du moins le code de dire ce qui provoque l'apparition de l'userform et de vous aider

Cdlt

RGI
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Fermer Userform dans une macro

Salut à tous,

à marjo,c'est sans doute parce que tu as une macro évènementielle qui se met en route chaque fois que tu arrives sur la feuille3
dans l'onglet feuille3 au bas de ton écran, clique-droit et visualiser le code...c'est là que ça se passe

à te lire
 

marjo_38

XLDnaute Nouveau
Re : Fermer Userform dans une macro

En fait c'est normal que mon userforms s'affiche car c'est prévu qu'i s'affiche à chaque fois que clique sur feuille 3 voici ma macro dans la feuille :

Private Sub Worksheet_Activate()
Unload Customers_List
Customers_List.Show

End Sub

J'ai une macro dans un userform qui n'a rien à voir avec le userform précédent mais cette macro s'execute dans la feuille 2 mais elle va également chercher des infos dans la feuille 3 voici ma macro :
Private Sub CommandButton2_Click()

Application.ScreenUpdating = False
Sheets("customer list new").Select
Application.DisplayAlerts = False
Columns("A:M").Select
Selection.Find(What:=Range("F22").Value, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Selection.FindNext(After:=ActiveCell).Activate
ActiveCell.Offset(0, 5).Select
If ActiveCell = "" Then
Sheets("Facture").Select
Range("J14:J15").Select
Selection.Cut
ActiveSheet.Paste
End If

Lorsque la macro sélectionne la feuille 3 l'autre userform s'affiche mais cette fois ci je n'en ai pas besoin. Je souhaiterais le fermer à partir de la macro ou qu'il ne s'affiche pas lorsque j'execute cette macro.

J'espère que je suis assez claire car je ne peux pas vous joindre le fichier car confidentiel...
Merci
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Fermer Userform dans une macro

Re,

eviter l'ouverture de l'usf me parait pas faisable car elle se déclenche suite à l'évènement "Sheets("customer list new").Select" qui est dans ta macro

à moins qu'en essayant ceci ( en rouge)

Code:
Application.ScreenUpdating = False
Sheets("customer list new").Select
[COLOR="Red"]Customers_List.Hide[/COLOR]
Application.DisplayAlerts = False
Columns("A:M").Select
.......mais sans garantie aucune
 

marjo_38

XLDnaute Nouveau
Re : Fermer Userform dans une macro

J'ai déjà essayé mais ca ne marche pas...
Dans ce userform si je clique sur non le userform se ferme:

Private Sub OptionButton2_Click()
Customers_List.Hide
End Sub

Est ce que à partir de ma deuxième macro je peux selectionner "non" dans le userforms pour qu'il se ferme?
 

Pierrot93

XLDnaute Barbatruc
Re : Fermer Userform dans une macro

Bonjour Marjo, Gilbert, PhLaurent

une solution, utiliser une variable public de type booléenne, à mettre dans un module standard :

Code:
Public x As Boolean

dans le module de la feuille concernée, tu la testes :

Code:
Private Sub Worksheet_Activate()
If x = False Then
    Unload Customers_List
    Customers_List.Show
End If
End Sub

dans le code de ton bouton, tu la valorises :

Code:
Private Sub CommandButton2_Click()

Application.ScreenUpdating = False
[B][COLOR="Red"]x = True[/COLOR][/B]
Sheets("customer list new").Select
[COLOR="red"][B]x = False[/B][/COLOR]
Columns("A:M").Select
Selection.Find(What:=Range("F22").Value, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Selection.FindNext(After:=ActiveCell).Activate
ActiveCell.Offset(0, 5).Select
If ActiveCell = "" Then
Sheets("Facture").Select
Range("J14:J15").Select
Selection.Cut
ActiveSheet.Paste
End If

si lorsque tu parles de feuille 3, c'est bien celle ci : "customer list new"

A noter, qu'il est rarement nécessaire d'utiliser les "select" en vba...

bonne fin d'après midi
@+

Edition : précision sur nom de la feuille
 

Discussions similaires

Statistiques des forums

Discussions
312 497
Messages
2 088 992
Membres
104 000
dernier inscrit
dinelcia