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
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