Bonjour,
J'ai un rapide travail de fichier dans le cadre de mon stage. Le problème est le suivant, le fichier comporte des demandes de logement avec une multitude de colonne dont 10 colonnes qui représente le choix des communes (Feuille "Stats" Colonne BB à BH) Je souhaitais y intégrer une cellule (cellule BB1) qui afficherai la liste villes saisies et une fois la ville choisi que toutes les demandes ayant la ville saisie dans les 10 communes de choix s'affichent.
Pour cela j'ai établi un code à l'aide de différents aides sur les forums cependant je n'arrive pas a voir pourquoi la liste déroulante ne s'affiche pas cellule BB1. Seul le balayage des colonnes pour établir la liste de villes saisies fonctionne. Il faudrait une liste déroulante (liste déroulante avec comme choix toutes les villes détectés par le balayage).
Merci de votre aide. Le fichier est en PJ pour y voir plus claire.
J'ai un rapide travail de fichier dans le cadre de mon stage. Le problème est le suivant, le fichier comporte des demandes de logement avec une multitude de colonne dont 10 colonnes qui représente le choix des communes (Feuille "Stats" Colonne BB à BH) Je souhaitais y intégrer une cellule (cellule BB1) qui afficherai la liste villes saisies et une fois la ville choisi que toutes les demandes ayant la ville saisie dans les 10 communes de choix s'affichent.
Pour cela j'ai établi un code à l'aide de différents aides sur les forums cependant je n'arrive pas a voir pourquoi la liste déroulante ne s'affiche pas cellule BB1. Seul le balayage des colonnes pour établir la liste de villes saisies fonctionne. Il faudrait une liste déroulante (liste déroulante avec comme choix toutes les villes détectés par le balayage).
Merci de votre aide. Le fichier est en PJ pour y voir plus claire.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'creation de liste a partir de la feuille Liste
'---Target est la cellule avant changeement
'creation de la liste1
For N = 3 To Sheets("Listes").Range("A65536").End(xlUp).Row
liste = liste & Sheets("Listes").Range("A" & N) & ","
If N > 3 Then liste1 = liste1 & Sheets("Listes").Range("A" & N) & ","
Next N
'si on rajoute un numéro de demande
If Target.Column = 54 And Target.Row > 3 Then
'mise a jour de la liste de validation des colonnes O e P
With Target.Offset(0, 54).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=liste
End With
With Target.Offset(0, 55).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=liste
End With
End If
'Si c'est la cellule bb1 qui a changé
If Target.Address = "$BB$1" Then
Application.ScreenUpdating = False
'on demasque toutes les lignes
Rows.Hidden = False
'pour Tous on quitte la sub
If Target = "TOUS" Then Exit Sub
'balayage
For N = 6 To Range("BB65536").End(xlUp).Row
'si colonne
If Range("BB" & N) = Target Or Range("BC" & N) = Target Or Range("BD" & N) = Target Or Range("BE" & N) = Target Or Range("BF" & N) = Target Or Range("BG" & N) = Target Or Range("BH" & N) = Target Then
'on demasque la ligne
Rows(N).Hidden = False
Else
'sinon on la masque
Rows(N).Hidden = True
End If
Next N
Application.ScreenUpdating = True
End If
End Sub