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

Mise à jour userform

3 réponses
Avatar
Michel RAMEAUX
Bonjour,
Je prépare une grosse application sous Excel pour gérer plus de 130
colonnes...
J'ai donc préparé un formulaire qui contiendra des TextBoxes et un contrôle
multipages pour traiter les données de même type.
Devant la complexité des infos à vérifier, je souhaite que si une entrée est
modifiée, quelle qu'elle soit, un bouton "Enregistrer la modif" devienne
accessible pour alerter l'utilisateur d'un changement (voulu ou non).
J'ai mis en place dans les contrôles des BeforeUpDate qui fonctionnent bien,
mais seulement en pas à pas. Quand je lance la macro, il y a toujours un
textbox qui est modifié (celui qui est alimenté en premier), et je n'arrive
pas à prendre le contrôle de cet évènement.
Quelqu'un aurait une petite (bonne) idée ?
Merci d'avance...

3 réponses

Avatar
Pierre Fauconnier
Bonjour

Tu peux donner le code de l'évènement du premier contrôle modifié?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Michel RAMEAUX" a écrit dans le message de
news:
Bonjour,
Je prépare une grosse application sous Excel pour gérer plus de 130
colonnes...
J'ai donc préparé un formulaire qui contiendra des TextBoxes et un
contrôle
multipages pour traiter les données de même type.
Devant la complexité des infos à vérifier, je souhaite que si une entrée
est
modifiée, quelle qu'elle soit, un bouton "Enregistrer la modif" devienne
accessible pour alerter l'utilisateur d'un changement (voulu ou non).
J'ai mis en place dans les contrôles des BeforeUpDate qui fonctionnent
bien,
mais seulement en pas à pas. Quand je lance la macro, il y a toujours un
textbox qui est modifié (celui qui est alimenté en premier), et je
n'arrive
pas à prendre le contrôle de cet évènement.
Quelqu'un aurait une petite (bonne) idée ?
Merci d'avance...




Avatar
MichDenis
Bonjour Michel,

Il nous manque des informations pour comprendre ce qui se passe dans ton application.

A ) Quel est le code type dans l'événement beforeUpDate d'un de tes textbox. ?

B ) Quel est le code de la macro que tu lances ?

Dans les 2 cas, tu peux publier tes procédures ici même.


Salutations!




"Michel RAMEAUX" a écrit dans le message de news:
Bonjour,
Je prépare une grosse application sous Excel pour gérer plus de 130
colonnes...
J'ai donc préparé un formulaire qui contiendra des TextBoxes et un contrôle
multipages pour traiter les données de même type.
Devant la complexité des infos à vérifier, je souhaite que si une entrée est
modifiée, quelle qu'elle soit, un bouton "Enregistrer la modif" devienne
accessible pour alerter l'utilisateur d'un changement (voulu ou non).
J'ai mis en place dans les contrôles des BeforeUpDate qui fonctionnent bien,
mais seulement en pas à pas. Quand je lance la macro, il y a toujours un
textbox qui est modifié (celui qui est alimenté en premier), et je n'arrive
pas à prendre le contrôle de cet évènement.
Quelqu'un aurait une petite (bonne) idée ?
Merci d'avance...
Avatar
Michel RAMEAUX
Bonjour,

Beaucoup de problèmesavec la messagerie, mais avec un peu de patience on
fini par y arriver...

Voici le code simplifié de la macro de test, écrit spécialement pour
comprendre ce qui se passe :

Public FicTestOut As String
Public Lig As Integer

Sub LancerFicheTest()

Dim Derlig As Integer

Lig = ActiveCell.Row
Début:
Load FicheTest
' Initialisation Formulaire
Derlig = Range("B:B").End(xlDown).Row
FicheTest.SpinButton1.Value = Lig
FicheTest.SpinButton1.Min = 1
FicheTest.SpinButton1.Max = Derlig
FicTestOut = ""
'FicheTest.CommandButton2.Enabled = False
'Application.EnableEvents = False
FicheTest.TextBox1 = Range("A" & Lig).Value
FicheTest.TextBox2 = Range("B" & Lig).Value
FicheTest.TextBox3 = Range("C" & Lig).Value
FicheTest.TextBox4 = Range("D" & Lig).Value
FicheTest.TextBox5 = Range("E" & Lig).Value
FicheTest.TextBox6 = Range("F" & Lig).Value
FicheTest.CommandButton2.Enabled = False
'Application.EnableEvents = True
FicheTest.Show
' Retour Formulaire
Select Case FicTestOut
Case ""
Unload FicheTest
FicTestOut = ""
'Exit Sub
Case "Quitter"
Unload FicheTest
FicTestOut = ""
Exit Sub
Case "Navig"
Range("A" & Lig).Activate
Unload FicheTest
FicTestOut = ""
GoTo Début
Case "Sauver"
' A traiter ultérieurement

End Select
Unload FicheTest
FicTestOut = ""
End Sub


Voici le code que j'ai écrit dans le UserForm :

Private Sub SpinButton1_Change()
' Navig
Lig = SpinButton1.Value
FicTestOut = "Navig"
Me.Hide
End Sub

Private Sub CommandButton1_Click()
' Quitter
FicTestOut = "Quitter"
Me.Hide
End Sub

Private Sub CommandButton2_Click()
' Enregistrer
FicTestOut = "Sauver"
Me.Hide
End Sub

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
TextBox6 = "Texte 1" 'Format(Now, "DD/mm/yy")
CommandButton2.Enabled = True
End Sub

Private Sub TextBox2_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
TextBox6 = "Texte 2" 'Format(Now, "DD/mm/yy")
CommandButton2.Enabled = True
End Sub

Private Sub TextBox3_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
TextBox6 = "Texte 3" 'Format(Now, "DD/mm/yy")
CommandButton2.Enabled = True
End Sub

Private Sub TextBox4_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
TextBox6 = "Texte 4" 'Format(Now, "DD/mm/yy")
CommandButton2.Enabled = True
End Sub

Private Sub TextBox5_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
TextBox6 = "Texte 5" 'Format(Now, "DD/mm/yy")
CommandButton2.Enabled = True
End Sub

Remarque : à l'origine, je voulais que le TextBox6 affiche la date du
jour...

Sachant que le UserForm (FicheTest) de test contient :
1 multipage (4 pages) avec dans chaque page 1 TextBox (de 1 à 4)
1 textbox TextBox5 dans le UserForm lui-même,
1 SpinButton pour "naviguer" verticalement dans la feuille,
1 bouton Annuler
1 bouton Enregistrer (visible uniquement en cas de modification)
Que la sortie du UserForm se fait avec l'étiquette "FicTestOut"
et que la feuille Excel de test comporte 5 colonnes pour être affichées dans
les TextBox avec 10 lignes de données bidon.

Résultat : tout ceci ne fonctionne que en mode "pas à pas" (c'est à dire en
test, ce qui rassure). Mais dès que la macro est lancée en automatique, les
ennuis arrivent !

Merci du support...



"Pierre Fauconnier" a écrit dans le
message news:
Bonjour

Tu peux donner le code de l'évènement du premier contrôle modifié?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe

zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Michel RAMEAUX" a écrit dans le message de
news:
Bonjour,
Je prépare une grosse application sous Excel pour gérer plus de 130
colonnes...
J'ai donc préparé un formulaire qui contiendra des TextBoxes et un
contrôle
multipages pour traiter les données de même type.
Devant la complexité des infos à vérifier, je souhaite que si une entrée
est
modifiée, quelle qu'elle soit, un bouton "Enregistrer la modif" devienne
accessible pour alerter l'utilisateur d'un changement (voulu ou non).
J'ai mis en place dans les contrôles des BeforeUpDate qui fonctionnent
bien,
mais seulement en pas à pas. Quand je lance la macro, il y a toujours un
textbox qui est modifié (celui qui est alimenté en premier), et je
n'arrive
pas à prendre le contrôle de cet évènement.
Quelqu'un aurait une petite (bonne) idée ?
Merci d'avance...