Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

(vba) ombre d'un UserForm ...

8 réponses
Avatar
j-pascal
Bonsoir,

J'ai un menu (UserForm) à partir duquel je peux récupérer une fichier ...
Si je ne sélectionne aucun fichier, mon UserForm se "Unload" et j'ai un
msgbox m'indiquant qu'aucun fichier n'est sélectionné ... Normal ;-) Mais
l'ombre du UserForm persiste sous le msgbox !! Elle disparaît à la fermeture
de cette dernière ... donc le seul problème est l'effet "inesthétique".

En supposant que l'Esthétique soit une préoccupation partagée sur ce forum
( ;-) ), je fais appel à vos lumières ....

D'avance, merci

--
Cordialement @+
JP

8 réponses

Avatar
MichDenis
avant la commande Unload .... insère la commande Userform1.Hide




"j-pascal" a écrit dans le message de news:
ewzgc$
Bonsoir,

J'ai un menu (UserForm) à partir duquel je peux récupérer une fichier ...
Si je ne sélectionne aucun fichier, mon UserForm se "Unload" et j'ai un
msgbox m'indiquant qu'aucun fichier n'est sélectionné ... Normal ;-) Mais
l'ombre du UserForm persiste sous le msgbox !! Elle disparaît à la fermeture
de cette dernière ... donc le seul problème est l'effet "inesthétique".

En supposant que l'Esthétique soit une préoccupation partagée sur ce forum
( ;-) ), je fais appel à vos lumières ....

D'avance, merci

--
Cordialement @+
JP
Avatar
j-pascal
Bonsoir,

Sauf si j'ai mal compris, cela ne semble pas fonctionner ;-(

Mon code est ici (tout n'est peut-être pas utile pour le présent pb !) :
'---------------------------------
Private Sub Import_Toto_Click()

Dim typeFichier As String
Dim Titre As String
Dim nomFichier As Variant 'string ?
Dim réponse4 As Variant
Dim NbItems As Integer
Dim LeNom As String

'Menu.Hide 'j'ai essayé !
Unload Menu
Application.ScreenUpdating = False
LeNom = ActiveWorkbook.Name 'prévient les modifs !

typeFichier = "Fichiers, *.csv; *.xls"
Titre = "sélectionnez le fichier à importer"

ChDrive "C"
ChDir "C:Documents and Settingsjean-pascalBureau"
nomFichier = Application.GetOpenFilename(typeFichier, , Titre)

'Unload Menu 'ici plus d'ombre, mais c'est pas l'idéal ;-)

If nomFichier = False Then
MsgBox "Aucun fichier n'a été sélectionné."
Exit Sub
Else
nomFichier = Dir(nomFichier)
réponse4 = MsgBox("Vous avez sélectionné le fichier : " & nomFichier
& Chr(10) _
& Chr(10) & "Confirmez-vous ce choix ?", vbYesNo + vbQuestion,
"validation en cours")
If réponse4 = vbNo Then
Exit Sub
End If
End If

If Right(nomFichier, 3) = "xls" Then
Workbooks.Open nomFichier
Else
Workbooks.OpenText nomFichier, Tab:=True, semicolon:=True,
local:=True
End If

NbItems = Application.WorksheetFunction.CountA(Range("A:A")) 'teste le
fichier ouvert

If NbItems > 322 Then 'capacité max d'importation !
MsgBox "Votre fichier est trop grand !" & Chr(10) & Chr(10) & _
"Vérifiez votre import Toto ..."
Exit Sub
End If

Cells.Select
Selection.Copy

Windows(LeNom).Activate

' (...) etc

Windows(nomFichier).Activate
ActiveWorkbook.Close

Sheets("zaza").Activate 'modif 08/09
ActiveSheet.Protect Password:=""
Sheets("zaza").Visible = False

Sheets("doudou").Select
Range("A2").Select
Application.ScreenUpdating = True

End Sub
'---------------------------------

@+ ?

JP
"MichDenis" a écrit dans le message de news:
uLUk$

avant la commande Unload .... insère la commande Userform1.Hide




"j-pascal" a écrit dans le message de news:
ewzgc$
Bonsoir,

J'ai un menu (UserForm) à partir duquel je peux récupérer une fichier ...
Si je ne sélectionne aucun fichier, mon UserForm se "Unload" et j'ai un
msgbox m'indiquant qu'aucun fichier n'est sélectionné ... Normal ;-) Mais
l'ombre du UserForm persiste sous le msgbox !! Elle disparaît à la
fermeture
de cette dernière ... donc le seul problème est l'effet "inesthétique".

En supposant que l'Esthétique soit une préoccupation partagée sur ce forum
( ;-) ), je fais appel à vos lumières ....

D'avance, merci

--
Cordialement @+
JP




Avatar
MichDenis
Utilise cette combinaison de commande :

Unload Menu
DoEvents



"j-pascal" a écrit dans le message de news:

Bonsoir,

Sauf si j'ai mal compris, cela ne semble pas fonctionner ;-(

Mon code est ici (tout n'est peut-être pas utile pour le présent pb !) :
'---------------------------------
Private Sub Import_Toto_Click()

Dim typeFichier As String
Dim Titre As String
Dim nomFichier As Variant 'string ?
Dim réponse4 As Variant
Dim NbItems As Integer
Dim LeNom As String

'Menu.Hide 'j'ai essayé !
Unload Menu
Application.ScreenUpdating = False
LeNom = ActiveWorkbook.Name 'prévient les modifs !

typeFichier = "Fichiers, *.csv; *.xls"
Titre = "sélectionnez le fichier à importer"

ChDrive "C"
ChDir "C:Documents and Settingsjean-pascalBureau"
nomFichier = Application.GetOpenFilename(typeFichier, , Titre)

'Unload Menu 'ici plus d'ombre, mais c'est pas l'idéal ;-)

If nomFichier = False Then
MsgBox "Aucun fichier n'a été sélectionné."
Exit Sub
Else
nomFichier = Dir(nomFichier)
réponse4 = MsgBox("Vous avez sélectionné le fichier : " & nomFichier
& Chr(10) _
& Chr(10) & "Confirmez-vous ce choix ?", vbYesNo + vbQuestion,
"validation en cours")
If réponse4 = vbNo Then
Exit Sub
End If
End If

If Right(nomFichier, 3) = "xls" Then
Workbooks.Open nomFichier
Else
Workbooks.OpenText nomFichier, Tab:=True, semicolon:=True,
local:=True
End If

NbItems = Application.WorksheetFunction.CountA(Range("A:A")) 'teste le
fichier ouvert

If NbItems > 322 Then 'capacité max d'importation !
MsgBox "Votre fichier est trop grand !" & Chr(10) & Chr(10) & _
"Vérifiez votre import Toto ..."
Exit Sub
End If

Cells.Select
Selection.Copy

Windows(LeNom).Activate

' (...) etc

Windows(nomFichier).Activate
ActiveWorkbook.Close

Sheets("zaza").Activate 'modif 08/09
ActiveSheet.Protect Password:=""
Sheets("zaza").Visible = False

Sheets("doudou").Select
Range("A2").Select
Application.ScreenUpdating = True

End Sub
'---------------------------------

@+ ?

JP
"MichDenis" a écrit dans le message de news:
uLUk$

avant la commande Unload .... insère la commande Userform1.Hide




"j-pascal" a écrit dans le message de news:
ewzgc$
Bonsoir,

J'ai un menu (UserForm) à partir duquel je peux récupérer une fichier ...
Si je ne sélectionne aucun fichier, mon UserForm se "Unload" et j'ai un
msgbox m'indiquant qu'aucun fichier n'est sélectionné ... Normal ;-) Mais
l'ombre du UserForm persiste sous le msgbox !! Elle disparaît à la
fermeture
de cette dernière ... donc le seul problème est l'effet "inesthétique".

En supposant que l'Esthétique soit une préoccupation partagée sur ce forum
( ;-) ), je fais appel à vos lumières ....

D'avance, merci

--
Cordialement @+
JP




Avatar
j-pascal
Re,

Magnifique !!!!

Quand je pense que j'était prêt à racheter un PC sur le conseil implicite de
Stéphane qui doutait de l'état de ma "bacane" ... Le pb était donc bien
entre la chaise et le micro ;-) ;-)

Merci +++++++

JP

PS : au fait, ça fait quoi ce "DoEvents" ??


"MichDenis" a écrit dans le message de news:
%
Utilise cette combinaison de commande :

Unload Menu
DoEvents



"j-pascal" a écrit dans le message de news:

Bonsoir,

Sauf si j'ai mal compris, cela ne semble pas fonctionner ;-(

Mon code est ici (tout n'est peut-être pas utile pour le présent pb !) :
'---------------------------------
Private Sub Import_Toto_Click()

Dim typeFichier As String
Dim Titre As String
Dim nomFichier As Variant 'string ?
Dim réponse4 As Variant
Dim NbItems As Integer
Dim LeNom As String

'Menu.Hide 'j'ai essayé !
Unload Menu
Application.ScreenUpdating = False
LeNom = ActiveWorkbook.Name 'prévient les modifs !

typeFichier = "Fichiers, *.csv; *.xls"
Titre = "sélectionnez le fichier à importer"

ChDrive "C"
ChDir "C:Documents and Settingsjean-pascalBureau"
nomFichier = Application.GetOpenFilename(typeFichier, , Titre)

'Unload Menu 'ici plus d'ombre, mais c'est pas l'idéal ;-)

If nomFichier = False Then
MsgBox "Aucun fichier n'a été sélectionné."
Exit Sub
Else
nomFichier = Dir(nomFichier)
réponse4 = MsgBox("Vous avez sélectionné le fichier : " &
nomFichier
& Chr(10) _
& Chr(10) & "Confirmez-vous ce choix ?", vbYesNo + vbQuestion,
"validation en cours")
If réponse4 = vbNo Then
Exit Sub
End If
End If

If Right(nomFichier, 3) = "xls" Then
Workbooks.Open nomFichier
Else
Workbooks.OpenText nomFichier, Tab:=True, semicolon:=True,
local:=True
End If

NbItems = Application.WorksheetFunction.CountA(Range("A:A")) 'teste le
fichier ouvert

If NbItems > 322 Then 'capacité max d'importation !
MsgBox "Votre fichier est trop grand !" & Chr(10) & Chr(10) & _
"Vérifiez votre import Toto ..."
Exit Sub
End If

Cells.Select
Selection.Copy

Windows(LeNom).Activate

' (...) etc

Windows(nomFichier).Activate
ActiveWorkbook.Close

Sheets("zaza").Activate 'modif 08/09
ActiveSheet.Protect Password:=""
Sheets("zaza").Visible = False

Sheets("doudou").Select
Range("A2").Select
Application.ScreenUpdating = True

End Sub
'---------------------------------

@+ ?

JP
"MichDenis" a écrit dans le message de news:
uLUk$

avant la commande Unload .... insère la commande Userform1.Hide




"j-pascal" a écrit dans le message de news:
ewzgc$
Bonsoir,

J'ai un menu (UserForm) à partir duquel je peux récupérer une fichier ...
Si je ne sélectionne aucun fichier, mon UserForm se "Unload" et j'ai un
msgbox m'indiquant qu'aucun fichier n'est sélectionné ... Normal ;-) Mais
l'ombre du UserForm persiste sous le msgbox !! Elle disparaît à la
fermeture
de cette dernière ... donc le seul problème est l'effet "inesthétique".

En supposant que l'Esthétique soit une préoccupation partagée sur ce
forum
( ;-) ), je fais appel à vos lumières ....

D'avance, merci

--
Cordialement @+
JP








Avatar
LSteph
Et en plus le bougre déforme tout ce que je dis Grrrr..! :[[
Attends j'ai pas loin quelques vieux codes tu vas pouvoir les essayer!

;-)

@+

lSteph


Re,

Magnifique !!!!

Quand je pense que j'était prêt à racheter un PC sur le conseil
implicite de Stéphane qui doutait de l'état de ma "bacane" ... Le pb
était donc bien entre la chaise et le micro ;-) ;-)

Merci +++++++

JP

PS : au fait, ça fait quoi ce "DoEvents" ??


"MichDenis" a écrit dans le message de news:
%
Utilise cette combinaison de commande :

Unload Menu
DoEvents



"j-pascal" a écrit dans le message de news:

Bonsoir,

Sauf si j'ai mal compris, cela ne semble pas fonctionner ;-(

