> Tous les forums > Forum Bureautique
 macro afficher masquer lignes tableau dans word 2010Sujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
pierrotd
  Posté le 02/02/2015 @ 18:13 
Aller en bas de la page 
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()
If Selection.Rows.Height <> 1.15 Then
Selection.Rows.Height = CentimetersToPoints(0.04)
Selection.Rows.HeightRule = wdRowHeightExactly
Else
If Selection.Rows.HeightRule = wdRowHeightAtLeast Then
Selection.Rows.HeightRule = wdRowHeightExactly
Else
Selection.Rows.HeightRule = wdRowHeightAtLeast
End If
End If
End Sub

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é
ferrand
 Posté le 03/02/2015 à 12:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  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.

pierrotd
 Posté le 03/02/2015 à 13:27 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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

pierrotd
 Posté le 03/02/2015 à 14:10 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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

pierrotd
 Posté le 07/02/2015 à 17:06 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

up

ferrand
 Posté le 09/02/2015 à 08:31 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

En pareil cas, je commencerais par faire un essai...

pierrotd
 Posté le 11/02/2015 à 15:47 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

bonjour,

J'ai essayé; ça ne marche pas en mode formulaire (cadenas verrouillé) cases à cocher et champs à remplir.

cordialement et @+

pierrotd

m@rina
 Posté le 25/02/2015 à 03:49 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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 ! ;)

pierrotd
 Posté le 25/02/2015 à 21:38 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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

Publicité
ferrand
 Posté le 25/02/2015 à 23:16 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

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.

Ta macro fonctionnait dans les deux sens, comme j'avais pu le constater.

m@rina
 Posté le 26/02/2015 à 00:54 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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.

pierrotd
 Posté le 26/02/2015 à 07:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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
m@rina
 Posté le 03/03/2015 à 16:03 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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
Selection.Rows.Height = CentimetersToPoints(0.02)
Selection.Rows.HeightRule = wdRowHeightExactly
End If
End Sub

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()
Dim tablo As Table
Set tablo = Selection.Tables(1)
tablo.Rows.HeightRule = wdRowHeightAtLeast
End Sub

m@rina

pierrotd
 Posté le 03/03/2015 à 17:37 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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()
ActiveDocument.Unprotect "toto"
If Selection.Rows.Height <> 1.15 Then
Selection.Rows.Height = CentimetersToPoints(0.04)
Selection.Rows.HeightRule = wdRowHeightExactly
Else
If Selection.Rows.HeightRule = wdRowHeightAtLeast Then
Selection.Rows.HeightRule = wdRowHeightExactly
Else
Selection.Rows.HeightRule = wdRowHeightAtLeast
End If
End If
ActiveDocument.Protect Type:=wdAllowOnlyFormFields, noreset:=True, Password:="toto"
End Sub
Sub pca1()
If Selection.Rows.Height > CentimetersToPoints(0.3) Then
Selection.Rows.Height = CentimetersToPoints(0.02)
Selection.Rows.HeightRule = wdRowHeightExactly
End If
End Sub
Sub pca2()
Dim tablo As Table
Set tablo = Selection.Tables(1)
tablo.Rows.HeightRule = wdRowHeightAtLeast
End Sub

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

m@rina
 Posté le 04/03/2015 à 13:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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.

pierrotd
 Posté le 04/03/2015 à 16:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
masquer/afficher des lignes dans tableau word
Créer une Macro dans Word 2010
enlever lignes, colonnes d'un tableau dans word
guillemets dans Word 2010
Ne pas afficher les titres dans Word 2007
Mettre une liste d'une page Word dans un tableau Excell ?
Insertion d'un gif animé dans Word 2010 ???
macro pour trier un tableau et effacer les lignes sans saisie
Macro masquer certaines lignes
Signatures dans la barre d'état word 2010
Plus de sujets relatifs à macro afficher masquer lignes tableau dans word 2010
 > Tous les forums > Forum Bureautique