ouverture d'usf par une listbox

Alexandre_13

XLDnaute Nouveau
construire un programme de a à z

Bonjour tout le monde!
Malgrès de nombreuses recherche sur le forum, je reste bloqué au début de mon projet.
j'essai depuis plusieur jour d'ouvrir d'autres usf a partir des éléments de ma listbox. Je vous donne ce que j'ai fait .bon la première partie fonctionne mais lorsque je sélectionne un engin dans ma liste il ne se passe rien.bon je vous remerci et espère que l'un de vous pouras m'aider, à bientôt.
Option Explicit
Private Sub UserForm_Initialize()
ListBox1.RowSource = ("Engins!Les_engins")
ListBox1.ListIndex = -1
ListBox1.MultiSelect = fmMultiSelectExtended
End Sub
Private Sub ListBox1_click()
Dim ListIndex("Hyster") As String
ListIndex("Hyster") = "userform2"
VBA.UserForms.Add ListIndex.Show:
End Sub
 
Dernière édition:

Bebere

XLDnaute Barbatruc
Re : ouverture d'usf par une listbox

bonjour Alexandre

j'ai essayé avec le code suivant et c'est ok
plage contient 1 et 3,userform1 userform3
Private Sub UserForm_Initialize()
Dim Plage As String
Plage = Sheets("Engins").Range("A1:A2").Address
ListBox1.RowSource = "Engins!" & Plage
'ListBox1.ListIndex = -1
'ListBox1.MultiSelect = fmMultiSelectExtended
End Sub

Private Sub ListBox1_change()
Dim I As Byte

I = Val(ListBox1.Value)
If I = 1 Then UserForm1.Show
If I = 3 Then UserForm3.Show

End Sub

à bientôt
 

Alexandre_13

XLDnaute Nouveau
Re : ouverture d'usf par une listbox

Salut Bebere, et tout d’abord merci pour ton aide. J'ai essayé ton code mais ce n'a pas l'air de fonctionner chez moi.
Private Sub UserForm_Initialize()
Dim Plage as String
Plage = sheets ("Engins").Range ("A1:A14").Address
ListBox1.RowSource = "Engins!" & Plage
'ListBox1.ListIndex = -1
'ListBox1.MultiSelect = fmMultiSelectExtended
End Sub
Private Sub ListBox1_change ()
Dim I As Byte
I = Val(ListBox1.Value)
If I = 2 Then UserForm2.Show
If I = 3 Then UserForm3.Show
End Sub
La cellule A1 étant le titre de la listbox
Donc si j'ai bien compris
If I = 2 Then UserForm2.Show devrais me permettre d'ouvrir l'usf2
En sachant que l'usf 1 contiens déjà listbox1( menu déroulant qui me permet d'accéder à mes fiches d'entretien qui sont le usf 2,3,etc)
 

Alexandre_13

XLDnaute Nouveau
Re : ouverture d'usf par une listbox

Salut Bebere, et tout d’abord merci pour ton aide. J'ai essayé ton code mais ce n'a pas l'air de fonctionner chez moi.
Private Sub UserForm_Initialize()
Dim Plage as String
Plage = sheets ("Engins").Range ("A1:A14").Address
ListBox1.RowSource = "Engins!" & Plage
'ListBox1.ListIndex = -1
'ListBox1.MultiSelect = fmMultiSelectExtended
End Sub
Private Sub ListBox1_change ()
Dim I As Byte
I = Val(ListBox1.Value)
If I = 2 Then UserForm2.Show
If I = 3 Then UserForm3.Show
End Sub
La cellule A1 étant le titre de la listbox
Donc si j'ai bien compris
If I = 2 Then UserForm2.Show devrais me permettre d'ouvrir l'usf2
En sachant que l'usf 1 contiens déjà listbox1( menu déroulant qui me permet d'accéder à mes fiches d'entretien qui sont le usf 2,3,etc)
@+ merci
 

Alexandre_13

XLDnaute Nouveau
Re : ouverture d'usf par une listbox

bebere je te remercie infiniment, j'ai fini par comprendre, juste une petite adaptation et là ça marche.
Private Sub UserForm_Initialize()
Dim Plage As String
Plage = sheets("Engins").Range("A1:A14").Address
ListBox1.RowSource = "Engins!" & Plage
End Sub

Private Sub ListBox1_change()
Dim I As Byte
I = Val(ListBox1.ListIndex)
If I = 1 Then UserForm2.Show
If I = 2 Then UserForm3.Show
End Sub
je te dis à bientôt car j'aurais surement besoin de nouveaux conseil, et merci encore
 

Alexandre_13

XLDnaute Nouveau
Re : ouverture d'usf par une listbox

Bonjour Bebere,et à tous
merci pour ta démo, c'est sympa.
Je galère pas mal avec mon projet mais j'avance doucement. Une chance que je soit patient sinon je crois que je n'aurais plus un cheveu sur la tête.d'ailleur à ce sujet. peux tu me dire pourquoi dans mon code je n'arrive pas à changer les valeur des cellules

Private Sub userform2_intialize()
Workbooks("Entretien engins (version 2).xls").Activate
CheckBox1.Value = False
CheckBox2.Value = False
CheckBox3.Value = False
CheckBox4.Value = False
CheckBox5.Value = False
CommandButton1.Value = False

End Sub

Private Sub CommandButton1_validate()
CommandButton1.Click = True
End Sub

