Macro pour masquer des lignes

bonjour à toutes et à tous !

je débute sur les macros et je sèche sur celle-ci :

si la cellule a2 ou b2 de la feuille 1 sont égales à 0 alors il faut masquer les lignes 5 à 10 sur la feuille 2

merci de vos conseils avisés !

bonne journée !

Bonjour et bienvenue,

Clique droite sur l'onglet de la feuille 1 puis choisir l'otpion "visualiser le code".

Ensuite dans la fenêtre colle le code ci-dessous.

Private Sub Worksheet_Change(ByVal Target As Range)
'Macro Dan pour chb44
If Range("A2") = 0 Or Range("B2") = 0 Then
Sheets("feuil2").Rows("5:10").Hidden = True
Else: Sheets("feuil2").Rows("5:10").Hidden = False
End If
End Sub

Change tes valeurs et A2 et B2 pour voir le fonctionnement.

Si ok, n'oublie pas de cloturer le fil en cliquant sur le V en vert à coté du bouton Editer. Au besoin et si tu ne l'as pas fait, vois le lien qui t'a été envoyé dans ta BAL lors de ton inscription.

Amicalement

merci Dan ! ça marche !!

merci beaucoup !

-- 17 Mai 2010, 21:36 --

la macro marche mais je rencontre des difficultés sur mon fichier, je m'explique :

ce fichier comporte de nombreuses macros que j'ai enregistré manuellement (je ne connais pas le vba)

j'avais pris cet exemple pour simplifier ma demande

en fait, l'exemple des cellules a2 et b2 s'avère être le résultat de formules (additions), j'ai recopié la macro et adapté à mon fichier mais cela ne marche pas

je crois par ailleurs, que j'ai un problème de base, c'est que je ne sais pas quoi faire dès lors que j'ai recopié la macro sur vba : comment l'activer ?

cela peut paraitre idiot mais ce sont les bases et je tente de me "débrouiller" comme je peux

désolé de vous embêter ! merci de votre aide

Bonjour

Salut Dan, je remonte le sujet

re,

comme tu as édité ton message plutôt que de faire une nouveau post dans ce fil, je n'ai pas vu ta demande.

...j'ai recopié la macro et adapté à mon fichier...

Faudrait que je sache ce que tu as fait exactement ...

Sinon le mieux est de mettre ton fichier en ligne avec données non confidentielles ou un fichier bidon.

A te relire

bonjour Dan

excuses moi pour la manip, j'ai bien compris, cela ne se reproduira plus !

j'ai préparé une copie du fichier en question, peux tu m'expliquer comment faire pour mettre le nfichier en ligne ?

a te lire

chb44

Bonjour

Vidéo sur ce lien

http://www.youtube.com/watch?v=EbNYLzTz5wM

Amicalement

Nad

re,

...peux tu m'expliquer comment faire pour mettre le nfichier en ligne ...

Ahhh, tu es brûlé là.... La preuve par l'écrit que tu n'as pas lu la charte du forum.... sinon tout cela est expliqué à cet endroit.

Bon, dans l'attente de ton fichier.

voilà le fichier dont je fais référence :

merci de vos commentaires

chb44

re,

Merci du fichier mais sans explications ...

A te relire

décidement je les collectionne ! je suis allé trop vite !

sur le fichier joint, tu as 2 feuilles : offre conteneur export et offre conteneur export_s

la première est l'offre client et la seconde, la feuille de saisie des achats et de marge

mon souhait serait de masquer par exemple la ligne 43 sur la feuille offre conteneur export si la cellule c55 est égale à 0. Ensuite, il faudrait dupliquer cette macro sur :

la ligne 44 sur la feuille offre conteneur export si la cellule c57 est égale à 0

la ligne 45 sur la feuille offre conteneur export si la cellule c59 est égale à 0

la ligne 46 sur la feuille offre conteneur export si la cellule c61 est égale à 0

la ligne 47 sur la feuille offre conteneur export si la cellule c63 est égale à 0

les lignes 52 - 53 - 54 sur la feuille offre conteneur export si la cellule c91 est égale à 0

les lignes 57 - 58 - 59 - 60 sur la feuille offre conteneur export si la cellule c99 est égale à 0

