pb ouverture usf

P

philippe69

Guest
Bonjour le forum

Je reviens sur un pb auquel Porcinet m'avait gentiment répondu. Mais comme mon post manquait de préçisions, il n'a pas pu aller plus loin dans sa réponse. Je répare cela en donnant toutes les explications necessaires et en joignant un fichier exemple.

a partir de la feuil1, je clique sur un bouton pour faire apparaître le USF1 sur lequel j'effectue différentes opérations (non représentées ds l'exemple ci-joint). A partir de cet usf, je clique sur 1 bouton pour faire apparaître mon USF2. Dans cet usf, j'ai 1 textbox dans lequel, je rentre 1 valeur qui doit s'inscrire en A1 de ma feuil2.
Lorsque je ferme cet usf et que je le rouvre, la valeur rentrée précédement en A1 de la feuil2 apparaît par défaut dans la textbox (voir code ds la procédure usf initialize)

Mon pb c'est que d'1 part je n'arrive pas à ouvrir le usf2 et que d'autre part, il semble que pour que je puisse copier 1 valeur de la textbox vers ma feuil2, il faut que le USF soit ouvert sur celle-ci et non sur la feuil1.

Si une âme charitable veut bien se pencher sur mon pb, je l'en remercie par avance.
 
J

justine

Guest
re
pour eviter de retrouver les valeurs inscrites dans tes anciennes textbox, mets le code suivant quand tu fermes ton userform:
unload userform1
si tu mets userform1.close, tu ne fais que fermer la usf sans la purger.
justine
 

Eric C

XLDnaute Barbatruc
Bonjoir le forum
Bonjoir Philippe69, bonjoir Justine

Pour philippe69 : ton fichier n'est pas passé. Bon l'on va faire sans... arf ... Pour compléter ce que t'as judicieusement dit Justine, je te joint un tit fichier.

Bonne fin de journée à toutes & à tous ;) [file name=philippe69.zip size=10714]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/philippe69.zip[/file]
 

Pièces jointes

  • philippe69.zip
    10.5 KB · Affichages: 16
P

philippe69

Guest
oups, autant pour moi je n'ai pas vu que mon fichier joint n'était pas passé.

Voili, voilou [file name=testusf.zip size=15742]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/testusf.zip[/file]
 

Pièces jointes

  • testusf.zip
    15.4 KB · Affichages: 15
  • testusf.zip
    15.4 KB · Affichages: 15
  • testusf.zip
    15.4 KB · Affichages: 14
J

justine

Guest
salut le fil
lio tu as tout a fait raison, ca m'apprendra de resoudre plusieurs affaires en meme temps.

mais enfin pourquoi le forum ne me reconnais plus entant que membre?
un coup il me reconnait, et hop, je rafraichis et il ne me reconnais plus.

enfin, du moment que je peux aider de mon mieux.

justine
 

lio

XLDnaute Occasionnel
Attention Philippe,

Je vois que dans ton code tu boucles sur 8 textboxs qui n'existent pas, et ce à l'initialisation de l'Usf2 ( Voir en faisant du pas à pas avec la Touche F8) . Par conséquent, tu as un message d'erreur.

Perso, je pense que tout ce code pour ne plus avoir le bandeau ne sert à rien. Essais d'abord de réaliser une appli qui tourne et ensuite agrémente là de fioritures. ( C'est mon avis en tout cas mais je débute aussi!)

Salutations. Lio
 

lio

XLDnaute Occasionnel
Bon rapidos,
Mets des apostrophes devant ces lignes de code dans l'USF 2 _ Useform_Init...
'For i = 1 To 8
'Controls('textbox' & i).Enabled = False
'Next i

Tu verra ensuite un autre message d'erreur dans une boucle With - End with . Rajoute ce dernier élement.

NB: Identifie tes variables juste après Private Sub Ta_Macro(). C'est pas une règle générale mais un peu quand meme (lol).
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir Lio, Justine, Philippe, Eric, le Forum

Je partage tout à fait ton avis Lio. C'est d'ailleurs sûrement pour cette raison que Philippe ne s'est pas rendu compte de cette boucle :

Private Declare Function FindWindow Lib 'user32' Alias 'FindWindowA' (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLong Lib 'user32' Alias 'GetWindowLongA' (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib 'user32' Alias 'SetWindowLongA' (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function DrawMenuBar Lib 'user32' (ByVal hWnd As Long) As Long
Private Declare Function SendMessage Lib 'user32' Alias 'SendMessageA' (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function ReleaseCapture Lib 'user32' () As Long

Private Sub CommandButton1_Click()
With Sheets('feuil2')
Range('A1') = TextBox1.Value
End Sub

Private Sub UserForm_Click()

End Sub
Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Unload Me
End Sub

Private Sub UserForm_MouseDown(ByVal Button As Integer _
, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
ReleaseCapture
SendMessage FindWindow(vbNullString, Me.Caption), &HA1, 2, 0&
End Sub

Private Sub UserForm_Initialize()
With Sheets('feuil2')
TextBox1.Value = Range('A1')
End With
Dim i As Byte
For i = 1 To 8
Controls('textbox' & i).Enabled = False
Next i

Dim hWnd As Long, Style As Long

hWnd = FindWindow(vbNullString, Me.Caption)
Style = GetWindowLong(hWnd, -16) And Not &HC00000
SetWindowLong hWnd, -16, Style
DrawMenuBar hWnd

End Sub


Au milieu de tout ce bazar d'appel API qu'il ne doit pas vraiment maîtriser.

En fait ce UserForm dans l'état n'aurait besoin que de ceci :

Option Explicit

Private Sub UserForm_Initialize()
   
With Sheets('feuil2')
        TextBox1.Value = .Range('A1')
   
End With
End Sub

Private Sub CommandButton1_Click()
   
With Sheets('feuil2')
        .Range('A1') = TextBox1.Value
   
End With
End Sub


Et éventuellement pour éviter de fermer le UserForm par la Croix :

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
   
If CloseMode = vbFormControlMenu Then
        MsgBox 'Cette commande ne peut être exécutée, Veuillez fermer le logiciel avec le bouton prevu a cet effect !!.'
        Cancel =
True
   
End If
End Sub
Private Sub CommandButton2_Click()
    Unload Me
End Sub

Bonne Soirée
[ol]@+Thierry[/ol]
 

lio

XLDnaute Occasionnel
Salut Thierry,

MsgBox \\'Cette commande ne peut être exécutée, Veuillez fermer le logiciel avec le bouton
prevu a cet effect !!.\\'

On sent le programmeur qui travaille en anglais. lol.

J'habite sur Colmar et là c'est l'heure de l'apéro. Aussi, on va encore rigoler du club de la principauté !. :woohoo: :woohoo: :woohoo:

Ps: C'est vrai que le match était un peu faussé

Salut et bon week end.
 

Discussions similaires

Statistiques des forums

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