Recherche V : lier des changements d'une feuille à une bdd
Bonjour à tous,
Je suis actuellement en train de créer une base de données avec le nom de plusieurs clients et les infos les concernant. L'idée est de pouvoir établir un suivi de leurs dossiers et projets par plusieurs membres de l'équipe à travers le Drive.
Etant donné que chaque membre n'a pas les mêmes fonctions et que la feuille comprenant toutes les informations est extrêmement longue (des dizaines de colonnes), j'ai créé plusieurs onglets 1), 2), 3) où chacun, selon les résultats qu'ils cherche pourra accéder, sélectionner le nom du client qui l'intéresse et les résultats le concernant apparaissent via une recherche V avec les colonne désirées (extraites de la grande bdd).
Par exemple, le secrétaire de l'organisme pourra aller sur l'onglet "suivi des dossiers" et voir où en est l'avancée de chaque dossiers pour lesquels sur la feuille 1) j'ai créé une liste déroulante ("dossier à faire" "en cours" "envoyé"). Mais cette liste est disponible sur la grande bdd (feuille 1)) et lorsque l'on va dans les autres feuilles avec la recherche V, je n'ai plus cette liste déroulante qui apparaît.
J'aimerais donc savoir comment peut-on faire pour lier la recherche V ( feuille 2) ) à la feuille 1 où se trouvent toutes les données. C'est-à-dire que lorsque je cherche dans ma feuille 2) "monsieur Dupont" dans la liste déroulante, l'avancée de ses dossiers apparaissent sur la ligne mais que je puisse modifier sur cette même ligne "dossier à faire" à "dossier en cours" et que ça se modifie en conséquence sur la feuille 1 dès que l'on met à jour.
Je vous ai fait un exemple pour mieux comprendre.
Y-a-t-il donc une possibilité de modifier les résultats sur la feuille 2 et que cela se modifie aussi sur la feuille 1 ?
Sachant que la feuille 1 est celle qui sera toujours remplie en 1ere puisque ce sont les résultats lors d'enquêtes, questionnaires etc qui sont regroupés sur cette bdd.
Merci.
Bonjour
Forcément, le filtre crée une copie renouvelée à chaque fois ... il faut donc aussi synchroniser les feuilles résultat du filtre avec la feuille mère.
Cas traité en août 2019
je vais voir ton cas pour adapter s'il le faut
Il te faut un identifiant "béton" de ta ligne pour que la remontée soit fait au bon endroit.
à tester, n'hésite pas s'il y a des bugs, je corrigerai (je ne suis pas à l'abri)
conditions
- les onglets non réactifs doivent commencer par
_ - les données sont sous forme de tableau structuré
- un identifiant est ajouté colonne
#
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Left(Sh.Name, 1) <> "_" Then filtrer Sh
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Left(Sh.Name, 1) = "_" Then Exit Sub
If Target.Count > 1 Then
ohnon True
MsgBox "Une seule modification à la fois !"
Exit Sub
End If
If Not Intersect(Target, Sh.Range("B1").CurrentRegion) Is Nothing Then filtrer Sh
If Not Intersect(Target, Sh.Range("A4").CurrentRegion) Is Nothing Then
If Target.Column = 1 Then ohnon True: Exit Sub
With Sheets("_base de données").ListObjects(1)
If Sh.Cells(Target.Row, 1) <> "" Then
.ListColumns(Sh.Cells(4, Target.Column).Value).DataBodyRange.Rows(Sh.Cells(Target.Row, 1).Value).Value = Target
End If
End With
End If
End Sub
Sub filtrer(Sh As Worksheet)
Sheets(1).ListObjects(1).Range.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sh.Range("B1").CurrentRegion, _
copyToRange:=Sh.Range("A4").CurrentRegion.Resize(1), Unique:=False
End Sub
Sub ohnon(ok As Boolean)
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = False
End Sub