Les mystères d'Excel et/ou vba

13GIBE59

XLDnaute Accro
Bonjour à toutes et à tous, bonjour le Forum.

Je sollicite aujourd'hui les spécialistes du vba non pas pour me trouver quelques lignes de code, mais pour m'expliquer un phénomène étrange concernant le vba, car si j'admets ne pas tout savoir (heureusement), j'aime comprendre les choses. :confused:

Dans le fichier joint, il y a 3 onglets qui représentent le même graphique :

-feuillle1, tout marche impec. Merci à Hulk qui m'a retrouvé le fil et à Bigfish le génial créateur du fichier. :):)

-feuille2, j'ai remplacé pour des raisons d'affinité la fonction RECHERCHEV par la fonction INDEX et le choix du nom (données -> validation) par une zone de liste déroulante "formulaire".
Là le code ne fonctionne plus. Les colonnes contenant les valeurs zéro ne se masquent pas. :mad:

-feuille3, en remplaçant la zld par une combobox, et en modifiant
Private Sub Worksheet_Change(ByVal Target As Range) par
Private Sub ComboBox1_Change() tout marche bien. :D
(Merci à RENAUDER -salut Eric !-pour le truc)

La question qui me turlupine est : pourquoi Excel en veut-il autant à la fonction INDEX et/ou aux zones de listes déroulantes ? :mad:

Merci d'avance pour vos éclairages. :rolleyes:

JB

PS : je m'excuse par avance si je réponds pas à vos messages. Je pars en déplacement professionnel et ne rentrerai que vendredi 29, à moins que...
 

Pièces jointes

  • Testok v1.zip
    21.6 KB · Affichages: 50

vbacrumble

XLDnaute Accro
Re : Les mystères d'Excel et/ou vba

Bonsoir


Effectivement, et mystère toujours irrésolu


Mais ...ça marche pour moi comme dirait Rick

(en faisant comme suit)

Code:
Sub Zonecombinée12_QuandChangement()
Dim MaCellule As Range
    For Each MaCellule In Range("M26:Q26")
        If MaCellule.Value = 0 Then
            'On Error Resume Next
            MaCellule.EntireColumn.Hidden = True
            ActiveSheet.ChartObjects("Chart 1").Activate
            ActiveChart.PlotVisibleOnly = True
        Else
            MaCellule.EntireColumn.Hidden = False
        End If
    Next
    'Range("D22").Select
End Sub

et en commentant le code VBA présent dans la feuille 2
 
Dernière édition:

nolich

XLDnaute Occasionnel
Re : Les mystères d'Excel et/ou vba

Bonsoir JB, vbacrumble et kjin, bonsoir à toutes et à tous :)

13GIBE59 à dit:
La question qui me turlupine est : pourquoi Excel en veut-il autant à la fonction INDEX et/ou aux zones de listes déroulantes ? :mad:

Meuh non ! J'ai saisis la formule suivante en M26 de ta Feuil3 :

=INDEX(E5:E8;EQUIV($L$26;$D$5:$D$8;0)) à tirer vers la droite, of course...

et la liste de validation en L26 : =$D$5:$D$8

et avec Worksheet_Change

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim MaCellule As Range
    For Each MaCellule In Range("M26:Q26")
        If MaCellule.Value = 0 Then
            On Error Resume Next
            MaCellule.EntireColumn.Hidden = True
            ActiveSheet.ChartObjects("Chart 4").Activate
            ActiveChart.PlotVisibleOnly = True
        Else
            MaCellule.EntireColumn.Hidden = False
        End If
    Next
    Range("L26").Select
End Sub

Et tout fonctionne parfaitement ;)

Tu vois qu'XL ne déteste pas INDEX / EQUIV :p

Par contre, kjin, l'évènement Calculate n'est peut-être pas trop conseillé pour ce genre d'opération car il est appelé autant de fois qu'il y a de cellules contenant une formule :rolleyes:

@+
 

kjin

XLDnaute Barbatruc
Re : Les mystères d'Excel et/ou vba

