• Initiateur de la discussion Initiateur de la discussion philippe69
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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
 
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
 
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).
 
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]
 
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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
137
Réponses
3
Affichages
897
Retour