Bonjour,
J'aurais besoin d'aide pour un projet qui m'oblige à utiliser une macro qui doit créer plusieurs liste en fonction des choix fait par l'utilisateur. Si vous pouvez m'aider ça serait fabuleux.
A l'aide d'un code VBA :
Quand l'utilisateur appui sur le bouton de contrôle "ok" de la feuille User après avoir renseigné les champs : type de travée, nombre de travée, PAF. J'aimerais qu'une macro se lance et qu'elle fasse les étapes suivantes :
– sélectionner la cellule de la colonne B de la dernière ligne utilisée, descendre de 5 ligne
– créer une liste dépendante du choix précédent de l'utilisateur sur cette dernière cellule. Par exemple : si Travee_ST sélectionné par l'utilisateur, afficher une liste avec les différentes longueur 62, 56, 50, 44, 38; si Travee_MS sélectionné afficher la liste 60, 55, 50, 45, 37 etc. cf feuille datas
– répéter ces deux première étapes autant de fois que renseigner dans la case C7 nombre de travée.
J'ai écris quelque chose mais c'est extrêmement boiteux
Dans le fichier sur la première feuille il y a un exemple sur la partie droite de ce que j'aimerais avoir.
Merci de votre aide
J'aurais besoin d'aide pour un projet qui m'oblige à utiliser une macro qui doit créer plusieurs liste en fonction des choix fait par l'utilisateur. Si vous pouvez m'aider ça serait fabuleux.
A l'aide d'un code VBA :
Quand l'utilisateur appui sur le bouton de contrôle "ok" de la feuille User après avoir renseigné les champs : type de travée, nombre de travée, PAF. J'aimerais qu'une macro se lance et qu'elle fasse les étapes suivantes :
– sélectionner la cellule de la colonne B de la dernière ligne utilisée, descendre de 5 ligne
– créer une liste dépendante du choix précédent de l'utilisateur sur cette dernière cellule. Par exemple : si Travee_ST sélectionné par l'utilisateur, afficher une liste avec les différentes longueur 62, 56, 50, 44, 38; si Travee_MS sélectionné afficher la liste 60, 55, 50, 45, 37 etc. cf feuille datas
– répéter ces deux première étapes autant de fois que renseigner dans la case C7 nombre de travée.
J'ai écris quelque chose mais c'est extrêmement boiteux
Code:
Sub nbrtravee()
'définir la cellule 7C pour le nombre de boucle for à faire
Range("c7").Name = nbrspans
Dim nbrtravee As Integer
For i = 1 To nbrspans
'dessendre de deux ligne
DerniereLigneUtilisee = Range("B" & Rows.Count).End(xlUp).Row
Cells(BDerniereLigneUtilisee).Select
Selection.End(xlDown).Offset(5, 0).Select
'créer une liste relatif au taille de travée du type sélectionner
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="='Datas'!C7" '--> renvoi à la valeur sélectionner par l'utilisateur qui définis un tableau sur la page datas
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
'répeter cela avec autant de travée sélectionner
Next
'ajouter une liste des taille de paf si oui pour paf
if c 11= "oui"
DerniereLigneUtilisee = Range("B" & Rows.Count).End(xlUp).Row
Cells(BDerniereLigneUtilisee).Select
Selection.End(xlDown).Offset(5, 0).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="='Datas'!PAF"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
Dans le fichier sur la première feuille il y a un exemple sur la partie droite de ce que j'aimerais avoir.
Merci de votre aide
Pièces jointes
Dernière édition: