Userform se ferme sans le vouloir à la fin d'une procédure

Jonathan1986

XLDnaute Nouveau
Bonjour à tous,

Bonjour le forum,

Je fais appel à vous car je reste bloqué sur un problème auquel il n'y a pas de solution sur es forums, je me demande même s'il y en a une.

Voici mon problème, j'espère que quelqu'un aura un peu de temps pour tenter de trouver une explication

Sur une userform de mon application de création de devis, j'ai un bouton envoyé.
Les actions de ce bouton :
- protège par mot de passe le devis (autre classeur)
- Ouvre une base de données externe pour modifié le statut de ce devis
- modifie le statut de ce devis dans une BDD présente dans le logiciel.

Tout fonctionne bien sauf que mon userform se ferme après l'éxecution. J'ai essayé tout ce que je connais et pas moyen de lancer un userform après cette procédure.

Sur les forums on dit que cela est du a des select ou activate, ou que c'est parce que je modifie des feuilles.

Bref mon classeur sera invisible donc il faut que je passe sur une userform après la procédure ...

voici le code (sauf qu'li ne peut pas marcher car il y a des emplacements spcifiques) :

Private Sub CommandButton6_Click()
Dim WB As Workbook
Dim WK As Workbook
Dim WW As Workbook
Dim G As Integer
Dim x As Integer
Dim H As Integer
Dim Response As Byte

Response = MsgBox("ATTENTION ! Si vous réviser cette PROFORMA vous ne pourrez plus la modifier! Etes-vous sûr de vouloir réviser la PROFORMA sélectionnée?", _
vbOKCancel + vbQuestion, "Envoyer la PROFORMA")

If Response = 1 Then
'ouvre BDD externe pour mettre statut envoyé
Workbooks.Open Filename:= _
ThisWorkbook.Sheets("DATA").Range("G2") & "\BDDD.xlsm"
Set WK = Workbooks("BDDD.xlsm")
With WK
G = WK.Sheets("BDDD").Range("A65536").End(xlUp).Row + 1
For x = 1 To 10000
If WK.Sheets("BDDD").Range("A" & x) = LB1.List(LB1.ListIndex, 0) Then
WK.Sheets("BDDD").Range("H" & x) = "Envoyé"
End If
Next x
End With
WK.Save
WK.Close

'statut envoyé dans le logiciel
Set WW = Workbooks("DEVIS - Copie.xlsm")
With WW
H = WW.Sheets("BDDD").Range("A65536").End(xlUp).Row + 1
For x = 1 To H
If WW.Sheets("BDDD").Range("A" & x) = LB1.List(LB1.ListIndex, 0) Then
WW.Sheets("BDDD").Range("H" & x) = "Envoyé"
End If
Next x
End With

'protège et imprime proforma
Workbooks.Open Filename:= _
ThisWorkbook.Sheets("DATA").Range("G3") & "\" & LB1.List(LB1.ListIndex, 0) & ".xlsm"
Set WB = Workbooks(LB1.List(LB1.ListIndex, 0) & ".xlsm")
With WB
Worksheets("PG").Protect
Worksheets("PG").Protect Password:="toto"
'Worksheets("PG").Protect UserInterfaceOnly:=True
Application.Run LB1.List(LB1.ListIndex, 0) & ".xlsm!Envoyer"
.Save
.Close
End With

'peu import ou je place le code ci dessous ca ne fonctionne pas
Unload Me
ThisWorkbook.Sheets("Acceuil").Select
UserForm10.Show

End If

End Sub


Merci d'avance

Bonne journée à tous
:)
Jo
 

Jonathan1986

XLDnaute Nouveau
Re : Userform se ferme sans le vouloir à la fin d'une procédure

Re à tous, le forum !

Bon ca doit etre quelque chose de bête car sinon c'est vraiment qu'li y a un pb

En fait peut importe le code que je mets derrière le bout de code qui 'imprime et protège proforma, celui-ci n'est pas pris en compte.

Des que je protège et imprime le classeur externe impossible de faire aucune action ultérieurement ....

Savez-vous a quoi cela est dû?

Encore merci d'avance
Jo :)
 

Jonathan1986

XLDnaute Nouveau
Re : Userform se ferme sans le vouloir à la fin d'une procédure

Re à tous le forum :)
Bon je fais la discussion tout seul lol
Je ne sais pas pourquoi cela ne marchait pas

Jai changé de méthode et maintenant ca fonctionne, le problème c'est que je ne sais pas pourquoi, si quelqu'un a une idée ... ce serait sympa de la partager, j'aimerais comprendre ce que je fais, mais je suis débutant et pas facile de trouver les notions de bases bien synthétisée en VBA, bref

Ma macro consistait a :

modifier un ligne de tableau dans un classeur externe
modifier une ligne de tableau dans le classeur actif
Ouvrir un classeur externe et appeler macro (qui imprime en pdf)
protéger le classeur

En fait j'ai enlevé tous les codes de mes classeurs externes, je n'appelle donc plus de macro d'un classeur externe et maintenant ca marche ...

Voili voilou

@+ tous
:)
jo
 

Pierrot93

XLDnaute Barbatruc
Re : Userform se ferme sans le vouloir à la fin d'une procédure

Bonjour,

s'il s'agissait de procédure événementielles dans les classeurs externes peut être utiliser ceci, qui les bloque et les réactive par la suite...
Code:
Application.EnableEvents = False
'ton code
Application.EnableEvents = True

bon après midi
@+
 

Discussions similaires

H
Réponses
3
Affichages
904
HugoB99
H

Statistiques des forums

Discussions
312 214
Messages
2 086 309
Membres
103 174
dernier inscrit
OBUTT