Code masquant lignes et colonnes (excel 2003)

Résolu/Fermé
jean300 Messages postés 374 Date d'inscription jeudi 11 août 2016 Statut Membre Dernière intervention 13 janvier 2020 - 3 sept. 2017 à 23:10
jean300 Messages postés 374 Date d'inscription jeudi 11 août 2016 Statut Membre Dernière intervention 13 janvier 2020 - 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.


A voir également:

13 réponses

via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
3 sept. 2017 à 23:22
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
0
jean300 Messages postés 374 Date d'inscription jeudi 11 août 2016 Statut Membre Dernière intervention 13 janvier 2020 14
4 sept. 2017 à 07:48
Bonjour via,
Content de te revoir, me suivrais-tu à la trace ?
En te remerciant.
Voici le fichier
https://www.cjoint.com/c/GIefU3EF3vU
0
jean300 Messages postés 374 Date d'inscription jeudi 11 août 2016 Statut Membre Dernière intervention 13 janvier 2020 14
4 sept. 2017 à 07:54
tu me demande :
Quelle valeur doit déclencher le code ?
Un chiffre et seulement un chiffre.
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
4 sept. 2017 à 10:48
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jean300 Messages postés 374 Date d'inscription jeudi 11 août 2016 Statut Membre Dernière intervention 13 janvier 2020 14
4 sept. 2017 à 12:44
Bonjour via,
Excuse-moi c'est la feuille Choix

l'exemple de ce que je souhaite :

https://www.cjoint.com/c/GIekQ2xbSZU
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
4 sept. 2017 à 18:29
Re,

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

Cdlmnt
Via
0
jean300 Messages postés 374 Date d'inscription jeudi 11 août 2016 Statut Membre Dernière intervention 13 janvier 2020 14
5 sept. 2017 à 09:25
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 :

https://www.cjoint.com/c/GIfhvj4nkgU
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
5 sept. 2017 à 13:27
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
0
jean300 Messages postés 374 Date d'inscription jeudi 11 août 2016 Statut Membre Dernière intervention 13 janvier 2020 14
5 sept. 2017 à 23:15
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.
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
6 sept. 2017 à 13:47
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
0
jean300 Messages postés 374 Date d'inscription jeudi 11 août 2016 Statut Membre Dernière intervention 13 janvier 2020 14
7 sept. 2017 à 10:29
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.
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
7 sept. 2017 à 18:45
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
0
jean300 Messages postés 374 Date d'inscription jeudi 11 août 2016 Statut Membre Dernière intervention 13 janvier 2020 14
7 sept. 2017 à 19:16
Bonsoir via55,
Désolé mais le code ne fonctionne pas, il met seulement la feuille en surbrillance à partir de A2
Cordialement.
0