Masquer et démasquer des lignes avec macro en vba

Fermé
SE44fr Messages postés 29 Date d'inscription mercredi 5 août 2015 Statut Membre Dernière intervention 29 novembre 2015 - 14 sept. 2015 à 22:50
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 - 16 sept. 2015 à 20:10
Bonjour au forum,

J'ai créé 2 boutons auxquels j'ai associé une macro chacun que j'ai écrit en vba, dans le but de masquer et refaire apparaitre des lignes.

Voilà à quoi ressemble le code avec des message box :


Sub Démasquage_des_cellules_du_calculateur_Alulam()
'
' Démasquage_des_cellules_du_calculateur_Alulam Macro
'
If MsgBox("Voulez-vous vraiment démasquer le corps du calculateur ?", vbYesNo, "ATTENTION") = vbYes Then

Range("A42:A200").Select
Selection.EntireRow.Hidden = False

Range("B44").Select
MsgBox "Les cellules du corps du calculateur sont désormais démasquées"

Else
Exit Sub

End If
End Sub


Cordialement,
SE.

A voir également:

2 réponses

Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
15 sept. 2015 à 10:12
Bonjour,

Quelle est la question ?

A+
0
SE44fr Messages postés 29 Date d'inscription mercredi 5 août 2015 Statut Membre Dernière intervention 29 novembre 2015 2
15 sept. 2015 à 16:27
Excuse moi Zoul67 ! J'étais un peu fatigué, j'en ai oublié la question...

En fait le code présenté ne fonctionne pas, il doit donc être faut, j'ai pourtant essayé plusieurs adaptations mais rien n'y fait.

Ma question serait donc, avez vous une meilleurs formulation pour ce code ?
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
15 sept. 2015 à 16:52
Chez moi ça fonctionne, même si
Else
Exit Sub
ne sert à rien.
Qu'est-ce qui ne fonctionne pas ? Quel est le message d'erreur ? Au besoin, peux-tu partager ton fichier sur https://www.cjoint.com/ ?
0
SE44fr Messages postés 29 Date d'inscription mercredi 5 août 2015 Statut Membre Dernière intervention 29 novembre 2015 2
15 sept. 2015 à 17:01
Je ferais ça se soir je pense.

En fait lorsque je clic sur le bouton de la macro, ça ouvre visual basic et surligne en jaune la ligne "Sub" de la macro. Et la macro ne s'éxécute pas, je n'est même pas la msg box.
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
15 sept. 2015 à 17:09
L'accent sur le "é" qui pose peut-être problème ?
En tout cas pas dans ma version d'Excel.
0
SE44fr Messages postés 29 Date d'inscription mercredi 5 août 2015 Statut Membre Dernière intervention 29 novembre 2015 2
15 sept. 2015 à 23:30
Bonsoir Zoul67,

J'ai retravaillé sur le problème, il devait s'agir d'un "bug", désormais ça fonctionne !

Néanmoins, si tu as le temps de jeter un oeil sur mon fichier, j'aurai bien besoin d'une piste sur une commande afin d'adapter le "calculateur" en fonction d'un chiffre noté en G9, allant de 2 à 6, et donc faisant apparaitre de 1 à 5 grilles de calcul supplémentaire (caché par défaut) en fonction de ce chiffre. (celui de 2 à 5)

Voici le fichier sur cjoint :

http://www.cjoint.com/c/EIpvAuyigt7

Bien sur je rajouterai à la fin une commande de masquage à mon bouton de réinitialisation final, mais ça je pense que c'est abordable :)

Dans l'attente d'une suggestion,

Cordialement,
SE.
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
16 sept. 2015 à 00:38
Bonsoir,

