Rowsource et optionbutton

lagroumph

XLDnaute Nouveau
Bonjour à tous,

Ci-joint un fichier type formulaire que je destine à des collaborateurs pour renseigner un certains nombre de données à partir d’userforms.

En appuyant sur le bouton "reviser", un Userform apparaît.
l’utilisateur doit sélectionner à l’aide des OptionButtons, le service (dioxines fortes teneurs, pesticides,...) puis une situation (CboSit).

Mon pb est celui-ci :

Comment faire correspondre la RowSource de la CboSit en fonction du choix des optionbutton précédents ? (dans l’exemple, la rowsource par défaut correspond à la colonne F2 de la page « données_UT). Concrètement, si je choisis « Fortes teneur », la liste déroulante doit correspondre à F2, si je choisis « pesticides », la liste doit être en H3,…).

Ci-joint le fichier.
Voila j’espère avoir été clair, merci pour les tuyaux.
 

Pièces jointes

  • formulaire_maj_ev2r.zip
    47.7 KB · Affichages: 40

gilbert_RGI

XLDnaute Barbatruc
Re : Rowsource et optionbutton

Bonjour

si j'ai bien compris ce doit être quelque chose dans ce genre

Code:
Private Sub CboSit_Change()
    Select Case services
    Case Optserv1
        CboSit.RowSource = "votre plage"
    Case Optserv2
        CboSit.RowSource = "votre plage"
    Case Optserv3
        CboSit.RowSource = "votre plage"
    Case Optserv4
        CboSit.RowSource = "votre plage"
    End Select
End Sub

salutations

RGI
 

cbea

XLDnaute Impliqué
Re : Rowsource et optionbutton

Bonjour lagroumph et le forum,

J'ai apporté une modification dans le code lors de la sélection d'une option.
La liste se charge en fonction des noms définis.
J'ai également modifié la référence du nom "Situations_dioxines_inter" car cela pointait sur la mauvaise colonne.
 

Pièces jointes

  • formulaire_maj_ev2r_v1.zip
    32.3 KB · Affichages: 32

lagroumph

XLDnaute Nouveau
Re : Rowsource et optionbutton

Merci Gilbert et Cba,

Vos modifications me permettent de mieux appréhender le code.
Cependant, je ne vois tjs pas comment modifierle code suivant pour, en fontion, du choix d'option, changer de liste pour ajouter une situation :

Private Sub CmdValid1_Click()
'Pour ajouter un nouveau produit dans le textbox
If Txtnew.Value <> "" Then
'ajoute la situation à liste sur la données UT
Range("données_UT!F2").End(xlDown).Offset(1, 0).Value = Txtnew.Value
'tri de la liste des situations
Sheets("données_UT").Activate
Range("Situations_dioxines_ft").Select
Selection.Sort Key1:=Range("F2"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, Orientation:=xlTopToBottom

End If
Unload Me
End Sub

Dans le cas présent, a chaque "nouvelle situation", le texte renseigné s'ajoute dans la colonne F2.

je pense que tout est une question d'expression dans le Range, mais je vois pas comment faire.

Merci.
 

lagroumph

XLDnaute Nouveau
Re : Rowsource et optionbutton

Merci bcp Cbea. C'est tout à fait ça.
Sinon, petit question : si j'ai bien compris le raisonnement (quoique je ne sois pas encore tout à fait familiarisé avec la syntaxe), qu'elle est le rôle de la Macro2 ?

Encore merci pour le coup de main. :)
 

cbea

XLDnaute Impliqué
Re : Rowsource et optionbutton

Bonsoir lagroumph,

Voici une nouvelle version avec l'ajout d'un bouton "Supprimer situation" dans la USF "UT_dioxines" et d'une USF "UsfSitSup".
Je te laisse regarder si cela te convient.
 

Pièces jointes

  • formulaire_maj_ev2r_v3.zip
    44.5 KB · Affichages: 21

lagroumph

XLDnaute Nouveau
Re : Rowsource et optionbutton

Bonjour,

Encore merci pour cette dernière version qui répond à mon besoin.
Je découvre de nouvelles fonctions mais je dois dire que ça complique ma compréhension du code bref, c le métier qui rentre !! :)

