(vba) ombre d'un UserForm ...

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #4683611
avant la commande Unload .... insère la commande Userform1.Hide




"j-pascal" 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
j-pascal
Le #4683561
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" uLUk$

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




"j-pascal" 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




MichDenis
Le #4683531
Utilise cette combinaison de commande :

Unload Menu
DoEvents



"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" uLUk$

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




"j-pascal" 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




j-pascal
Le #4683511
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" %
Utilise cette combinaison de commande :

Unload Menu
DoEvents



"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" uLUk$

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




"j-pascal" 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








LSteph
Le #4683451
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" %
Utilise cette combinaison de commande :

Unload Menu
DoEvents



"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" uLUk$

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




"j-pascal" 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











j-pascal
Le #4683431
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" %
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" %
Utilise cette combinaison de commande :

Unload Menu
DoEvents



"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" uLUk$

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




"j-pascal" 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













MichDenis
Le #4683101
| 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.
j-pascal
Le #4751931
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"

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





Publicité
Poster une réponse
Anonyme