ensuite, ces macros devront être dupliquées sur d'autres feuilles ayant le même principe (1 feuille offre et 1 feuille saisie coûtants et marge)

ma deuxième question : comment fait-on pour enregistrer la macro et ensuite l'exécuter ?

voilà, tu sais tout

a te lire

Re,

Ok là il est évident que c'est plus clair et que le code que je t'ai donné ne fonctionnera pas.

ensuite, ces macros devront être dupliquées sur d'autres feuilles ayant le même principe (1 feuille offre et 1 feuille saisie coûtants et marge)

Les autres feuilles font parties du même fichier ou tu auras un fichier par offre avec ces deux feuilles ?

ma deuxième question : comment fait-on pour enregistrer la macro et ensuite l'exécuter ?

Tu possèdes un outil dans excel pour créer automatiquement une macro et ce, via OUTILS / MACRO / NOUVELLE MACRO. Cette option va d'abord faire apparaitre une barre d'outils puis créer le code en fonction de ce que tu fais avec ta souris. Une fois tes opération terminées, clique sur le bouton STOP dans la barre d'outils.

Pour voir ton code, va dans OUTILS / MACRO / MACRO puis sélectionne la macro en question et clique sur MODIFIER pour le visualiser.

Dans l'attente de tes infos.

Amicalement

Bonjour Dan,

merci pour ton message, pour répondre à ta question 1) => oui les autres feuilles sont sur le même fichier

pour ce qui concerne l'enregistrement des macros, je crois que tu fais référence à l'enregistrement en manuel

je me suis encore mal exprimé, je faisais référence à l'enregistrement d'un macro en VBA car là, je ne sais pas comment faire pour nommer une macro que je viens de créer en vba et comment faire pour l'éxécuter

enfin, je voulais savoir si la macro en VBA que tu m'avais donné auparavant et en l'adaptant à mon fichier pouvait fonctionner, pour ma part, j'ai modifié les n° de cellules et n° de ligne mais cela ne marche pas

peux tu m'aider ?

a te lire

Re,

mon souhait serait de masquer par exemple la ligne 43 sur la feuille offre conteneur export si la cellule c55 est égale à 0. Ensuite, il faudrait dupliquer cette macro sur :

MAis dans cette feuille en C55 on ne trouve pas de 0, en C57 tu as "Assurance et gestion" ...., C91, C99 il n'y a rien d'écrit dans ta feuille.

Désolé mais je ne comprends pas.

je ne sais pas comment faire pour nommer une macro que je viens de créer en vba et comment faire pour l'éxécuter

Nommer une macro ?? ben si tu suis ce que je t'ai dit dans mon post précédent tu ne devrais pas avoir de souci. Clique sur le bouton MODIFIER puis tu changes de nom --> SUB le nom de ta macro.

Pour excéuter même chose mais tu cliques sur le bouton Exécuter

enfin, je voulais savoir si la macro en VBA que tu m'avais donné auparavant et en l'adaptant à mon fichier pouvait fonctionner, pour ma part, j'ai modifié les n° de cellules et n° de ligne mais cela ne marche pas

Si dans mon code tu as modifié les cellules il faut l'adapter. Si cela ne marche pas c'est que tu as fait une erreur quelque part. Là je ne peux rien te dire de plus sans voir le fichier et savoir les actions exactes à effectuer.

mon souhait serait de masquer par exemple la ligne 43 sur la feuille offre conteneur export si la cellule c55 est égale à 0. Ensuite, il faudrait dupliquer cette macro sur :

MAis dans cette feuille en C55 on ne trouve pas de 0, en C57 tu as "Assurance et gestion" ...., C91, C99 il n'y a rien d'écrit dans ta feuille.

Désolé mais je ne comprends pas.

OUPS ! la cellule c55 se trouve sur la feuille Offre conteneur export_s

idem pour c57 ...., les lignes à masquer sont sur la feuille Offre conteneur export

a te lire

-- 19 Mai 2010, 18:14 --

re

j'ai bien suivi tes conseils avisés et cela semble fonctionner, voici ce que j'ai écrit en VBA en m'inspirant de ton message précédent :

Sub Masquer_ligne_43()
'
' Masquer_ligne_43 Macro

