| ||||||||
Petit astucien | bonjour, J'ai une macro (copyright PCA) qui fonctionnait sous word 2000 (à la maison) mais qui ne fonctionne pas sous word 2010 (au travail). Elle permettait, via un bouton,de masquer/afficher des lignes dans un tableau. J'arrive à masquer les lignes de mes tableaux word 2010 en cliquant une 1ère fois, mais le second clic ne réaffiche pas les lignes masquées. Je suis nul en VBA, mais j'avais compris qu'en fait, on diminuait la hauteur des lignes en conséquence, pratiquement invisibles à l'impression. Voici la macro: Sub pca() Ce serait très gentil de m'aider à réparer cela. Autre question: peut-on faire fonctionner cette macro sur un document Word (formulaire) en lecture seule? D'avance, je vous remercie de votre aide bonne soirée et @+ pierrotd | |||||||
Publicité | ||||||||
| ||||||||
Astucien | Bonjour, Je n'utilise pas VBA sous Word... mais après essai, ta macro fonctionne sous Word 2010 ! Refais donc un essai, si tu rencontres une difficulté, ce n'est pas le code qui est en cause. | |||||||
Petit astucien | bonjour, Je suis au boulot, je viens de tester: Ca fonctionne pour masquer une/des lignes, mais pas pour la/les réafficher: peut-être car il est difficile de sélectionner la/les lignes masquées. merci et @+
pierrotd37 | |||||||
Petit astucien | re, Autant pour moi! ça fonctionne (j'ai recopié ma macro au propre et ça marche maintenant) Il reste la seconde partie de mon post (si possible): Peut-on faire fonctionner cette macro sur un document Word (formulaire) en lecture seule? D'avance merci cordoialement, pierrotd | |||||||
Petit astucien | up | |||||||
Astucien | En pareil cas, je commencerais par faire un essai... | |||||||
Petit astucien | bonjour, J'ai essayé; ça ne marche pas en mode formulaire (cadenas verrouillé) cases à cocher et champs à remplir. cordialement et @+ pierrotd | |||||||
Astucienne | Bonjour Pour que ça fonctionne en mode verrouillé, il faut inclure dans la macro le déverrouillage et le reverrouillage du document. Soit à insérer en début de code cette ligne : ActiveDocument.Unprotect "toto" Et à la fin du code cette autre ligne : ActiveDocument.Protect Type:=wdAllowOnlyFormFields, noreset:=True, Password:="toto" remplacer les "toto" par son mot de passe. A noter l'importance du noreset qui éviter de remettre à 0 les champs déjà remplis ! ;) | |||||||
Petit astucien | bonsoir à tous, Merci m@rina, ça fonctionne impeccable! Par contre, on ne peut plus réafficher les lignes si masquées par erreur (pas de marche arrière possible) mais ça va comme ça. je coche le sujet résolu. bonne soirée et @ + pierrotd | |||||||
Astucien |
Ta macro fonctionnait dans les deux sens, comme j'avais pu le constater. | |||||||
Astucienne | Bonsoir, En fait, la macro fonctionne sur des lignes sélectionnées. Le problème est de sélectionner des lignes masquées. D'ailleurs, le terme "masqué" est impropre, ce sont seulement des lignes dont la hauteur est nulle. On pourrait, pour revenir en arrière demander d'afficher toutes les lignes du tableau, ça serait simple. Je ne sais pas si ça résout le problème. C'est à dire s'il y a au moins une ligne masquée, on réaffiche tout.
| |||||||
Petit astucien | bonjour, En fait M@rina, je serais preneur si ma macro pouvait faire ça (nota: j'ai un bouton associé à cette macro: clic= masque 1 ligne...) bonne journée, et merci d'avance. pierrotd Modifié par pierrotd le 26/02/2015 07:19 | |||||||
Astucienne | Bonjour,
J'espère que je ne reviens pas trop tard ! Donc, pour ton souci, je pense qu'il faut deux macros sinon, tu ne pourras pas revenir à plusieurs reprises dans ton tableau pour masquer d'autres lignes. Alors voici la macro qui "masque" les lignes sélectionnées, que tu pourras relancer autant de fois que tu veux sur plusieurs lignes (j'ai repris la macro d'origine simplifiée) : Sub pca1() If Selection.Rows.Height > CentimetersToPoints(0.3) Then
Et voici une macro qui affichera toutes les lignes du tableau. Il suffira de cliquer n'importe où dans le tableau, et donc inutile de tâcher de sélectionner une ligne "masquée": Sub pca2() m@rina
| |||||||
Petit astucien | bonsoir m@rina, En fait, je suis so bad que ça ne fonctionne pas! plus haut dans le post, tu m'avais fait rajouter du code car mon formulaire s'utilise verrouillé Je crois que j'ai mal recopié: Sub pca() En pièce jointe mon document de travail: http://cjoint.com/?ECdrUpWBk1j (domaines de risques à masquer selon mes besoins pour raccourcir le nombre de pages à l'impression) cordialement, pierrotd | |||||||
Astucienne | Bonjour, Ah oui j'avais oublié la protection ! Alors, il y a deux macros, donc il faut ajouter les lignes concernant la protection au début et à la fin de chacun des macros.
Sub pca1() ActiveDocument.Unprotect "toto" If Selection.Rows.Height > CentimetersToPoints(0.3) Then Selection.Rows.Height = CentimetersToPoints(0.02) Selection.Rows.HeightRule = wdRowHeightExactly End If ActiveDocument.Protect Type:=wdAllowOnlyFormFields, noreset:=True, Password:="toto" End Sub
Sub pca2() ActiveDocument.Unprotect "toto" Dim tablo As Table Set tablo = Selection.Tables(1) tablo.Rows.HeightRule = wdRowHeightAtLeast ActiveDocument.Protect Type:=wdAllowOnlyFormFields, noreset:=True, Password:="toto" End Sub
Par ailleurs, il te faudra deux boutons, l'un pour masquer et l'autre pour afficher. | |||||||
Petit astucien | bonsoir à tous, bonsoir M@rina, Impeccable! J'ai recopié tout ça au boulot cet après-midi, j'ai créé 2 boutons et tout marche! Merci encore une fois de votre aide. cordialement et @+ sujet résolu. pierrotd | |||||||
|
Les bons plans du moment PC Astuces | Tous les Bons Plans | ||||||||||||||||||
|