Macro masquer une partie de la feuille

S

Surfing Joe

Guest
Bonsoir le forum,

J’ai bien avancé sur ce projet grâce à l’aide super efficace de "didier_mdf", et maintenant je me lance à modifier un peu les macro surtout pour apprendre.

Voilà je voudrai dans une feuille à volonté masquer une partie avant et/ou une partie après une zone.
Les macro pour masquer après « Fin-feuille » et « Fin_ligne » (zones jaunes) fonctionnent tout comme « afficher tout »…

La macro masquer avant Masque « feuille en deça de Debut_feuille » ne fonctionne que pour les colonnes et pas pour les lignes.

Les lignes ne veulent pas se cacher ( c’est parfois bien, parfois moins bien ) et là j’ai beau leur parler gentiment, je trouve pas les mots qu’il faut.

Poètes de la macro c’est à vous…

A toutes et tous qui animez ce forum, un grand merci !
 

Pièces jointes

  • Fin_Feuille.zip
    11.3 KB · Affichages: 30
M

myDearFriend

Guest
Bonsoir Surfing Joe, galopin01,


Sub MasqueLignColDebutfeuille()
Dim Fcell As Range
  With ActiveSheet
    Set Fcell = .Cells.Find("Debut_feuille")
    If Not Fcell Is Nothing Then
       .Range(.Cells(1, 1), .Cells(1, Fcell.Column - 1)).EntireColumn.Hidden = True
       .Range(.Cells(1, 1), .Cells(Fcell.Row - 1, 1)).EntireRow.Hidden = True
    End If
  End With
End Sub

Je pense que ça devrait régler ton problème...

Par ailleurs, si je peux me permettre un conseil, il n'est pas vraiment souhaitable de stocker tes procédures dans l'objet ThisWorkbook, il conviendrait mieux de les mettre dans un module de code spécialement créé à cet effet (ou à défaut, dans le module de code de la feuille qui subit le traitement).

En théorie, les modules de code correspondant aux Feuilles, à l'objet ThisWorkbook ou aux UserForms, sont destinés à gérer les évènements "Private Sub" liés à ces objets.
Les modules que tu obtiens par menu Insertion / Module sont plus appropriés pour stocker tes propres procédures publiques ou fonctions personnalisées.
Enfin, ça c'est la théorie bien sûr... ;)

NB: dommage que DavidXLD le Webmaster est supprimé notre fil d'hier sur le sujet...


Cordialement.

Didier_mDF
myDearFriend-3.gif
 
G

galopin01

Guest
Bonsoir Didier,
Je confirme !
Il est temps qu'on donne aussi parfois des bonnes habitudes.
Je l'avais noté aussi (et rectifié aussitot) pour déboguer et puis après je n'ai pas pensé à en reparler.
Mais c'est bien de replacer un peu les fondamentaux...
A+
 
R

Robert

Guest
Bonsoir Joe, Galopin, Didier,

Bien que tout ayant été dit (et bien dit...) , je me permet de te joindre ton fichier modifié dans le quel je te propose une autre possibilité de masquer/afficher une plage.

À plus,

Robert
 

Pièces jointes

  • Fin_Feuille2.zip
    19.2 KB · Affichages: 41
S

Surfing Joe

Guest
Ah le gredin de DavidXLD ! il nous avait coupé le fil, allez on lui pardonne, ce forum est victime de son succès !

Bonjour, Robert, galopin01,and myDearFriend,

Je n’ai pas encore eu le temps d’essayer le fichier de Robert, je lui fais confiance et je vais le faire promis juré !

Merci galopin01,and myDearFriend, pour vos nombreux et si bons conseils, ils sont justes et fonctionnent tip-top.

Pour cette ligne « .Range(.Cells(1, 1), .Cells(Fcell.Row - 1, 1)).EntireRow.Hidden = True » je vais essayer de comprendre, pourquoi « .Range(.Cells(256, Fcell.Column - 1), .Cells(256, 1)).EntireColumn.Hidden = True » ça marche pour les colonnes et « .Range(.Cells(65536, Fcell.Row - 1, 65536), .Cells(65536, 1)).EntireRow.Hidden = True » ça ne marche pas pour les lignes.

galopin01 j’utilise une macro que tu m’as apprise sur http://www.excel-downloads.com/html/French/forum/read.php?f=1&i=142433&t=141598, et j’ai laissé une question, je pense que le projet d’ajouter automatiquement la date à un nom de fichier est intéressant.

Tout ce que j’apprends sur ce forum je l’utilise et c’est vraiment un autre Excel que je découvre, j’essaie aussi en fonction de mon temps et mes connaissances d’aider un peu les moins forts que moi…

A+ S.J.
 
S

Surfing Joe

Guest
Super ta macro Robert, l'application est différente et plus souple.

j'ai déjà lu plusieurs de tes posts et je sais que comme d'autre ici tu es plein de ressources.

J'ai une question idiote : comment fait-on pour afficher à nouveau, est-ce que j'ajoute la macro Sub ShowFinFeuille() de la Feuil 1 ou tu as une autre astuce dans tes méninges ?

Ceci dit pour moi ça répond bien à mes besoins.
 
S

Surfing Joe

Guest
Bonjour le forum, bonjour Didier,Galopin et les autres...

j’ai suivi vos conseil concernant les modules, et ensuite j’ai fais une usine à gaz avec mes macro, je sais que vous allez trouver mon bricolage ridicule, mais ça marche…alors pour moi c’est déjà génial

Maintenant je ne voudrai imprimer que : soit la zone Select, soit Ref et Select, du fichier que je joins, et ce directement sans avoir à chaque fois à relancer les masquages?

Je sais par un autre fil qu'il y a un commande PrintOut, que Galopin m'a proposé, mais comment sélectionner les cellules qui ne sont affichées, est-ce une contuinité des macro qu'il faut faire ou repartir du début.

Merci beaucoup, et à bientôt.
 

Pièces jointes

  • Fin_Feuille5.zip
    14 KB · Affichages: 31
S

Surfing Joe

Guest
Bonjour le forum,

Pour votre gouverne, dans ces macro il y a une petite astuce que j'ai mis longtemps à trouver.
S'il y a des commentaires dans la feuille, la fenêtre de ceux ci doit être placée dans une zone toujours visible, si elle est à l'extérieur ça bogue!
Exemple ci-joint.

A plus S.J.
 

Pièces jointes

  • AttentionCommentaires.zip
    17.6 KB · Affichages: 41

Discussions similaires

Réponses
2
Affichages
507

Membres actuellement en ligne

Statistiques des forums

Discussions
312 379
Messages
2 087 765
Membres
103 662
dernier inscrit
rterterert