If Range("c55") = 0 Then
Sheets("offre conteneur export").Rows("43:43").Hidden = True
Else: Sheets("offre conteneur export").Rows("43:43").Hidden = False
End If
End Sub

pour l'éxécution de cette macro, j'ai suivi à la lettre tes explications, cela fonctionne

cependant, il y a un "hic", la macro ne s'éxécute pas en automatique cad si je remplace la valeur 0 par 1 dans c55, la ligne 43 reste toujours masquée alors qu'elle devrait s'afficher

je pense qu'il s'agit d'un point de détail, peux-tu m'expliquer la subtilité ?

a te lire

re,

Essaie comme ceci en plaçant cette macro dans la feuille "offre conteneur export_s"

Private Sub Worksheet_Change(ByVal Target As Range)
'Macro Dan pour chb44
If Range("c55") = 0 Then
Sheets("offre conteneur export").Rows("43:43").Hidden = True
Else: Sheets("offre conteneur export").Rows("43:43").Hidden = False
End If
End Sub

Pour la placer, clique droite sur l'onglet "offre conteneur export_s" puis choisir "Visualiser le code".

essaie aussi d'éviter les cellules fusionnées car cela est toujours une cause de bug ou de non fonctionnement des codes VBA.

A te relire

Edit Dan : Cette macro ne sera applicable qu'à ces deux feuilles. Si tu veux l'appliquer à d'autres feuilles dans le même fichier, il faudrait savoir comment les feuilles sont nommées et disposées dans ton fichier.

Re

merci pour ton message mais j'ai du louper un point car dès que je clique droit sur la feuille offre conteneur export_s et je clique sur visualiser le code, je recopie donc la formule vba

c'est après que je perds un peu pied car la macro ne fonctionne pas et je ne la retrouve pas dans la liste des macro que comporte ce fichier

pour ce qui est de dupliquer cette macro, il faut savoir que le fichier comporte au total 13 feuilles dont 12 similaires à celles que j'ai mis en ligne (1page de saisie et marge et 1 page d'offre)

a te lire

Bonsoir,

code vbe

Tu clique sur le nom de feuille que t'a indiquer Dan

(au dessus des modules)

et tu colle le code

Amicalement

Claude

re,

c'est après que je perds un peu pied car la macro ne fonctionne pas et je ne la retrouve pas dans la liste des macro que comporte ce fichier

Si la macro ne fonctionne pas vérifie que tes macros sont activées par OUTILS / MACRO / SECURITE DES MACROS, là tu dois mettre niveau MOYEN (cela te permettra de choisir d'activer ou non tes macros à l'ouverture des fichiers si ceux-ci contiennent des macros)

Pour ce qui est de la liste, c'est normal car les codes VBA placés dans les feuilles ne sont visibles que par VBA dont l'accès t'a été expliqué par Claude Dubois ci-avant. La liste dont tu parles ne reprend en fait que les macros placées dans les modules VBA.

pour ce qui est de dupliquer cette macro, il faut savoir que le fichier comporte au total 13 feuilles dont 12 similaires à celles que j'ai mis en ligne (1page de saisie et marge et 1 page d'offre)

Il n'y a peut être pas besoin de dupliquer cette macro, raison pour laquelle je t'ai demandé le nom des feuilles. Tu ne m'a pas répondu à ce sujet.

Je ne comprends pas là ... la 13 eme feuille c'est laquelle ??

En gros si tu veux un code VBA, il faut bien expliquer ce que tu fais et comment tu fonctionnes car sans cela la programmation ne sert à rien et ne fonctionnera jamais comme l'utilisateur le souhaite.

Amicalement

hello dan !

la 13ime feuille est une page de menu donc cela 1 menu + 6 feuilles offres + 6 feuilles saisie achats + marge

je veux bien te faire suivre ce fichier mais par via le biais du site car il s'agit d'un fichier me servant quotidiennement dans mon travail et le fait qu'il soit sur internet pourrais me causer des problèmes

par conséquent, si tu le veux, je veux bien te le transmettre sur ta messagerie perso

a te lire

ps : je vais essayer avec vos dernières explications

Rechercher des sujets similaires à "macro masquer lignes"