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

  • Initiateur de la discussion Initiateur de la discussion mirooz
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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

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

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 😉
 
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
 
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

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
 
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

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

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
 
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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour