Problème de navigation entre userform

Tradman

XLDnaute Nouveau
Bonjour à tous,

Dans mon fichier je créer plusieurs userform et je dois passer de l'un à l'autre. (Pour l'instant j'en ai que 2 mais ça ne fonctionne pas)

Donc à l'ouverture du fichier excel j'ai un Userform qui s'ouvre avec 4 bouttons de command qui vont pointer sur 4 userform différent

Donc dans le code d'ouvertur de mon classeur j'ai la commande suivante :

Private Sub Workbook_Open()

ufmIntroduction.Show (False)

End Sub

quand je clique sur le premier boutton (pour passer à mon userform2) j'ai le code suivant :

Private Sub Entrer_km_Click()

'Fermer le userform d'intorduction
Unload ufmIntroduction

' Afficher le userform kilométrage pour une nouvelle entrée

Userform2.show

End Sub

Or j'ai une erreur d'exécution avec un code 424 objet requis

Voici le code d'initialisation du userform2

Sub Userform_initialize()

Dim intJour, intMois, intAnnee As Integer
' Définition des variables
Dim wsDonnees As Worksheet

' Placer valeur d'origine dans les variables
Set wsDonnees = Sheets("Données")

datedujour = Date

intJour = Day(datedujour)
intMois = Month(datedujour)
intAnnee = Year(datedujour)

' Initialisation de la liste déroulante des jours à l'ouverture du fichier
With Jour
.AddItem "1"
.AddItem "2"
.AddItem "3"
.AddItem "4"
.AddItem "5"
.AddItem "6"
.AddItem "7"
.AddItem "8"
.AddItem "9"
.AddItem "10"
.AddItem "11"
.AddItem "12"
.AddItem "13"
.AddItem "14"
.AddItem "15"
.AddItem "16"
.AddItem "17"
.AddItem "18"
.AddItem "19"
.AddItem "20"
.AddItem "21"
.AddItem "22"
.AddItem "23"
.AddItem "24"
.AddItem "25"
.AddItem "26"
.AddItem "27"
.AddItem "28"
.AddItem "29"
.AddItem "30"
.AddItem "31"
.ListIndex = intJour - 1
End With

' Initialisation de la liste déroulante des Années à l'ouverture du fichier
With Annee
.AddItem "2012"
.AddItem "2013"
.AddItem "2014"
.AddItem "2015"
.AddItem "2016"
.AddItem "2017"
.AddItem "2018"
.AddItem "2019"
.AddItem "2020"
.ListIndex = intAnnee - 2012
End With

' Initialisation de la liste déroulante des Mois à l'ouverture du fichier
With Mois
.AddItem " Janvier "
.AddItem " Février "
.AddItem " Mars "
.AddItem " Avril "
.AddItem " Mai "
.AddItem " Juin "
.AddItem " Juillet "
.AddItem " Août "
.AddItem " Septembre "
.AddItem " Octobre "
.AddItem " Novembre "
.AddItem " Décembre "
.ListIndex = intMois - 1
End With

end sub

Pouvez-vous m'aider ?
Mes ressources sont limité en VBA et je ne comprends pas le problème.

Merci
 

joss56

XLDnaute Accro
Re : Problème de navigation entre userform

Bonjour, je reprends ton code:

Private Sub Entrer_km_Click()
'Fermer le userform d'intorduction
Unload ufmIntroduction
' Afficher le userform kilométrage pour une nouvelle entrée
Userform2.show
End Sub

1) Il faut ouvrir le formulaire UserForm2 avant de fermer ufmIntroduction.
2) Pour l'alimentation des listes déroulantes tu as peut-être cette solution:

for i=1 to 31
jour.AddItem i
next i

Bonne journée
A+
Jocelyn
 

Tradman

XLDnaute Nouveau
Re : Problème de navigation entre userform

Merci à vous deux,

Je teste dès que possible et je vous reviens.

Définitivement je n'avais pas pensé au boucle pour compléter ma liste de jour, d'année et de mois.
Le tout va grandement diminuer mon code.

Encore merci

Tradman
 

Tradman

XLDnaute Nouveau
Re : Problème de navigation entre userform

Bonjour à tous,

Malheureusement les infos de Jocelyn ne fonctione malheureusement pas.
Voici le fichier excel en question. Si vous avez des idées pour régler mon problème de navigation entre mes User form (En fait juste en cliquant sur le premier bouton pour entrer du kilométrage, je pense pouvoir répliquer la formule pour naviguer vers mes autres userform).

Comme je l'ai déjà dit, j'en suis à mes début avec VBA et j'aimerais un peu d'aide.
Évidement un code corrigé serait bien mais j'aimerais avoir un peu d'explication de pourquoi le tout ne fonctionnait pas et la bonne pratique à faire. (Mais ne sentez vous pas obliger, juste si je peux avancer je vais m'arranger pour comprendre par la suite.

Voici mon fichier qui ne fonctionne pas.



Merci beaucoup

Tradman
 

Pièces jointes

  • Kilométrage.xlsm
    44.9 KB · Affichages: 65

joss56

XLDnaute Accro
Re : Problème de navigation entre userform

Elles fonctionneraient si...!
Le problème vient du fait que tu as donné des noms à tes objets : userform, textbox, combobox et c'est très bien mais dans ton code, ces mêmes contrôles ont changé d'état civil!!
Par exemple : ta liste déroulante que tu as nommée ufmVoiture est utilisée dans le code avec le nom voiture! (tu écris With Voiture...).
Autre exemple qui te posera problème très rapidement: le formulaire ufmKilometrage est appelé dans ton code Kilometre (tu as écrit Kilometre.hide et un peu plus loin Kilometre.show).
Il y a peut-être d'autres erreurs du même type.
Donc,
1) vérifier la validité des noms d'objets dans ton code
2) penser à la navigation dans ton applicatif : une fois que tu auras refermé ton formulaire ufmIntroduction, comment comptes tu le réafficher pour une nouvelle opération?
3) pour afficher un formulaire le code : formulaire.show suffit.

A+
Jocelyn
 

Pierrot93

XLDnaute Barbatruc
Re : Problème de navigation entre userform

Bonjour Tradman, Jocelyn:)

petite remarque, place un "Option Explicit" sur la première ligne de tes modules, oblige à la déclaration des variables, et t'indiquera donc si tu utilises des noms d'objets invalides....

bonne journée
@+
 

Discussions similaires

Statistiques des forums

Discussions
312 086
Messages
2 085 197
Membres
102 814
dernier inscrit
JLGalley