Menu

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

jean300 192 Messages postés jeudi 11 août 2016Date d'inscription 11 juin 2018 Dernière intervention - 3 sept. 2017 à 23:10 - Dernière réponse : jean300 192 Messages postés jeudi 11 août 2016Date d'inscription 11 juin 2018 Dernière intervention
- 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 

Votre réponse

13 réponses

via55 9324 Messages postés mercredi 16 janvier 2013Date d'inscription 15 juin 2018 Dernière intervention - 3 sept. 2017 à 23:22
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
Commenter la réponse de via55
jean300 192 Messages postés jeudi 11 août 2016Date d'inscription 11 juin 2018 Dernière intervention - 4 sept. 2017 à 07:48
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
Commenter la réponse de jean300
jean300 192 Messages postés jeudi 11 août 2016Date d'inscription 11 juin 2018 Dernière intervention - 4 sept. 2017 à 07:54
0
Merci
tu me demande :
Quelle valeur doit déclencher le code ?
Un chiffre et seulement un chiffre.
Commenter la réponse de jean300
via55 9324 Messages postés mercredi 16 janvier 2013Date d'inscription 15 juin 2018 Dernière intervention - 4 sept. 2017 à 10:48
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
Commenter la réponse de via55
jean300 192 Messages postés jeudi 11 août 2016Date d'inscription 11 juin 2018 Dernière intervention - 4 sept. 2017 à 12:44
0
Merci
Bonjour via,
Excuse-moi c'est la feuille Choix

l'exemple de ce que je souhaite :

http://www.cjoint.com/c/GIekQ2xbSZU
Commenter la réponse de jean300
via55 9324 Messages postés mercredi 16 janvier 2013Date d'inscription 15 juin 2018 Dernière intervention - 4 sept. 2017 à 18:29
0
Merci
Re,

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

Cdlmnt
Via
Commenter la réponse de via55
jean300 192 Messages postés jeudi 11 août 2016Date d'inscription 11 juin 2018 Dernière intervention - 5 sept. 2017 à 09:25
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
Commenter la réponse de jean300
via55 9324 Messages postés mercredi 16 janvier 2013Date d'inscription 15 juin 2018 Dernière intervention - 5 sept. 2017 à 13:27
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
Commenter la réponse de via55
jean300 192 Messages postés jeudi 11 août 2016Date d'inscription 11 juin 2018 Dernière intervention - 5 sept. 2017 à 23:15
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.
Commenter la réponse de jean300
via55 9324 Messages postés mercredi 16 janvier 2013Date d'inscription 15 juin 2018 Dernière intervention - 6 sept. 2017 à 13:47
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
Commenter la réponse de via55
jean300 192 Messages postés jeudi 11 août 2016Date d'inscription 11 juin 2018 Dernière intervention - 7 sept. 2017 à 10:29
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.
Commenter la réponse de jean300
via55 9324 Messages postés mercredi 16 janvier 2013Date d'inscription 15 juin 2018 Dernière intervention - 7 sept. 2017 à 18:45
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
Commenter la réponse de via55
jean300 192 Messages postés jeudi 11 août 2016Date d'inscription 11 juin 2018 Dernière intervention - 7 sept. 2017 à 19:16
0
Merci
Bonsoir via55,
Désolé mais le code ne fonctionne pas, il met seulement la feuille en surbrillance à partir de A2
Cordialement.
Commenter la réponse de jean300