Afficher / masquer automatiquement une ligne en fonction de la valeur d'une saisie

mirooz

XLDnaute Nouveau
Bonjour à tous! C'est mon premier message sur ce forum qui m'a été bien utile jusqu'à présent en tant que simple lecteur mais je dois à présent soliciter votre aide car je n'ai pas trouvé de réponse précise à mon problème.

Vous trouverez ci-joint un fichier comportant un exemple de ce que je souhaite effectuer:

Un tableau contient des éléments dont le montant est soumis à TVA.
Certains utilisent un taux normal de 19,6% (en bleu) et d'autre un montant qui ne correspond pas à un taux défini ou égal à 0 (en rouge)

Un deuxième tableau à été créé de manière à reprendre la même forme que le premier mais en ne recopiant que les lignes dont le montant est soumi à un taux de 19,6%
Certaines lignes sont donc vides et je souhaite faire en sorte que ces dernières soient masquées automatiquement (pas supprimées) et qu'elle réaparaissent automatiquement si on décide finalement d'appliquer le taux de 19,6% au montant du premier tableau auquel elles font référence.

J'ai déjà trouvé sur ce forum une macro qui permet d'afficher et masquer les lignes lorsque celle ci est solicitée (par un bouton) mais je souhaite que la modification soit prise en compte dès la saisie, donc automatiquement.

Voila, j'éspère avoir été suffisamment clair, mais l'exemple du fichier est relativement simple.

Merci d'avance
 

Pièces jointes

  • afficher_masquer_lignes.xls
    28 KB · Affichages: 127
  • afficher_masquer_lignes.xls
    28 KB · Affichages: 142
  • afficher_masquer_lignes.xls
    28 KB · Affichages: 132

wilfried_42

XLDnaute Barbatruc
Re : Afficher / masquer automatiquement une ligne en fonction de la valeur d'une saisie

bonjour mirooz

j'ai pris ton fichier, j'ai vu qu'il y avait beaucoup de formule, or il faut un element declancheur pour lancer une macro dans ton classeur, un bouton
ca peu etre aussi la saisie d'une cellule

la colonne tva,toute les tva ont ete remises ne place, saisis en une mauvaise
et ensuite remet la bonne
 

Pièces jointes

  • afficher_masquer_lignes.xls
    30.5 KB · Affichages: 197
  • afficher_masquer_lignes.xls
    30.5 KB · Affichages: 200
  • afficher_masquer_lignes.xls
    30.5 KB · Affichages: 191

pierrejean

XLDnaute Barbatruc
Re : Afficher / masquer automatiquement une ligne en fonction de la valeur d'une saisie

bonsoir mirooz

vois si cela te convient

le masquage se fait lors de n'importe quelle saisie dans la feuille
un bouton permet de tout afficher

une contrainte :

ecrire l'equation Tva sous la forme: =C8*E$5 en respectant le $E5


oups avais pas rafraichi

salut wilfried
 

Pièces jointes

  • afficher_masquer_lignes.xls
    37.5 KB · Affichages: 168
  • afficher_masquer_lignes.xls
    37.5 KB · Affichages: 171
  • afficher_masquer_lignes.xls
    37.5 KB · Affichages: 179

mirooz

XLDnaute Nouveau
Re : Afficher / masquer automatiquement une ligne en fonction de la valeur d'une sais

Merci beaucoup pour votre aide précieuse wilfried_42 et pierrejean, vous avez trouvé la solution à mon problème.
Je vais maintenant vérifier si cela fonctionne dans mon projet.

Bonne soirée à vous ;)
 

mirooz

XLDnaute Nouveau
Re : Afficher / masquer automatiquement une ligne en fonction de la valeur d'une sais

J'ai testé ces deux solutions et celle de Wilfried me convient parfaitement.
Cependant j'ai toujours un problème: dans le fichier test, la fonction fonctionne très bien (les lignes disparaissent et apparaissent automatiquement) mais lorsque je réinsère la même macro dans mon projet en adaptant la selection de cellules concernées, les lignes ne disparaissent pas tant que je ne solicite pas l'execution de la macro. Y a t-il quelque chose que j'aurai oublié??

Merci
 

mirooz

XLDnaute Nouveau
Re : Afficher / masquer automatiquement une ligne en fonction de la valeur d'une sais

Le voici en version simplifiée, il fonctionne de la même manière que l'autre.
Par contre je souhaite également que la fonction s'applique au deuxième tableau qui comporte les éléments soumis à un montant de TVA différent du taux normal.

Je souhaite donc que la macro s'applique aux deux tableaux. Elle est présente dans le fichier et ne s'applique pour l'instant qu'au premier et n'est toujours pas automatisée.

