Liens entre Listbox, userform et feuille Excel

Bonjour,

Pour information, mon Excel sert à comptabiliser le nombre de kms d'une voiture va réaliser lors d'un week-end de rallye afin de pouvoir voir au premier coup d’œil lorsqu'une pièce à atteint sa révision.

Lorsqu'une pièce est révisée ou remplacée on va aller sur le bouton maintenance qui va afficher une listbox des rallyes dejà enregistré une fois le rallye choisi, on va pouvoir passer à la sélection de la catégorie de la pièce à réviser. Une fois la catégorie sélectionné un userform va afficher toutes les pièces contenues dans la catégorie avec révision "Yes" ou "No".

C'est ici que ca bloque lorsque je choisi mon rallye dans la listbox comment faire pour que je puisse ajouter l'état de la révision sur la feuille excel au bon endroit c'est à dire sous le bon rallye et dans la bonne colonne.

Merci d'avance

Bonjour,

Afin de passer la valeur d'une variable d'un module à l'autre ou d'un userform à l'autre, il faut rendre "Public" cette variable, et ce dans le haut d'un module.

J'ai donc utilisé le module "Asphalt" où j'ai ajouté au haut Public LeRallye As Integer .

Dans le MaintenanceForm > bouton OK > j'ai ajouté LeRallye = 11 + (6 * ListBox1.ListIndex) > 11 = la colonne K > 6 le nombre de colonnes pour aller d'une colonne "Révision" à l'autre (d'un rallye à l'autre) > multiplié par le numéro de la ligne du ListBox (la première ligne d'un Listbox est la ligne 0).

Exemples :

le rallye "ADAC" = 11 + (6 *0) > on reste donc sur la colonne K (11)

le rallye "VAN STADEN 2019" = 11 + (6 *2) > on est rendu dans la colonne W (23)

Un cas > le Steering oil > ligne 137

L'on est donc rendu dans SteeringForm > l'on choisit "Yes" au ComboBox5 > le bouton "OK" va écrire "Ok dans la colonne de Révision.

Il restera à adapter > qu'est-ce qui sera écrit. Il y a aussi l'interaction avec la colonne "F" qui est à déterminer.

Perso, au lieu des combobox "Yes" et "No", j'aurai opté pour des "OptionButton" plus rapide d'accès. Mais c'est au goût.

ric

Merci ric cela fonctionne parfaitement.

La colonne F je suis actuellement en train de chercher à fin de faire le décompteur déjà présent mais aussi la "remise à 0" qui sera le Recommended Replacement mais pas super simple à faire pour un novice

Oui on m'as déjà parlé des OptionButton mais je sais pas comment bien les utiliser donc cela risque d'etre compliqué.

Petite question au passage comment garder la valeur dans le combobox par exemple si je choisi "Yes" que si je ré-ouvre le même rallye et la même catégorie que je puisse voir qu'es qui a déjà était révisé ou non?

Merci beaucoup en tout cas

Bonjour,

... comment garder la valeur dans le combobox par exemple si je choisi "Yes" que si je ré-ouvre le même rallye et la même catégorie que je puisse voir qu'es qui a déjà était révisé ou non? ...

À l'ouverture du SteeringForm > l'on fait lire l'état de la cellule est l'applique au combobox.

Cette méthode sera utilisable ailleurs.

Je vais te faire un exemple.

ric

Bonjour,

Woouuullllaaaaa un exemple ...

Je ne suis pas satisfait du "on error resume next".

Je reviens avec autre chose.

ric

Bonjour,

Voici une version où SteeringForm contient des OptionButtons en place des Comboboxs.

Si tu optes cela dans les autres userforms > tu sélectionnes 2 options button et tu vas dans les propriétés donner un nom au groupe > afin d'en limiter l'action à ces 2 là > j'ai simplement utilisé 1, 2, .....

Bonsoir

il faut aussi faire la suite

A voir

Private Sub UserForm_Initialize() ' pour GearboxForm
Comb = Array("No", "Yes")
    With Feuil2 '= CodeName de Sheets("Maintenance")
        For C = 1 To 19
            Controls("ComboBox" & C).List = Comb
            Controls("ComboBox" & C).Style = 2
            Controls("ComboBox" & C).ListIndex = 0
            Controls("Label" & C + 21).BackColor = .Range("F" & C + 23).DisplayFormat.Interior.Color
            Controls("Label" & C + 21).Caption = .Range("F" & C + 23).Value
        Next C
    End With
End Sub

A+

Maurice

Merci beaucoup de m'avoir montré tous cela mais je pense que je vais rester sur l'option du combobox car pour certaines parties cela risque d’être assez long pour tout modifier mais merci beaucoup j'étudierai ça pour d'autre projet ! Merci

Bonjour

ses ton problème de ne pas mettre de l'ordre

voila une dernier pour les OptionButton

Private Sub UserForm_Initialize()
Dim Ws As Worksheet
Set Ws = Sheets("Maintenance")
LeRallye = 5
    For C = 1 To 5
            Controls("Label" & 21 + C).BackColor = Ws.Range("F" & 132 + C).DisplayFormat.Interior.Color
            Controls("Label" & 21 + C).Caption = Ws.Range("F" & 132 + C).Value
        If Ws.Cells(132 + C, LeRallye).Value = 1 Then
            Controls("OptionButton" & C) = True
        Else
            Controls("OptionButton" & C + 5) = True
        End If
    Next C
End Sub

Private Sub OkButton_Click()
Dim Ws As Worksheet
Set Ws = Sheets("Maintenance")
LeRallye = 5
    For C = 1 To 5
        If Controls("OptionButton" & C) = True Then
            Ws.Cells(132 + C, LeRallye).Value = 1
        Else
            Ws.Cells(132 + C, LeRallye).Value = 0
        End If
    Next C
End Sub

A+

Maurice

Merci archer

Rechercher des sujets similaires à "liens entre listbox userform feuille"