Beaucoup d'interrogations sur la forme du fichier viennent à moi :
- pourquoi ne pas grouper les lignes plutôt que d'utiliser un bouton pour les masquer/démasquer ?
- pourquoi deux boutons (1 pour masquer, 1 pour démasquer) ?
- pourquoi ne pas plutôt faire un onglet par type de clôture plutôt qu'empiler le tout ?
- la saisie dans les cellules noires est-elle pratique quand il faut chercher ces cellules toutes les 32 lignes ? Ne vaut-il pas mieux un UserForm ou un onglet dans lequel on saisit les données pour les 1 à 6 types de clôtures ?

J'arrête de t'embêter... (mais penses-y tout de même).
Par rapport à la valeur de G9, tu peux mettre ton code dans la macro Private Sub Worksheet_Change...
et mon idée serait d'utiliser le même genre de code que ce que tu as fait pour masquer/afficher :
a_masquer=6-Cells(9,7).Value
    Range("A42:A201").Select
    Selection.EntireRow.Hidden = False
If a_masquer>0 Then
    prem_ligne_a_masquer = 202 - 32 * a_masquer
    Range("A" & prem_ligne_a_masquer & ":A201").Select
    Selection.EntireRow.Hidden = True
End If


Bonne nuit
0
SE44fr Messages postés 29 Date d'inscription mercredi 5 août 2015 Statut Membre Dernière intervention 29 novembre 2015 2
16 sept. 2015 à 14:15
Bonjour Zoul67 et merci à toi, je vais tester ta méthode bientôt, j'ai pas mal de travail.

Pour répondre en bref à tes interrogations légitimes, je dirais :
- Point 1: Les lignes étaient groupées avant, je les ai dupliquées pour répondre à une possible contrainte technique, par exemple une section de longueur avec des paramètres différents mais toujours les mêmes matériaux, c'est pour cela qu'il s'additionne dans le dernier tableau.

- Point 2: En fait, les boutons masquer et démasquer ne sont pas utile au fonctionnement du "calculateur" en lui même, ces 2 boutons me servent essentiellement à voir ou cacher le "corps du calculateur" du moins tant que je suis encore en phase de conception, c'est le futur bouton "Adapter le calculateur" qui aura de l'importance.

- Point 3: Cela ne parait pas évident tout de suite mais tout l'onglet concerné sert à un seul type de clôture, d'autres onglets vont suivre ensuite avec d'autres types de clôtures, mais c'est long à réaliser.

- Point 4: Alors le userform... j'avais lu quelques textes et vu une vidéo la dessus mais je ne suis pas rentré dans les détails, donc je ne maitrise pas cet outil. Mais je pense que cela pourrai être une bonne idée à creuser, cela dit comment accède t-on au formulaire pour le remplir et où on le stock ? dans le classeur, en dehors ?

A bientôt.
Cordialement.
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
16 sept. 2015 à 15:22
Bonjour,

Par "grouper", j'entendais la fonctionnalité Excel ( https://support.microsoft.com/en-us/office/outline-group-data-in-a-worksheet-08ce98c4-0063-4d42-8ac7-8278c49e9aff?redirectsourcepath=%252ffr-fr%252farticle%252fpr%2525c3%2525a9senter-des-donn%2525c3%2525a9es-groupe-sous-forme-de-plan-dans-une-feuille-de-calcul-3b03f3a0-d000-4f7c-9181-be4355959d90&ui=en-us&rs=en-us&ad=us ), pas l'assemblage des données dans un tableau unique.
La 2è question portait sur le fait qu'il y ait deux boutons et pas un seul (ou une case à cocher).
Le UserForm servirait juste à la saisie, les données seraient placées dans les bonnes cellules du bon onglet lors de la validation du UserForm.
Quand j'aurai un peu de temps, je vais essayer de te proposer une mise en forme sans UserForm ni bouton...

Bien à toi.

PS : on peut en discuter en message privé pour éviter que le fil remonte dans les sujets récents.
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
16 sept. 2015 à 20:10
Sans UserForm, ni bouton.
Les données sont à rentrer en haut à droite de la Feuil2

https://www.cjoint.com/c/EIqsfN15blV
0