Problème pour masquer des choix d'une liste

rachyou

XLDnaute Nouveau
Bonjour,
J'ai un petit problème de liste que je voudrais l'appliquer a mon programme VBA, vous trouvez le fichier ci-joint.

Je voudrais dans la case [B6] quand je choisis le nombre 1 dans le nombre de moteur qu'il enleve dans la case [B8] les deux choix de la liste qui sont moteur 2 et moteur 3, et qu'il laisse juste moteur 1.
et pareil dans le deuxième cas si je choisis le nombre 2 dans le nombre de moteur qu'il enleve dans la case [B8] moteur 3 et qui laisse juste moteur 1et 2

Merci en avance
 

Pièces jointes

  • test 2.xlsm
    15.3 KB · Affichages: 52
  • test 2.xlsm
    15.3 KB · Affichages: 51
  • test 2.xlsm
    15.3 KB · Affichages: 53

sousou

XLDnaute Barbatruc
Re : Problème pour masquer des choix d'une liste

Bonjour Rachyou
Une solution qui modifie la définition de la liste


Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False

Rows("9").Hidden = [B6] = 1 'Masquer les lignes 6:18 si choix de moteurs=non

ad = Feuil2.Cells(5, 2).Address & ":" & Feuil2.Cells(5, ActiveSheet.Range("b6") + 1).Address ' définition de la liste en fonction de la valeur choisie
ThisWorkbook.Names("armoire_moteur").Value = "=feuil2!" & ad

End Sub
 

rachyou

XLDnaute Nouveau
Re : Problème pour masquer des choix d'une liste

je voudrais savoir si sera possible que vous m'expliquiez cette ligne de programme
ad = Feuil2.Cells(5, 2).Address & ":" & Feuil2.Cells(5, ActiveSheet.Range("b6") + 1).Address
juste cette partie (5, 2), pour que je sache si le numero est de la ligne ou colonne ou de feuille
merci en avance
 

sousou

XLDnaute Barbatruc
Re : Problème pour masquer des choix d'une liste

Re bonjour.
armoire_moteur est un nom que tu as défini et qui désigne la zone ou se trouve les données d'affichages de ta liste.

Cette ligne calcul cette zone qui sera utilisée dans 'Feuil2.Cells(5, 2).Address' renvoi l'adresse de début de la zone soit cells(5,2) ou ligne 5 colonne2 de la feuille 2
La suite est équivalente, mais j'utilise la valeur de b6 feuil1 pour calculer le numéro de la colonne.

le nom de la feuille est déterminée dans la ligne suivante 'feuil2!'
 

rachyou

XLDnaute Nouveau
Re : Problème pour masquer des choix d'une liste

Merci infiniment =) j'ai bien compris
la parsque je suis debutant sur le language VBA, je voudrais vous demander un deuxième truc si ca sera possible, et j'espère que je ne vous derange pas :)
dans le cas ou on n'a pas des nombre dans la liste du choix mais on a des mots comme par exemple une liste qui contient ( Moteur1, Moteur 2, Moteur 3) et je voudrais appliquer le meme code que vous m'avez donnez, que dois-je faire comme modification dans cette ligne de code :
ad = Feuil2.Cells(5, 2).Address & ":" & Feuil2.Cells(5, ActiveSheet.Range("b6") + 1).Address
ThisWorkbook.Names("armoire_moteur").Value = "=feuil2!" & ad
et merci en avance :)
 

sousou

XLDnaute Barbatruc
Re : Problème pour masquer des choix d'une liste

bonjour
voilà ce que je te propose
Dans la boucle for tu compte pour savoir quel type a été chosit ainsi tu retrouve un nombre.

Tout ceci n'est qu'exemple.
Dans ton test tu ne test pas la cellule qui change.. ect

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False

Rows("9").Hidden = [B6] = 1 'Masquer les lignes 6:18 si choix de moteurs=non

'ad = Feuil2.Cells(5, 2).Address & ":" & Feuil2.Cells(5, ActiveSheet.Range("b6") + 1).Address

' solution avecdu texte:
n = 0
For Each i In ThisWorkbook.Names("nbre_moteur").RefersToRange
If ActiveSheet.Range("b6") = i Then
k1 = n
Exit For
End If
n = n + 1
Next
ad = Feuil2.Cells(5, 2).Address & ":" & Feuil2.Cells(5, k1 + 2).Address

'_________________________

ThisWorkbook.Names("armoire_moteur").Value = "=feuil2!" & ad


End Sub
 

Discussions similaires

Réponses
3
Affichages
245

Statistiques des forums

Discussions
312 196
Messages
2 086 098
Membres
103 116
dernier inscrit
kutobi87