Worksheet_Change et liste déroulante

Atiom

XLDnaute Occasionnel
Bonjour,

Lorsque la feuille change ( Worksheet_Change(ByVal Target As Range) Je souhaiterait obtenir une macro afin d'pouvoir afficher ( ou extraite ) les valeurs du tableau ( A4:BB2000), selon le valeur de la liste en A2 ( sans doublons )).

Après beaucoup de recherches sur le net je constate qu’Il y a plusieurs méthodes et je suis un peux perdu.

Merci de votre aide

Ci-joint un fichier !
 

Pièces jointes

  • Extraire _atiom.xlsm
    22.9 KB · Affichages: 34

Atiom

XLDnaute Occasionnel
Bonsoir JBARBE,

Tu as bien fait d’essayer de régler ce problème !:)

Et de laisser à Deschamps de régler ces des Bleus ! Apparemment il y pas mal à faire !;)

Merci, ça fonctionne dans l’exemple, mas j’ai oublié de préciser que les données et la liste sont variables. Désolé !

Dans l’exemple il y 4 plantes mais il peux y a voir jusque à 1000 voir plus .
 

Lone-wolf

XLDnaute Barbatruc
Bonjour Atiom, JBARBE, le Forum :)

@Atiom: voilà qui est fait. Pour tout afficher, double-clique sur la feuille.

Si d'autres noms sont inscrits en colonne BB, il faudra modifier la plage dans le gestionnaire des noms.
 

Pièces jointes

  • Extraire _atiom2.xlsm
    22.9 KB · Affichages: 22

JBARBE

XLDnaute Barbatruc
Bonjour,
En effet, face aux américains c'est plutôt décevant !
Voici un autre exemple de macro et de plantes supplémentaires !
Désolé on ne peut faire autrement !
Bonne journée !

Bonjour Lone - wolf pas vu
 

Pièces jointes

  • Extraire _atiom.xlsm
    28.5 KB · Affichages: 20
  • Plantes.jpg
    Plantes.jpg
    15.6 KB · Affichages: 31

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous :),

Un autre essai :
  • qui construit la liste de validation de la cellule A2 de la feuille "Planning_général" quand les données de la feuille "BD_Annuelles" changent ou quand la feuille "Planning_général" est activée
  • une feuille "ListePlantes" a été ajoutée pour contenir la liste de validation triée.
  • la liste de validation de E2 s'appelle "ListeVegetaux"
  • si on choisit "*" dans la liste de A2 ou si on efface A2 alors on affiche toutes les lignes. Si on choisit un autre élément de la liste, alors on filtre les données selon un filtre élaboré.
  • la zone des critères du filtre élaboré est la zone CC1:CC2
  • le code est dans dans les modules des feuilles "Planning_général" et "BD_Annuelles"
 

Pièces jointes

  • atiom- Extraire- v1.xlsm
    30.5 KB · Affichages: 36

Atiom

XLDnaute Occasionnel
Bonjour à tous,

Merci pour toutes ces approches différentes elles fonctionnent toutes parfaitement.

Je risque de me faire tirer les oreilles car je n’ai pas était assez précis dans ma demande.

J’ai fait de testes avec les 3 propositions et ce n’ai pas facile à adapter à mes besoins.


Au départ la feuille ce présente comme ça ( La liste en A2 affiche Général )

1 ) A l'activation de la feuille une macro construit le tableau alimenté par la BD_Annuelles ( Plantes A à D ) et BD_ Vivaces ( Plantes E à H ) voir plus tard encore d'autres BD à venir.

2 ) Toujours à l'activation de la feuille les noms des plantes sans les séries est envoyé dans la colonne BB à chaque ligne.

Le but est d'obtenir en A2 une liste sans doublons et pouvoir afficher les plantes avec les séries correspondantes:

Ci-joint un fichier avec plus de précisions


Merci de votre aide.
 

Pièces jointes

  • Extraire _atiom3.xlsm
    17.4 KB · Affichages: 20

Lone-wolf

XLDnaute Barbatruc
Re Atiom

@Atiom

Ce que tu veux faire, tu peux le faire sur une seule feuille et non 1000 et ensuite trier par type. Regarde le fichier joint. La formule de concatenation je l'ai fait avec une macro. Une fois que tu as fait le choix, double-clique sur la feuille pour réafficher les lignes.
 

Pièces jointes

  • Extraire _atiom.xlsm
    29.9 KB · Affichages: 15
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re @Atiom ,

C'est ce que faisait mon premier fichier (sauf qu'il utilise une feuille indépendante pour stocker la liste de validation) et aussi ce que fait la v2.
La v2 est plus simple ; le code est uniquement dans le module de la feuille "Planning_général". Je n'utilise pas la colonne la colonne BB.
 

Pièces jointes

  • atiom- Extraire- v2a.xlsm
    27.7 KB · Affichages: 15

mapomme

XLDnaute Barbatruc
Supporter XLD
Re @Atiom,

Bon, une v3, assez rapide :
  • qui utilise le colonne BZ (colonne isolée du tableau planning contrairement à BB) de la feuille "Planning_général" pour stocker la liste de validation.
  • la liste de validation s'appelle : "ListeVegetaux"
  • la liste de validation est mise à jour à l'activation de "Planning_général"
  • la zone CC1:CC2 est utilisée pour le filtre élaboré
Edit : ajouté un fichier test pour 10 000 lignes de planning et environ 1 000 plantes différentes.
 

Pièces jointes

  • atiom- Extraire- v3.xlsm
    26.6 KB · Affichages: 19
  • atiom- Extraire- v3-test 10000 lignes.xlsm
    161.9 KB · Affichages: 25
Dernière édition:

Atiom

XLDnaute Occasionnel
Bonjour,

Avec la dernière version de mapomme j’ai finalement pu adapter à mes besoins.:)

Il s’agit d’un fichier avec beaucoup de liaisons !

Et tout les cas en grand merci à tous.:)

Bon après-midi et à bientôt
 

Atiom

XLDnaute Occasionnel
Rebonjour,

Encore une petite chose !

J’ai essai d’adapter au fichier de mapomme une somme des cellules visibles :

J’ai testé les 3 solutions ci-dessous et rien à faire ! Je n’obtiens pas le bon résultat ! Pourquoi ?


VB:
' ------- En BX1  =SOUS.TOTAL(109;BX4:BX1000

VB:
' ---- En BX2  =SommeCellulesVisibles(BX4:BX1000)


'  -------Dans le module 1
'  ---------------------------------------------
Function SommeCellulesVisibles(Plage As Range) As Double
      Dim plg As Range
     Dim Total As Double
    For Each plg In Plage
       If plg.Rows.Hidden = False And plg.Columns.Hidden = False Then
        Total = Total + plg.Value
      End If
  Next
    SommeCellulesVisibles = Total
  End Function
' ------------------------------------------------------------
VB:
' -------En BX3 =sommevisibles(BX4:BX1000)


' -------- Dans le module 1
'  ---------------------------------------------
Function SommeVisibles(champ As Range)
  Application.Volatile
  T = 0
  For Each c In champ
    If Not c.EntireRow.Hidden And Not c.EntireColumn.Hidden Then
      T = T + c.Value
    End If
  Next c
  SommeVisibles = T
End Function
' ----- ------------------------------------------------------------

Ci-joint le fichier !
 

Pièces jointes

  • Atiom- Extraire 10000 lignes avec culcule.xlsm
    160.7 KB · Affichages: 18

Discussions similaires

Réponses
36
Affichages
2 K

Statistiques des forums

Discussions
311 735
Messages
2 082 024
Membres
101 873
dernier inscrit
excellllll