Merci d'avance si vous avez le temps d'y jeter un oeuil.
 

Pièces jointes

  • test_lignes_tva.xls
    39.5 KB · Affichages: 151
  • test_lignes_tva.xls
    39.5 KB · Affichages: 148
  • test_lignes_tva.xls
    39.5 KB · Affichages: 148

wilfried_42

XLDnaute Barbatruc
Re : Afficher / masquer automatiquement une ligne en fonction de la valeur d'une sais

re:

je viens de recupérer ton tableau.

c'est fait pour le premier, mais je ne comprends pas pour le deuxieme, c'est la TVA specifique, donc le system doit etre iversé, dis moi si je me trompe

@ te lire
 

wilfried_42

XLDnaute Barbatruc
Re : Afficher / masquer automatiquement une ligne en fonction de la valeur d'une sais

re:

la premiere partie, c'est ok, j'ai inversé pour la 2eme
 

Pièces jointes

  • test_lignes_tva.xls
    42.5 KB · Affichages: 142
  • test_lignes_tva.xls
    42.5 KB · Affichages: 148
  • test_lignes_tva.xls
    42.5 KB · Affichages: 143

mirooz

XLDnaute Nouveau
Re : Afficher / masquer automatiquement une ligne en fonction de la valeur d'une sais

Salut Wilfried, ta solution me convient, cependant j'ai rencontré quelques soucis lorsque je changeais des valeurs ou lorsque je supprimais un montant. En effet les lignes ne disparaissaient pas systématiquement ou des lignes vides apparaissaient sans raison.

Cependant grace à ton aide et à la macro trouvée sur ce forum que j'utilisais au début, j'ai enfin trouvé une solution.
J'ai tout simplement adapté cette macro à mon fichier et je l'ai automatisée pour qu'elle se déclenche à chaque saisie dans les cellules de TVA (ce que je n'avais pas réussi à faire jusque là)

Je laisse le fichier pour qu'il puisse servir à d'autres.

Merci encore pour ton aide Wilfried.
 

Pièces jointes

  • afficher_masquer_lignes.zip
    14.9 KB · Affichages: 87
  • afficher_masquer_lignes.zip
    14.9 KB · Affichages: 79
  • afficher_masquer_lignes.zip
    14.9 KB · Affichages: 90

mirooz

XLDnaute Nouveau
Re : Afficher / masquer automatiquement une ligne en fonction de la valeur d'une sais

Bonjour,
Je suis maintenant confronté à une nouvelle contrainte:

Les deux tableaux de TVA sont maintenant situés sur une autre feuile que celui de saisie.
Je souhaite que lorsque j'entre ou modifie un montant de TVA sur le tableau de saisie de la feuille 1, la macro s'active pour les tableaux qui sont maintenant situés sur la feuille 2.

J'ai essayé avec la fonction Sheets("Feuil2").Activate
With ActiveSheet
mais je ne pense pas que cela puisse fonctionner comme je l'ai fait.
 

Pièces jointes

  • afficher_masquer_lignes.zip
    15.3 KB · Affichages: 84
  • afficher_masquer_lignes.zip
    15.3 KB · Affichages: 86
  • afficher_masquer_lignes.zip
    15.3 KB · Affichages: 88

wilfried_42

XLDnaute Barbatruc
Re : Afficher / masquer automatiquement une ligne en fonction de la valeur d'une sais

re:

tu n'etais pas loin de la solution.

voici ta macro :

With Sheets("Feuil2")

For Each Cell In .Range("F5:F18")

Cpt = 0
For i = 0 To 11
If Cell.Offset(0, i) <> "" Then
Cpt = Cpt + 1
End If
Next
If Cpt = 0 Then
Cell.EntireRow.Hidden = True
Else
Cell.EntireRow.Hidden = False
End If
Next

For Each Cell In .Range("F22:F35")
Cpt = 0
For i = 0 To 11
If .Cell.Offset(0, i) <> "" Then
Cpt = Cpt + 1
End If
Next
If Cpt = 0 Then
Cell.EntireRow.Hidden = True
Else
Cell.EntireRow.Hidden = False
End If
Next
End With
End Sub

For Each Cell In .Range("F5:F18")

tu as 2 points à mettre, j'ai modifié tes activate et select, ils sont inutiles et ralentissent la macro
 

mirooz

XLDnaute Nouveau
Re : Afficher / masquer automatiquement une ligne en fonction de la valeur d'une sais

Eh bien le moins qu'on puisse dire c'est que tu es un rapide pour répondre ^^

En tout cas merci pour ton aide, ça fonctionne comme sur des roulettes.
 

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 299
Membres
103 172
dernier inscrit
Aurelyan