Code masquant lignes et colonnes (excel 2003) [Résolu/Fermé]

Messages postés
323
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
8 juillet 2019
- - Dernière réponse : jean300
Messages postés
323
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
8 juillet 2019
- 7 sept. 2017 à 19:16
Bonjour,
Je recherche un code pour lancer à partir d'un bouton placé sur la feuille "Accueil"; si valeur (un chiffre) se trouve dans une des colonnes S, T ou U application du code (filtrage de ces lignes) car le filtre ne permet qu'une seule colonne et masquer les lignes "vides" ainsi que les colonnes C:E,H,N:V suivi de l'impression de la feuille et rendre la feuille "Accueil" à son état d'origine (toutes les lignes et colonnes visibles). Un Msgbox en début de code si aucune valeur ne se trouve dans ces colonnes indiquant "Aucun État ne peut être imprimé".
En vous remerciant.
ps : je ne connais pas grand chose en Vba.


Afficher la suite 

13 réponses

Messages postés
10931
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 août 2019
1361
0
Merci
Bonjour jean,

1) Quelle valeur doit déclencher le code ?

2) Poste un exemple de ton fichier sur cjoint.com, fais créer un lien que tu copies et reviens coller ici; qu'on puisse avoir une base de travail de départ

Cdlmnt
Via
Messages postés
323
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
8 juillet 2019
5
0
Merci
Bonjour via,
Content de te revoir, me suivrais-tu à la trace ?
En te remerciant.
Voici le fichier
http://www.cjoint.com/c/GIefU3EF3vU
Messages postés
323
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
8 juillet 2019
5
0
Merci
tu me demande :
Quelle valeur doit déclencher le code ?
Un chiffre et seulement un chiffre.
Messages postés
10931
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 août 2019
1361
0
Merci
Re,

Tu parlais d'une valeur dans les colonnes de la feuille Accueil mais il n'y a pas de feuille Accueil dans le fichier envoyé !!
Précises mieux que ce que tu veux avec un exemple

Cdlmnt
Via
Messages postés
323
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
8 juillet 2019
5
0
Merci
Bonjour via,
Excuse-moi c'est la feuille Choix

l'exemple de ce que je souhaite :

http://www.cjoint.com/c/GIekQ2xbSZU
Messages postés
10931
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 août 2019
1361
0
Merci
Re,

Ton fichier en retour :
http://www.cjoint.com/c/GIeqCDnBya1

Cdlmnt
Via
Messages postés
323
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
8 juillet 2019
5
0
Merci
Bonjour via,
Non, ce n'est pas ce que je souhaite.
J'ai, semble-t-il réussi à modifier le code qui se trouve dans le module Heberger, mais il est un peu lent, si tu peux l'accélérer.
En te remerciant et te souhaitant une excellente journée.
Je met le fichier :

http://www.cjoint.com/c/GIfhvj4nkgU
Messages postés
10931
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 août 2019
1361
0
Merci
Bonjour

J'ai vu ton code complétement différent mais qui ne fonctionne pas il ne masque aucune ligne !
Par contre n'ayant pas l'habitude des instructions que tu as utilisé je ne sais pas le corriger
Apparemment tu voudrais masquer toutes les lignes ou il n'y a aucune valeur dans les colonnes hebergement; c'est bien ce que faisait mon code (et rapidement) mais tu me dis que ce n'est pas ce que tu souhaites ! Sois plus explicite qu'est ce qui ne va pas dans mon code ?

Cdlmnt
Via
Messages postés
323
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
8 juillet 2019
5
0
Merci
Bonjour via,
Tu écris :
J'ai vu ton code complétement différent mais qui ne fonctionne pas il ne masque aucune ligne !
Curieux car chez il fonctionne.

Tu écris :
Apparemment tu voudrais masquer toutes les lignes ou il n'y a aucune valeur dans les colonnes hébergement; c'est bien ce que faisait mon code (et rapidement) mais tu me dis que ce n'est pas ce que tu souhaites ! Sois plus explicite qu'est ce qui ne va pas dans mon code ?
Je n'ai rien contre ton code si ce n'est qu'il a les même problèmes de lenteur
la 1ère fois c'est bon mais si je re-clic de nouveau c'est beaucoup plus long et je n'arrive pas à comprendre.

En te remerciant de tout le temps que tu me consacre.
Messages postés
10931
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 août 2019
1361
0
Merci
Bonjour jean

Je n'ai plus d'explications que toi quant à lenteur qui s'accroit avec le nombre de fois, je n'ai rien remarqué de tel et je ne vois pas pourquoi en partant de la même base et en appliquant la même macro plusieurs fois certaines demanderaient plus de temps !

Une seule idée d'amélioration me vient : s'il y a plus de lignes à masquer qu'à laisser visibles il serait plus judicieux de faire masquer toutes les lignes avec une seule instruction puis avec une boucle sur les lignes ne démasquer que celles nécessaires, tu y gagneras peut être en temps de traitement.
Autre piste au lieu de sonder les 3 colonnes hébergements, faire une 4eme colonne qui avec formule SI comporterait 1 si une des 3 colonnes précédentes comporte une valeur et 0 sinon, puis ensuite faire appliquer un filtre du tableau sur cette colonne

Cdlmnt
Via
Messages postés
323
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
8 juillet 2019
5
0
Merci
Bonjour via55,
Tu me dis :
Une seule idée d'amélioration me vient : s'il y a plus de lignes à masquer qu'à laisser visibles il serait plus judicieux de faire masquer toutes les lignes avec une seule instruction puis avec une boucle sur les lignes ne démasquer que celles nécessaires, tu y gagneras peut être en temps de traitement.

Aurais-tu un code adapté à cela que je pourrais ajouter dans le code ?
Masquer les lignes de la feuille Base si rien n'est écrit dans les colonnes S - T ou U et les ré-afficher en fin de traitement.
Environ 300 lignes.
Messages postés
10931
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 août 2019
1361
0
Merci
Bonjour

Ligne = Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
'cache toutes les lignes
Rows("2:" & Ligne).Select
    Selection.EntireRow.Hidden = True
For n = 2 To Ligne
' demasque les lignes hebergement non vides
If Range("S" & n) + Range("T" & n) <> Range("U" & n) > 0 Then
Rows(n & ":" & n).Select
 Selection.EntireRow.Hidden = False
 Next
 
 'démasque toutes les lignes
Rows("2:" & Ligne).Select
    Selection.EntireRow.Hidden = False


Tu peux t'inspirer de ceci

Cdlmnt
Via
Messages postés
323
Date d'inscription
jeudi 11 août 2016
Statut
Membre
Dernière intervention
8 juillet 2019
5
0
Merci
Bonsoir via55,
Désolé mais le code ne fonctionne pas, il met seulement la feuille en surbrillance à partir de A2
Cordialement.