Bonsoir,
Nolich, je n'ai fait que répondre à la question, l'événement "Change" n'étant pas intercepté dans le cas précis que soumets JB.
Si tu remplaces la zone combinée par une liste de validation, tu es dans le cas de la feuil1, et JB signale bien que dans ce cas, ça fonctionne !
Sinon, affecter la macro directement à la zone combinée, comme l'a suggéré VbaCrumble.
A+
kjin
 

nolich

XLDnaute Occasionnel
Re : Les mystères d'Excel et/ou vba

Re :)

Tu me fais penser que l'évènement Worksheet_Change est également appelé plusieurs fois car la modification du nom entraîne 6 modifications de résultats :p

Ceci dit, je crois plutôt qu'il y a eu mauvaise utilisation de la fonction INDEX car JB ne par le pas d'EQUIV :rolleyes:

@+ sur un prochain fil :)

EDIT : Bin chuis bon pour le ZOP :D
 
Dernière édition:

Brigitte

XLDnaute Barbatruc
Re : Les mystères d'Excel et/ou vba

Bonsoir,

Moi je m'incruste juste pour saluer, sur la pointe des pieds, la présence de jeanmarie, à mon sens trop rarement présent (mais t'as le droit, bien sûr)....

Bisous à toi, tu nous manques avec tes formules, tes matricielles, and so on ...
 

13GIBE59

XLDnaute Accro
Re : Les mystères d'Excel et/ou vba

Bonjour le forum, bonjour à tous, et remerciements à tous ceux qui se sont intéressés à mon "problème".:):D:)

vba crumble, nolich, merci de vos réponses instructives
kjin, merci de m'avoir fait découvrir l'évènement Worksheet calculate, dont la différence ténue avec Worksheet change est simple : ou ça marche, ou ça marche pas ! :p
brigitte, merci de ton message dont j'ai compris la nostalgie quand j'ai découvert le fichier de jeanmarie...:)
jeanmarie, merci de m'avoir soufflé avec ton fichier. Il faut reconnaître que dans la formule :
Code:
=TRANSPOSE(PETITE.VALEUR(SI(DECALER(E$4:I$4;EQUIV(D16;D$5:D$8;0);)>0;COLONNE(A:E);6);LIGNE($1:$5)))
combiner les fonctions
TRANSPOSE - PETITE.VALEUR - SI - DECALER - EQUIV - COLONNE et LIGNE dans une formule matricielle relève du génie, du virtuose ou de l'extraterrestre...:eek:
Pour ma part, je maîtrise très bien parmi toutes ces fonctions la fonction SI...
Il me faudra à peu près 6 mois pour tout comprendre...:confused::confused::confused:

Merci encore à tous (ce masculin générique englobe également Brigitte, dont j'adore l'avatar...);)

JB
 

Brigitte

XLDnaute Barbatruc
Re : Les mystères d'Excel et/ou vba

Bonsoir JB (encore un, c fou)

Merci pour ton petit clin d'oeil à mon avatar. C'est moi à deux ans, j'étais trognon, hein ? pourtant parait que je m'étais fait gronder sévère... Voici la photo en grand pour toi... (arf)

Brigitte zinnia.jpg
 

Pièces jointes

  • Brigitte zinnia.jpg
    Brigitte zinnia.jpg
    94.5 KB · Affichages: 258
  • Brigitte zinnia.jpg
    Brigitte zinnia.jpg
    94.5 KB · Affichages: 262
Dernière édition:

Brigitte

XLDnaute Barbatruc
Re : Les mystères d'Excel et/ou vba

Coucou,

C'est gentil Jean Marc, mais bon... je ne crois pas que tu aies raison... Je n'ai pas changé... dans la tête et le coeur (toujours aussi gamine : enthousiaste d'un rien, d'une fleur, d'un sourire, riant d'un rien, triste d'une méchanceté, contrariée par les vents contraires, et vite de nouveau en selle)..

Sinon... malheureusement, les couettes sont parties, la blondeur aussi, etc...
 

Discussions similaires

Statistiques des forums

Discussions
312 332
Messages
2 087 362
Membres
103 529
dernier inscrit
verdier.christophe@outloo