PB sur EXCEL - VB/VBA/VBS - Programmation
Marsh Posté le 04-06-2018 à 13:51:10
Peut être ceci pourra t'il t'aider ?
https://www.extendoffice.com/docume [...] value.html
Marsh Posté le 04-06-2018 à 14:32:21
Merci pour le lien très intéressant, c'est la seconde solution qui intéresserait, à savoir en VB, le souci c'est que ce n'est pas exactement ce que je veux, dans l'exemple il supprime la ligne si une valeur est supérieure à 3000, moi je veux la même chose avec la valuer exacte "FAUX". Or ne sachant pas programmer je ne sais pas ce qu'il faut changer.
je remet ici les lignes de codes :
Sub HideRow()
'Updateby20150618
Dim Rng As Range
Dim WorkRng As Range
Dim xNumber As Integer
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
xNumber = Application.InputBox("Number", xTitleId, "", Type:=1)
For Each Rng In WorkRng
<span style="background-color:#ff0"> Rng.EntireRow.Hidden = Rng.Value < xNumber</span>
Next
End Sub
Que faut il changer là dedans ?? J'ai bien essayer mais ça ne marche pas .
D'ailleurs j'ai essayer leur code à eux en changeant mes valeurs, et ça me met erreur de compilation ...
Marsh Posté le 04-06-2018 à 14:49:00
Alors pardon si, j'ai réussi à voir ce qui n'allait pas et à le faire marcher :
Sub HideRow()
Dim Rng As Range
Dim WorkRng As Range
Dim xNumber As Integer
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
xNumber = Application.InputBox("Number", xTitleId, "", Type:=1)
For Each Rng In WorkRng
Rng.EntireRow.Hidden = Rng.Value = xNumber
Next
End Sub
J'essaye de voir maintenant pour que ça se fasse automatiquement ou à défaut avec un bouton,
Merci encore
Marsh Posté le 04-06-2018 à 15:04:34
Alors en fait non ça ne va pas
En effet c'est ce que je veux sauf que à chaque fois que j'exécute la macro,
je doit choisir les lignes et la valeur d'application.
Moi c'est toujours la colonne A:A et ça sera toujours la valeur "FAUX" ce qui me permettrais via un bouton d'appliquer la macro tout de suite.
Là à chaque fois je dois redonner les valeurs.
Marsh Posté le 04-06-2018 à 17:11:33
Bonjour,
Dans le module de la feuille :
Code :
|
Mais il faudrait restreindre la zone d'exécution en ciblant les antécédent.
I.e. au lieu de mettre simplement :
Code :
|
Mettre quelque chose comme (à adapter):
Code :
|
Marsh Posté le 05-06-2018 à 15:25:27
Bonjour Patrice,
Merci beaucoup ça marche, malheureusement là encore même en faisant une restriction comme tu le suggères j'ai un moment donné un BUG où il me dit qu'il y à trop de données.
Finalement je pense que c'est faisable en faisant une combinaison de conditionnelle mais faut que je rajoute quelque colonnes masquées à mon avis.
Mais déjà je maitriserais un peu plus le sujet.
Merci encore à ceux qui m'ont répondu;
Marsh Posté le 05-06-2018 à 16:14:47
gugi976 a écrit : Bonjour Patrice, |
Ce que je suggérais, c'est de surveiller les antécédents :
l'évènement _Change ne produit pas lorsque le résultat d'une formule change, mais uniquement lors de la modification d'une donnée (un antécédent) qui entraine la modification du résultat de la dite formule.
D'où la suggestion de ne surveiller que la modification de ces données en restreignant l'exécution de la procédure à la plage qui les contient avec intersect().
Marsh Posté le 04-06-2018 à 10:23:32
Bonjour à tous,
Voilà j'ai un souci avec un tableau Excel. Ce que je veux faire est tout simple mais n'ayant pas un très bon niveau, je n'y arrive pas.
Alors j'ai une feuille Excel avec un tableau en face duquel pour chaque ligne en fonction d'un certain critère j'ai "VRAI" OU "FAUX"
Ce que j'aimerais tout simplement c'est que toutes les lignes qui contiennent une cellule "FAUX" soit masquées et s'affiche si non. Ou à l'inverse toutes les lignes marquées "VRAI" s'affichent ou se masquent si non.
Ce tableau étant en permanence utilisé, il faut que ça puisse se faire automatiquement à chaque fois que ça se modifie ( et donc si un "FAUX" devient "VRAI" la ligne s'affiche et vis et versa)
Pour info les "VRAI" ou "FAUX" seront toujours dans une seule et même colonne (A:A)
Je vous remercie,