Re: Questions userform
#11
Aspirant XLPages

Inscription: 01/07/2008

Messages: 32

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 28-07-2008 18h14

Bonsoir le forum! Bonsoir Didier!

Merci pour ta réponse Didier! Bien entendu, j'avais fait la première solution que tu m'as proposée. Mais comme tu le saits, ca ne marchais pas car mes combobox ne se chargeais pas la deuxième fois. J'ai donc reposter sur le forum pour savoir s’il y avait une astuce et apparemment, il n’y en a pas puisque tu m'as proposé ce à quoi je me doutais.

J'ai donc cherché dans ma macro du bouton "suivant". Dans cette macro, je change plusieurs fois d'onglet et je me suis aperçu qu'à la fin de ma macro j'étais sur un autre onglet qui n’était pas celui sur lequel ma userform s'initialisais. J'ai donc tout simplement rajouté dans "Private sub userform_initialise()" et "Private sub combobox1_change()" une ligne "Sheets("feuil1").select" pour qu'elle se réinitialise bien sur le bon onglet...

A partir de là, le tour était joué... et ca à marché! Lorsque je ré appuie sur le bouton suivant mes textbox sont vierges et mes combobox chargées! Hourra!
Option Explicit

Private Sub UserForm_Initialize()
' On actualise la liste de choix des n? de phase avec ceux qui ont d? ? rentr?:
Dim Cell As Range
Dim NoDupes As New Collection
Dim Item As Variant
    Sheets("feuil1").select
    On Error Resume Next
    For Each Cell In Sheets("Feuil1").Range("A9:A2000")
        NoDupes.Add Cell.Value, CStr(Cell.Value)
    Next Cell
    On Error GoTo 0
    ' On ajoute les ?ments non dupliqu?dans la zone de liste de ComboBox3 :
    For Each Item In NoDupes
        ComboBox3.AddItem Item
    Next Item
End Sub

Par contre, j'ai remarqué que les valeurs saisies par l’utilisateur ne se rentrent pas dans la feuille au fur et à mesure qu’il appuie sur le bouton « suivant » mais se chargent dans la feuille à la toute fin s’il appuie sur le bouton annuler pour arrêter de rentrer des valeurs.

Bien entendu, à la fin de ma macro j’ai marqué le code de la première solution (à savoir« unload me » puis « userform1.show »)  tandis que mon bouton « annuler » à juste pour code « unload me » .

Sauriez vous pourquoi ?

Merci à vous!

++

Lannou
Hors Ligne
Rapport   Haut 

Re: Questions userform
#12
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 28-07-2008 21h31
Bonsoir lannou, le Forum,

Citation :
lannou a écrit :

... J'ai donc cherché dans ma macro du bouton "suivant". Dans cette macro, je change plusieurs fois d'onglet et je me suis aperçu qu'à la fin de ma macro j'étais sur un autre onglet qui n’était pas celui sur lequel ma userform s'initialisais. J'ai donc tout simplement rajouté dans "Private sub userform_initialise()" et "Private sub combobox1_change()" une ligne "Sheets("feuil1").select" pour qu'elle se réinitialise bien sur le bon onglet...

A partir de là, le tour était joué... et ca à marché!

A vrai dire, je ne vois pas bien le pourquoi et la nécessité du Sheets("feuil1").select ici. Si tu avais conservé l'utilisation du RowSource, j'aurais peut-être pu deviner, mais là....
Peut-être que je me trompe, mais j'ai comme l'impression que tu ne dis pas tout et ne donne pas tout ton code... (d'ailleurs, au passage, pour présenter le code (dans les balises), si tu écris feuil1 et select sans majuscule, cela veut déjà dire que tu n'as pas fait un copier-coller de ton vrai code depuis l'éditeur VBE...)

Citation :
lannou a écrit :

....Par contre, j'ai remarqué que les valeurs saisies par l’utilisateur ne se rentrent pas dans la feuille au fur et à mesure qu’il appuie sur le bouton « suivant » mais se chargent dans la feuille à la toute fin s’il appuie sur le bouton annuler pour arrêter de rentrer des valeurs.
Bien entendu, à la fin de ma macro j’ai marqué le code de la première solution (à savoir« unload me » puis « userform1.show »)  tandis que mon bouton « annuler » à juste pour code « unload me » .

Sauriez vous pourquoi ?

Comme je n'ai aucune idée de ce à quoi ressemble le code de ton bouton "Suivant", non, je ne saurais pas te dire pourquoi... Peut être est-il temps de fournir ton fichier, épurer à l'essentiel du problème et exempt des données confidentielles ? Fichier ZIP de 80ko maximum (pas de CiJoint.com ou autre, merci).

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Questions userform
#13
Aspirant XLPages

Inscription: 01/07/2008

Messages: 32

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 30-07-2008 17h47

Bonjour à tous!

Merci de t’intéresser à ma question ! Dans mes précédents posts, je ne voulais pas mettre la totalité du code car il est long et pas très propre…(il y a sûrement plus simple et toutes mes variables ne sont pas définies correctement même si j'ai faits un effort depuis ton conseil de les déclarer en DIM XXX AS XXX). Et oui c’est ca les débutants en vba…Toutefois, vous verrez que moi qui ne savait rien faire, j’ai plutôt pas mal progressé grâce à vos conseils !

En fait je suis en stage de fin d’étude et j’aimerai créer un planning automatique…. Tu trouveras donc le fichier qui est, comme tu me l’as demandé, épuré (pour aller au cœur de mes deux questions). 

La macro tourne bien mais mes questions sont :

-          pourquoi les données ne se chargent pas directement dans la feuille à chaque fois que j’appuie sur le bouton suivant ? (en effet, elles se chargent toute en même temps lorsque j’appuie sur le bouton annuler).

-          quand j’appuie sur le bouton suivant et que je veux pour « x » raison déplacer la fenêtre, une autre fenêtre apparaît en dessous (celle de la saisie précédente). Y’a-t-il moyen d’empêcher ce phénomène ?

 

Merci à vous et ne m’en tenez pas trop rigueur  pour mon code !

 

++
Pièce jointe:
zip Ouil planning.zip   [ Taille: 39.92 Ko - Téléchargements: 633 ]
Hors Ligne
Rapport   Haut 

Re: Questions userform
#14
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 30-07-2008 21h39
Bonsoir lannou, le Forum,

Petit exercice de logique si tu veux bien :

----------------------
Les 3 premières lignes de code de ton bouton "SUIVANT" sont :
Private Sub CommandButton3_Click()
' Programme qui s'exécute lorsqu'on clique sur le Bouton SUIVANT :

' Code pour éviter la mise à jour permanente de l'écran (pour accélérer la macro) :
Application.ScreenUpdating = False
Je note également que nulle part ailleurs dans cette procédure tu ne rétablis ScreenUpdating à True

Au final, tu te poses la question suivante : "pourquoi les données ne se chargent pas directement dans la feuille à chaque fois que j’appuie sur le bouton suivant ? "
-------------------------------
Fin de l'exercice. J'espère que tu en as compris la teneur...


J'en profite pour quatres petites remarques sur ton code :

Déclarer les variables, ça veut dire déclarer TOUTES les variables. Sinon ça ne sert à rien. (par exemple, ce n'est pas le cas de Numéro_phase, ni de Phase_projet, et il y en a bien d'autres... Voir l'utilisation de Option Explicit dans l'article que je t'ai cité à plusieurs reprises).

Par convention, par logique et pour plus de clarté aussi, les déclarations de variables doivent toujours se faire en tête de procédure (et non au milieu).

Toujours par convention, et pour éviter de mauvaise surprise aussi, il vaut mieux éviter d'utiliser les caractères accentués dans les noms de variable ou d'objet. Pour rappel, l'anglais est de mise dans la plupart des langages de programmation... aussi, les caractères accentués sont toujours à éviter dans le code.

Si tu parcours un peu les forums et ceux du présent site en particulier, tu m'y verras répéter inlassablement que les Select et autre Activate sont inutiles la plupart du temps, voire même sources d'erreurs... Mais ceci est une autre histoire, je pense que tu as déjà bien assez à voir pour l'instant...

Pour finir, si tu dois continuer tes questions sur ce projet, je te prie de bien vouloir créer un nouveau sujet car je pense que le problème d'origine du présent fil de discussion est effectivement résolu.


    Cordialement,






Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Questions userform
#15
Aspirant XLPages

Inscription: 01/07/2008

Messages: 32

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 31-07-2008 17h54
Bonsoir tout le monde!Ok ---> je sors!!!En fait, comme je pensais que ca venait du "unload me" je ne me suis pas préoccupé de la phrase que j'avais rédigée au tout début de ma macro, du coup je ne suis pas revenu dessus...Désolé!Ok si j'ai une autre question je créerai un nouveau sujet!Merci!++
Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes