> 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

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 participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
149,96 €Ecran PC 23.8 pouces Dell S2422HG (incurvé, FullHD, VA, 165 Hz, 1 ms, FreeSync) à 149,96 € (via ODR)
Valable jusqu'au 02 Décembre

LDLC  fait une promotion sur l'écran PC 23.8 pouces Dell S2422HG qui passe à 199,96 € au lieu de 220 € ailleurs. Or Dell rembourse actuellement 50 € sur cet écran qui vous reviendra à 149,96 € après remboursement.

Cet écran possède une dalle incurvée VA Full HD (1920x1080) à 165 Hz et avec un temps de réponse de 1 ms. Il est compatible FreeSync (et GSync via Adaptive Sync). La hauteur et l'inclinaison de l'écran sont réglables. 2 ports HDMI et 1 port DP.


> Voir l'offre
140,70 €SSD externe portable USB 3.2 Crucial X6 2 To à 140,70 €
Valable jusqu'au 02 Décembre

Amazon fait une promotion sur le SSD externe Crucial CT2000X6SSD9 2 To qui passe à 140,70 € livré gratuitement au lieu de 240 €. Ce SSD externe portable offre des vitesses jusqu'à 800 Mo/s. Il se branche sur un port USB C ou A (adapteur fourni). Il est compatible PC, Mac, PS4, Xbox One, Android.

Petit, il tient entre vos doigts et pèse moins que vos clés de voiture. Il résiste aux chocs et aux chutes jusqu'à 2 mètres.


> Voir l'offre
54,99 €SSD Crucial P5 500 Go (3D NAND, NVMe, PCIe, M.2, 3400 Mo/s) à 54,99 €
Valable jusqu'au 03 Décembre

Amazon fait une promotion sur le SSD Crucial P5 500 Go (3D NAND, NVMe, PCIe, M.2) qui passe à 54,99 € livré gratuitement. On le trouve ailleurs à partir de 90 €. Ce SSD offre des vitesses de lecture/écriture séquentielle allant jusqu’à 3 400/ 3 000 Mo/s. Il est garanti 5 ans.


> Voir l'offre

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