INSERTION DE LIGNES MODIFIE MES MACROS 2.0

Bonjour à tous,

Je joins un fichier exemple pour que vous suiviez mon problème. J'ai déjà posté un mot à ce sujet et je pensais avoir palier le soucis... Malheureusement pas totalement. En effet, une macro d'une Feuil1 pour m'afficher un tableau en Feuil2 c'est izi, mais lorsque des lignes sont masquées sur la Feuil2, il convient dès lors de selectionner les lignes extrêmes du "masquage" (?) pour afficher ce qui est masqué (toujours pour éviter ces fameux + et - si peu pratiques.).

Sur le fichier exemple ci joint, en Feuil2 (le premier onglet) mon bouton m'affiche bien les lignes 20 à 50. En Feuil1, j'ai inséré exprès quelques lignes supplémentaires entre la ligne 1 et 19, et là le soucis apparaît: En cliquant sur le bouton des lignes restent masquées car ne font plus parties de la macro...

Je sais maintenant fixer une macro sur un tableau en particulier (ici Tablo_1 & Tablo_2 sont toujours bien selectionnés par ma macro) car je peux renommer une plage de cellule. Le fait est que je ne peux pas renommer une Ligne entière isn't it ?

Ou bien peut etre "EntireRow("19:51).Select".. Mais cela m'étonnerait tellement

Je cherche donc comment faire pour que même quand j'insère de nouvelles lignes avant les lignes concernées par ma macro, ce soit toujours les mêmes lignes qui soient sélectionnées.

Merci d'avance encore une fois,

Au plaisir de vous lire !

Excellement votre

R1

24exempleprforum.xlsm (31.25 Ko)

Bonjour

Un essai à tester, si j'ai bien compris.

Te convient-il ?

Bye !

Salut !

Merci beaucoup !! Ca marche effectivement ! J'insère autant de ligne que je veux et le Tablo s'affiche quand meme c'est génial !

Ce code que tu as rentré dans Worksheet, il est valable pour la Feuil1 et 2 ? C'est a dire que si je l'adapte à mon fichier qui comporte bien plus d'une feuille, je n'aurais pas a adapter le code a chaque fois que j'ai un groupement de cellules a afficher par macro ?

Merci d'avance !!

R1

ESIMON a écrit :

Ce code que tu as rentré dans Worksheet, il est valable pour la Feuil1 et 2 ?

Eh Non !

Si tu regardes bien, le code de la feuille 1 se sert de "Tablo_1 qui est un tableau de la Feuil1 le code de la feuille 2 se sert de Tablo_2 qui est un tableau de Feuil2...

Pour que le même code puisse s'appliquer à toutes les feuilles, il faudrait pouvoir définir les tableau de chacune de ces feuilles.

Mais, sans exemples, je ne puis.

Bye !

Bonsoir,

une question : sur votre fichier vous avez un bouton qui dit affiche les ligne de 20 à 50, vous cliquez dessus et les lignes 20 à 50 sont affichées.

Sur le fichier de gmb, ce ne sont que les lignes qui appartiennent à tablo_1.

Alors faut il juste afficher les lignes "non vides" ou bien celles qui sont comprise dans le groupement ?

@ bientôt

LouReeD


Edit :

en faite ci-joint le fichier de gmb modifié :

à la création des noms de tableau il suffit de donner le même nom mais avec une portée "feuille" et non classeur.

Du coup vous pouvez avoir autant de tablo_1 que vous voulez (enfin 1 par feuille)

Le code du bouton sur chaque feuille appel le même code : Call LouReeD

et le code dans un module standard :

Sub LouReeD()
    ActiveSheet.Range("Tablo_1").EntireRow.Hidden = False
End Sub

Mais suite à ma question ce code n'affiche que le tableau. S'il faut afficher les ligne de 20 à 50 soit 31 lignes alors une modification du code est faisable je pense.

Toujours est-il qu'il est plus simple de répondre avec un fichier en support, merci à vous

@ bientôt

LouReeD

Re Edit :

pour afficher la zone des 30 lignes quelque soit la taille du tableau :

Nommez la cellule en haut à gauche du tableau en Tablo_1 et nom plus le tableau entier.

et modifiez le code ainsi :

Sub LouReeD()
    ActiveSheet.Range([Tablo_1].Row & ":" & [Tablo_1].Row + 30).EntireRow.Hidden = False
End Sub

en fait on prend en référence la ligne de la première cellule du tableau et on y ajoute le nombre de ligne que l'on veut afficher

le même bouton pour afficher ou masquer ferait de même ce qui supprime alors le "groupements" d'Excel que vous n'aimez pas :

Sub LouReeD()
    ActiveSheet.Range([Tablo_1].Row & ":" & [Tablo_1].Row + 30).EntireRow.Hidden = Not ActiveSheet.Range([Tablo_1].Row & ":" & [Tablo_1].Row + 30).EntireRow.Hidden
End Sub

traduction : on fait l'inverse "NOT" de ce qui est : si c'est visible, on cache si c'est caché alors on affiche.

@ bientôt

LouReeD

RE Re EDIT :

en connaissant la première cellule et en voulant ne cacher (afficher) que le tableau :

Sub LouReeD()
    ActiveSheet.Range([Tablo_1].Address).CurrentRegion.EntireRow.Hidden = Not ActiveSheet.Range([Tablo_1].Address).CurrentRegion.EntireRow.Hidden
End Sub

On connaît la première cellule, en en "déduit" le tableau avec "CurrentRegion" et on cache / affiche :

@ bientôt

LouReeD

Rechercher des sujets similaires à "insertion lignes modifie mes macros"