Par contre, petite remarque : quand je renseigne une nvlle situation ou que je la supprime, elle n'apparait pas immédiatement dans la liste de la CboSit. Je dois reselectionner un service pour que la modif apparaisse. je sais c pas grand chose mais un utilisateur lambda ne va pas comprendre pkoi la nvll situation qu'il vient de créer n'est pas sélectionnable tout de suite.

voilou

Bonne journée
 

cbea

XLDnaute Impliqué
Re : Rowsource et optionbutton

Bonjour Lagroumph,

Je viens de rajouter une procédure ActualiserListSit qui va permettra de réaffecter le contenu de la liste des situations après un ajout ou une suppression d'une situation.

Bonne journée
 

Pièces jointes

  • formulaire_maj_ev2r_v4.zip
    46.9 KB · Affichages: 18

lagroumph

XLDnaute Nouveau
Re : Rowsource et optionbutton

encore une fois, merci bcp.

J'ai essayé de continuer le développement de mon fichier et je me confornte à un autre souci.
L'idée est de dupliquer l'userform "dioxine" pour les autres unités tehniques mais je voudrais ne garder qu'un seul usfSit et une seul usfDesign.
J'ai crée un userform :UT-traces et j'ai repris ton code ds le UsfSit en y rajoutant les lignes suivantes :

Dim col As String
Dim derlig As Long

'Pour ajouter une nouvelle situation dans le textbox
If Txtnew.Value <> "" Then
If UT_dioxines.Optserv1.Value = True Then col = "F"
If UT_dioxines.Optserv2.Value = True Then col = "G"
If UT_dioxines.Optserv3.Value = True Then col = "I"
If UT_dioxines.Optserv4.Value = True Then col = "H"
If UT_traces.Optserv1.Value = True Then col = "O"
If UT_traces.Optserv2.Value = True Then col = "P"
If UT_traces.Optserv3.Value = True Then col = "Q"
If UT_traces.Optserv4.Value = True Then col = "R"
If UT_traces.Optserv5.Value = True Then col = "S"
If UT_traces.Optserv6.Value = True Then col = "T"


'ajoute la situation à liste sur la données UT
With Worksheets("données_UT")
derlig = .Range(col & Cells.Rows.Count).End(xlUp).Row + 1
If derlig < 3 Then derlig = 3
.Range(col & derlig).Value = Txtnew.Value

'tri de la liste des situations
.Range(col & "3:" & col & derlig).Sort _
Key1:=.Range(col & "2"), Order1:=xlAscending, Header:=xlNo, _
DataOption1:=xlSortNormal
End With
End If

Unload Me


Mais excel me renvoie une erreur 402.
On ne doit pas pouvoir faire un if sur plusieurs userforms à priori.
Merci d'éclairer ma lanterne.
 

cbea

XLDnaute Impliqué
Re : Rowsource et optionbutton

Les lignes que tu as rajoutées ne doivent pas poser de problème.
Cela doit venir d'autre chose comme par exemple la réaffectation des données de la colonne dans la liste.

Peux-tu m'envoyer ton fichier pour vérifier ?

Merci
 

lagroumph

XLDnaute Nouveau
Re : Rowsource et optionbutton

J'ai essayé de me débrouiller tout seul (come koi ;). Je suis parti du postulat qu'il y avait conflit entre les 2 usforms. donc, j'ai remplacé le code par :

if Me.Caption = "Traces" Then Call AjoutTraces
If Me.Caption = "Dioxines" Then Call AjoutDioxines

je reprends donc, ds chaque macros, le code initial.(en amont et sur chaque userform, ds le code du bouton "nvlle situation" je rentre : If Me.Caption = "UT DIOXINES" Then UsfSit.Caption = "Dioxines"
alors j'obtiens de bons résultats mais j'ai un autre soucis avec la macro ActualiserList, j'ai un code erreur : permission refusée.

pour le fichier, il devient lourd le bougre pour te l'envoyer.
 

cbea

XLDnaute Impliqué
Re : Rowsource et optionbutton

Bonsoir lagroumph,

Il y avait bien un problème lorsque les listes sont vides.
J'ai apporté les modifications dans les USF usfSit et UT_dioxines (notées ' Modif le 26/03).

Je te laisse regarder et si besoin tu demandes.

Bonne soirée
 

Pièces jointes

  • formulaire_maj_ev2r_v5.zip
    48.2 KB · Affichages: 35

Statistiques des forums

Discussions
312 023
Messages
2 084 713
Membres
102 637
dernier inscrit
TOTO33000