Mon code est ici (tout n'est peut-être pas utile pour le présent pb !) :
'---------------------------------
Private Sub Import_Toto_Click()

Dim typeFichier As String
Dim Titre As String
Dim nomFichier As Variant 'string ?
Dim réponse4 As Variant
Dim NbItems As Integer
Dim LeNom As String

'Menu.Hide 'j'ai essayé !
Unload Menu
Application.ScreenUpdating = False
LeNom = ActiveWorkbook.Name 'prévient les modifs !

typeFichier = "Fichiers, *.csv; *.xls"
Titre = "sélectionnez le fichier à importer"

ChDrive "C"
ChDir "C:Documents and Settingsjean-pascalBureau"
nomFichier = Application.GetOpenFilename(typeFichier, , Titre)

'Unload Menu 'ici plus d'ombre, mais c'est pas l'idéal ;-)

If nomFichier = False Then
MsgBox "Aucun fichier n'a été sélectionné."
Exit Sub
Else
nomFichier = Dir(nomFichier)
réponse4 = MsgBox("Vous avez sélectionné le fichier : " &
nomFichier
& Chr(10) _
& Chr(10) & "Confirmez-vous ce choix ?", vbYesNo + vbQuestion,
"validation en cours")
If réponse4 = vbNo Then
Exit Sub
End If
End If

If Right(nomFichier, 3) = "xls" Then
Workbooks.Open nomFichier
Else
Workbooks.OpenText nomFichier, Tab:=True, semicolon:=True,
local:=True
End If

NbItems = Application.WorksheetFunction.CountA(Range("A:A")) 'teste le
fichier ouvert

If NbItems > 322 Then 'capacité max d'importation !
MsgBox "Votre fichier est trop grand !" & Chr(10) & Chr(10) & _
"Vérifiez votre import Toto ..."
Exit Sub
End If

Cells.Select
Selection.Copy

Windows(LeNom).Activate

' (...) etc

Windows(nomFichier).Activate
ActiveWorkbook.Close

Sheets("zaza").Activate 'modif 08/09
ActiveSheet.Protect Password:=""
Sheets("zaza").Visible = False

Sheets("doudou").Select
Range("A2").Select
Application.ScreenUpdating = True

End Sub
'---------------------------------

@+ ?

JP
"MichDenis" a écrit dans le message de news:
uLUk$

avant la commande Unload .... insère la commande Userform1.Hide




"j-pascal" a écrit dans le message de news:
ewzgc$
Bonsoir,

J'ai un menu (UserForm) à partir duquel je peux récupérer une fichier
...
Si je ne sélectionne aucun fichier, mon UserForm se "Unload" et j'ai un
msgbox m'indiquant qu'aucun fichier n'est sélectionné ... Normal ;-)
Mais
l'ombre du UserForm persiste sous le msgbox !! Elle disparaît à la
fermeture
de cette dernière ... donc le seul problème est l'effet "inesthétique".

En supposant que l'Esthétique soit une préoccupation partagée sur ce
forum
( ;-) ), je fais appel à vos lumières ....

D'avance, merci

--
Cordialement @+
JP











Avatar
j-pascal
Re,

Je reconnaissais tout de même que tu avais raison ... à 50 % ;-)
Je vais rapprocher la chaise du micro ... ça limitera la marge d'erreur !
lol
Bonne nuit :o)

JP

"LSteph" a écrit dans le message de news:
%
Et en plus le bougre déforme tout ce que je dis Grrrr..! :[[
Attends j'ai pas loin quelques vieux codes tu vas pouvoir les essayer!

;-)

@+

lSteph


Re,

Magnifique !!!!

Quand je pense que j'était prêt à racheter un PC sur le conseil implicite
de Stéphane qui doutait de l'état de ma "bacane" ... Le pb était donc
bien entre la chaise et le micro ;-) ;-)

Merci +++++++

JP

PS : au fait, ça fait quoi ce "DoEvents" ??


"MichDenis" a écrit dans le message de news:
%
Utilise cette combinaison de commande :

Unload Menu
DoEvents



"j-pascal" a écrit dans le message de news:

Bonsoir,

Sauf si j'ai mal compris, cela ne semble pas fonctionner ;-(

Mon code est ici (tout n'est peut-être pas utile pour le présent pb !) :
'---------------------------------
Private Sub Import_Toto_Click()

Dim typeFichier As String
Dim Titre As String
Dim nomFichier As Variant 'string ?
Dim réponse4 As Variant
Dim NbItems As Integer
Dim LeNom As String

'Menu.Hide 'j'ai essayé !
Unload Menu
Application.ScreenUpdating = False
LeNom = ActiveWorkbook.Name 'prévient les modifs !

typeFichier = "Fichiers, *.csv; *.xls"
Titre = "sélectionnez le fichier à importer"

ChDrive "C"
ChDir "C:Documents and Settingsjean-pascalBureau"
nomFichier = Application.GetOpenFilename(typeFichier, , Titre)

'Unload Menu 'ici plus d'ombre, mais c'est pas l'idéal ;-)

If nomFichier = False Then
MsgBox "Aucun fichier n'a été sélectionné."
Exit Sub
Else
nomFichier = Dir(nomFichier)
réponse4 = MsgBox("Vous avez sélectionné le fichier : " &
nomFichier
& Chr(10) _
& Chr(10) & "Confirmez-vous ce choix ?", vbYesNo +
vbQuestion,
"validation en cours")
If réponse4 = vbNo Then
Exit Sub
End If
End If

If Right(nomFichier, 3) = "xls" Then
Workbooks.Open nomFichier
Else
Workbooks.OpenText nomFichier, Tab:=True, semicolon:=True,
local:=True
End If

NbItems = Application.WorksheetFunction.CountA(Range("A:A")) 'teste
le
fichier ouvert

If NbItems > 322 Then 'capacité max d'importation !
MsgBox "Votre fichier est trop grand !" & Chr(10) & Chr(10) & _
"Vérifiez votre import Toto ..."
Exit Sub
End If

Cells.Select
Selection.Copy

Windows(LeNom).Activate

' (...) etc

Windows(nomFichier).Activate
ActiveWorkbook.Close

Sheets("zaza").Activate 'modif 08/09
ActiveSheet.Protect Password:=""
Sheets("zaza").Visible = False

Sheets("doudou").Select
Range("A2").Select
Application.ScreenUpdating = True

End Sub
'---------------------------------

@+ ?

JP
"MichDenis" a écrit dans le message de news:
uLUk$

avant la commande Unload .... insère la commande Userform1.Hide




"j-pascal" a écrit dans le message de news:
ewzgc$
Bonsoir,

J'ai un menu (UserForm) à partir duquel je peux récupérer une fichier
...
Si je ne sélectionne aucun fichier, mon UserForm se "Unload" et j'ai un
msgbox m'indiquant qu'aucun fichier n'est sélectionné ... Normal ;-)
Mais
l'ombre du UserForm persiste sous le msgbox !! Elle disparaît à la
fermeture
de cette dernière ... donc le seul problème est l'effet "inesthétique".

En supposant que l'Esthétique soit une préoccupation partagée sur ce
forum
( ;-) ), je fais appel à vos lumières ....

D'avance, merci

--
Cordialement @+
JP













Avatar
MichDenis
| PS : au fait, ça fait quoi ce "DoEvents" ??

Exemple :
A ) Utilise une feuille vierge et dessine une "étiquette"
émanant de la barre d'outils "Formulaire"
B ) Dans le module code de cette feuille, copie
les 2 prodédures suivantes
C ) Exécute les à partir de l'interface de la feuille de calcul
et observe ce qui se passe avec le contrôle "étiquette"
durant le déroulement de l'opération.

'----------------------------
Sub test()
For a = 1 To 5000
Me.Shapes(1).OLEFormat.Object.Text = a
Next
End Sub
'----------------------------
Sub test1()
For a = 1 To 5000
Me.Shapes(1).OLEFormat.Object.Text = a
DoEvents
Next
End Sub
'----------------------------

Durant le déroulement d'une procédure, la commande
DoEvents permet au processeur de faire une "pause" et de
vérifier si depuis le lancement de la procédure, il y a des
opérations en attente ... comme le rafraîchissement du
contrôle dans l'exemple mentionné... et s'il constante
que oui, il fait cette opération et toutes les autres opérations
dans la liste d'attente avant de reprendre la suite des opérations
où il était rendu dans la procédure initiale. Et ce, dans chacune
des boucles.
Avatar
j-pascal
Bonsoir,

Merci ! C'est limpide !
J'apprécie le détail ... ça ressemble presque à une démonstration de
Stéphane lol

C'est super :o)

Bonne semaine,

JP

"MichDenis" a écrit dans le message de news:


| PS : au fait, ça fait quoi ce "DoEvents" ??

Exemple :
A ) Utilise une feuille vierge et dessine une "étiquette"
émanant de la barre d'outils "Formulaire"
B ) Dans le module code de cette feuille, copie
les 2 prodédures suivantes
C ) Exécute les à partir de l'interface de la feuille de calcul
et observe ce qui se passe avec le contrôle "étiquette"
durant le déroulement de l'opération.

'----------------------------
Sub test()
For a = 1 To 5000
Me.Shapes(1).OLEFormat.Object.Text = a
Next
End Sub
'----------------------------
Sub test1()
For a = 1 To 5000
Me.Shapes(1).OLEFormat.Object.Text = a
DoEvents
Next
End Sub
'----------------------------

Durant le déroulement d'une procédure, la commande
DoEvents permet au processeur de faire une "pause" et de
vérifier si depuis le lancement de la procédure, il y a des
opérations en attente ... comme le rafraîchissement du
contrôle dans l'exemple mentionné... et s'il constante
que oui, il fait cette opération et toutes les autres opérations
dans la liste d'attente avant de reprendre la suite des opérations
où il était rendu dans la procédure initiale. Et ce, dans chacune
des boucles.