Microsoft 365 Code VBA

MarcLav

XLDnaute Nouveau
Bonjour,
Je viens vers vous car un truc c'est produit je ne sais quand, ce qui se passe c'est que mes textbox n'affiche plus la cellule qui leurs est allouée. Et rien y fait, je ne trouve pas le problème.
J'ai un USF contenant 9 Textbox, dont deux servent à des entrées de valeurs dans un tableau, les autres affiches des cellules dans lesquelles il y a le résultat d'une opération faite en amont. Les différents boutons eux servent à renvoyer la valeur saisie dans l'une des deux textbox là pour cela.

Je vous remercie de votre analyse
Marc
 
Solution
Bonjour le fil, MarcLav

=>MarcLav
Pour procéder à "l'analyse" de ton classeur, je procède selon mon habitude
1) J'inhibe le code VBA contenu dans l'Userform
(en le mettant en commentaires: =>CTRL+A=>Commenter bloc )
2) J'utilise un Initialize classique*
VB:
Private Sub UserForm_Initialize()
PRO.Value = Format(Feuil1.Range("F8").Value2, "#,##0 €")
End Sub

*: Sauf erreur de ma part, quelque soit le nom de l'Userform, on utilise toujours Userform_Initialize()
Faire ce petit test pour s'en convaincre
Mettre uniquement ce code dans l'Userform puis l'afficher
VB:
Private Sub LABONNEPAIE_Initialize()
PRO.Value = Format(Feuil1.Range("F8").Value2, "#,##0 €")
MsgBox Date, vbInformation, "test"
End Sub
Puis afficher l'Userform...

Staple1600

XLDnaute Barbatruc
Bonjour le fil, MarcLav

=>MarcLav
Pour procéder à "l'analyse" de ton classeur, je procède selon mon habitude
1) J'inhibe le code VBA contenu dans l'Userform
(en le mettant en commentaires: =>CTRL+A=>Commenter bloc )
2) J'utilise un Initialize classique*
VB:
Private Sub UserForm_Initialize()
PRO.Value = Format(Feuil1.Range("F8").Value2, "#,##0 €")
End Sub

*: Sauf erreur de ma part, quelque soit le nom de l'Userform, on utilise toujours Userform_Initialize()
Faire ce petit test pour s'en convaincre
Mettre uniquement ce code dans l'Userform puis l'afficher
VB:
Private Sub LABONNEPAIE_Initialize()
PRO.Value = Format(Feuil1.Range("F8").Value2, "#,##0 €")
MsgBox Date, vbInformation, "test"
End Sub
Puis afficher l'Userform avec ce seul code présent.
VB:
Private Sub UserForm_Initialize()
PRO.Value = Format(Feuil1.Range("F8").Value2, "#,##0 €")
MsgBox Date, vbInformation, "test"
End Sub
On voit la différence ;)
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, MarcLav

=>MarcLav
c'est normal
C'est pour que tu puisses respecter l'adage
"Cent fois sur le métier, remets ton ouvrage"
;)
Comme je l'ai dit précédemment, il ne faut pas renommer l'initialize mais laisser
Enrichi (BBcode):
Private Sub UserForm_Initialize()
'le code VBA prévu
End Sub
 

MarcLav

XLDnaute Nouveau

Staple1600

Je te salut et remercie pour l'aide dernière, pour info mon projet fonctionne très bien, j'ai toutefois une demande, je souhaite que tout l'USF de refraichise sans avoir à le fermer ouvrir, car très nombreuses manips, je n'ai pas réussi avec Repaint et refresch.
J'aimerais que cela se fasse à chaque fois qu'une entrée (validation) soit faites, donc un truc par bouton, ou unique et automatique....
Je te remercie si tu peut m'aider sur ce petit code
Marc
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonjour

Si tu le permets, je m'autocite
Staple¸ p'tit gars aux yeux fragiles¸ à dit:
le gras, c'est bon dans le cochon
(pas dans les messages sur le forum, ca fatigue les yeux.
;)

Sinon pour la question, le fichier du premier message est toujours d'actualité
Ou il existe une version plus récente (avec les corrections suite aux suggestions que je t'ai donné)
Si oui, alors postes cette nouvelle version (en prenant soin de l'anonymiser le cas échéant)
 

Discussions similaires

Statistiques des forums

Discussions
315 093
Messages
2 116 132
Membres
112 667
dernier inscrit
foyoman