Private Sub Commandbutton2_click()
ActiveWindow.WindowState = xlNormal
Unload UserForm2
End Sub
Private Sub CheckBox1_Click()
If CheckBox1.Value = True And CommandButton1.Value = True Then
Worksheets(3).Range("d10").Value = 1 & Worksheets(2).Calculate
Range("d5").Value = ("feuil2 Range d5") - ("feuil3 Range d10")
Else:
End If
End Sub

bon , c'est surement tiré par les cheuveux mais il faut bien apprendre!!!!
A bientôt Alex
 

Alexandre_13

XLDnaute Nouveau
Re : ouverture d'usf par une listbox

Salut Bebere, merci pour les renseignements.
Ton aide m'est d'une grande utilitée, j'ai l'impréssion d'avancer à pas de géant depuis quelques jours. domage que la taille des fichiers joints soit si petite sinon je t'aurais envoyé le fichier complet (pas pour que tu me le fasse biensur!!).
toutes mes amitiés à bientôt
Alex
 

Alexandre_13

XLDnaute Nouveau
Re : ouverture d'usf par une listbox

Salut Bebere!
J’espère que tu a passé un bon week-end, encore une question:( j'espère que je n'abuse pas, sinon n'hésite pas à me le dire!)
Quand tu utilise "I" dans une variable d'un userform (ce qui permet de réduire singulièrement les lignes de commande), peut-on utiliser x, y ou z pour réduire d'autres paragraphes .
cette question afin de réduire le 2° de ceci, si possible.(commandbutton1)


Private Sub userform2_intialize()
Workbooks("Entretien engins (version 2).xls").Activate
Dim I As Byte
For I = 1 To 6
Controls("CheckBox" & I) = False
Next I
'metre la date et l'heure dans texbox2
End Sub


Private Sub Commandbutton1_click()
If CheckBox1.Value = True Then
Worksheets(2).Range("L6").Value = Worksheets(2).Range("L6").Value - 1
If CheckBox2.Value = True Then
Worksheets(2).Range("L21").Value = Worksheets(2).Range("L21").Value - 1
If CheckBox3.Value = True Then
Worksheets(2).Range("L32").Value = Worksheets(2).Range("L32").Value - 1
If CheckBox4.Value = True Then
Worksheets(2).Range("L46").Value = Worksheets(2).Range("L46").Value - 1
If CheckBox5.Value = True Then
Worksheets(2).Range("L57").Value = Worksheets(2).Range("L57").Value - 1
If CheckBox6.Value = True Then
Worksheets(2).Range("L68").Value = Worksheets(2).Range("L68").Value - 2
End If
End If
End If
End If
End If
End If
'enregistrement de tout l'userform dans feuil 3 à la date du jour voire l'heure si besoin est!!!
Unload UserForm2
End Sub


Private Sub Commandbutton2_click()
ActiveWindow.WindowState = xlNormal
Unload UserForm2
End Sub

A bientôt et merci de ta patience

Alex
 
Dernière édition:

Bebere

XLDnaute Barbatruc
Re : ouverture d'usf par une listbox

bonjour Alexandre
tu peux réemployer I dans une autre boucle ou i=o et ensuite i=i+1 pour un autre usage
'tu peux écrire ton code comme suit,ne pas oublier le point devant range
With Worksheets(2)
If CheckBox1.Value = True Then .Range("L6").Value = .Range("L6").Value - 1
If CheckBox2.Value = True Then .Range("L21").Value = .Range("L21").Value - 1
If CheckBox3.Value = True Then .Range("L32").Value = .Range("L32").Value - 1
If CheckBox4.Value = True Then .Range("L46").Value = .Range("L46").Value - 1
If CheckBox5.Value = True Then .Range("L57").Value = .Range("L57").Value - 1
If CheckBox6.Value = True Then .Range("L68").Value = .Range("L68").Value - 2
End With
 

Alexandre_13

XLDnaute Nouveau
Re : ouverture d'usf par une listbox

Re Bebere!
Franchement je t'admire!
Quand je vois le temps que je passe pour faire fonctionner mon code, toi tu me sort ça en deux coups de cuillère à pot et bien plus court que moi.
Si tu habite dans ma région je t'inviterai bien pour un apéro ou une bouffe (voire les deux).
Bon merci et bonne soirée
A bientôt
Alex
 

Alexandre_13

XLDnaute Nouveau
Re : ouverture d'usf par une listbox

Salut Bebere! Et à tous, j'oublie quelques fois qu'il y a beaucoup d'autres gens!
J’ai réduit la taille de mon fichier au maximum afin que tu puisses voir de quoi on parle.
Donc voilà, j’ai besoin de conseils.
Après validation je voudrais enregistrer les valeurs des textbox qui seront une date, un nombre d' heures de fonctionnement de l’engin, et un commentaire de l’opérateur dans la feuille 2 (Hyster).
Dois-je chaque fois enregistrer sur une nouvelle feuille ou est-ce possible de le faire sur la même dans d’autres colonnes et cellules par rapport à la date d’intervention?.
Bon je ne sais pas si je suis très clair, mais regarde l’usf 2 tu comprendras peut-être.

Regarde la pièce jointe Entretien engins.zip ;) ;) ;) ;)
 

Pièces jointes

  • Entretien engins.zip
    13.9 KB · Affichages: 48
  • Entretien engins.zip
    13.9 KB · Affichages: 49
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 541
Messages
2 089 412
Membres
104 163
dernier inscrit
Lolo37