Autres Eviter flash de fin

FOUQUET Yves

XLDnaute Occasionnel
Bonjour à toutes et tous,

J'utilise un Userform pour de la saisie de lignes.
Il y a un bouton "Valide" la saisie qui remplit les cellules de ma feuille à partir de Textform.

Pour finir la saisie 1 et revenir dans l'Userform pour la saisie 2 je termine par un Unload et show.
qui me ramènent au début de la procédure.
Mais, car il y a un mais, cela provoque la fermeture de l'Userform et sa réouverture.
C'est pas beau!

Comment pourrais-je remplacer ces deux commandes de fin pour éviter ce flash d'Userform, et juste revenir dans l'userform pour une nouvelle saisie ?

Voilou, voilà.
 

Paf

XLDnaute Barbatruc
Bonjour,

Que Unload et show provoquent la fermeture de l'Userform et sa réouverture, parait normal puisqu'ils sont fait pour ça.

Pour "repartir du début " de l'userform, il faudrait effacer tous les objets renseignés et relancer la sub Userform.Initialize, et peut-être d'autres aménagements qui ne pourront être définis qu'en visualisant l'organisation et le codage de l'Userform.

A+
 

Paf

XLDnaute Barbatruc
remplacer
VB:
Unload Me       ' Vide et ferme l'Userform ( formulaire
UserForm1.Show  'Affiche le formulaire
puisqu'il n'y a que 3 textbox "à vider", par
Code:
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
ou un équivalent
 

Paf

XLDnaute Barbatruc
...les valeurs en affichage à actualiser ne s'actualisent pas ....

Je ne vois pas le rapport avec le classeur fourni dans lequel on saisit 3 textbox qui vont s'écrire dans une feuille à la validation par bouton.
Une fois les données écrites dans la feuille, les textbox sont effacées et on est prêt à ressaisir pour une nouvelle validation.

Si le classeur fourni ne correspond pas à la réalité .....
on risque de ne pas se comprendre...

Bonne suite
 

FOUQUET Yves

XLDnaute Occasionnel
Oui quand tu ouvres le classeur, tu vas dans Visual Basic et tu trouves l'Userform1. Ca c'est pour l'exemple et les essais.
Après j'ai mon classeur sur lequel je travaille avec un feuille adresse que je ne peux fournir car 400 adresses prisées à l'intérieur.
Dans ce classeur, cette feuille il y a des données qui s'affichent à l'ouverture.
Donc ces données ne s'actualisent plus si je ne "unload et userForm.show" pas.
 

laurent950

XLDnaute Accro
Bonsoir,
Peux être avec une boucle qui va référencer l'ensemble des information de l'userform.
Puis ainsi le vidé sans avoir a le fermer et l'ouvrir.
Site :
https://www.developpez.net/forums/d...acros-vba-excel/parcours-userforms-controles/
et la soulution suite à cette discution :
https://excel.developpez.com/faq/?page=Form#BoucleObjUsfVBE
et aussi :
https://stackoverflow.com/questions/35388423/remove-controls-from-excel-userform-with-vbide

est pour les controles des Usurforms :
https://docs.microsoft.com/fr-fr/of...ser-interface-help/add-method-microsoft-forms
https://silkyroad.developpez.com/VBA/UserForm/#LIV-L

Interressant aussi :
http://dj.joss.free.fr/ecrisub.htm (Pour copier des modules)
cdt
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Bonjour
Bonjour le Fil ,le Forum

Ou peut être !
Si tu as dans :
VB:
Private Sub UserForm_Initialize()
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
End Sub
Perfectible ,Boucle (frangy) ,autres
tu mets :
VB:
Private Sub commandbutton2_Click()  ' === Bouton AJOUTER LA LIGNE =====
Dim l As Long
Dim num_lig As Integer
With Sheets("Effectif")   '--- La feuille usuelle en activité ----------
'-------------------------------------------
If MsgBox("Etes-vous certain de vouloir INSERER cette nouvelle ligne ?", vbYesNo, "Demande de confirmation") = vbYes Then
'----------------------------------------
'---- Affecte les cellules de la feuille "en cours" en se positionnant sur la première ligne vide
l = 0
l = Range("A65536").End(3).Row + 1             'Permet de se positionner sur la ligne de tableau définie par Nbr
    .Range("A" & l).Value = TextBox1
    .Range("B" & l).Value = TextBox2       'Insère la donnée de la liste déroulante dans la colonne B
    .Range("C" & l).Value = TextBox3  
End If
End With
                                UserForm_Initialize '<-------------------Ici
End Sub
jean marie
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 153
Membres
103 136
dernier inscrit
Zoulander