> 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 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
236,69 €Casque sans fil Bose Headphones 700 à 236,69 € livré
Valable jusqu'au 22 Octobre

Amazon Allemagne fait une promotion sur l'excellent casque sans fil Bose Headphones 700 qui passe à 230,92 €. Comptez 5,77 € pour la livraison en France soit un total de 236,69 € livré. On le trouve ailleurs à partir de 329 €. En plus d'un son incroyable, ce casque offre 11 niveaux de réduction active de bruit vous permettent de profiter de la musique, des podcasts, des vidéos et des appels, sans distraction. Un système de microphones révolutionnaire s’adapte aux environnements bruyants et venteux afin de restituer votre voix avec une clarté incroyable lors de vos appels. Vous permet également d'accéder facilement aux assistant vocaux Google et Alexa. Autonomie jusqu'à 20 heures.

Vous pouvez utiiser votre compte Amazon France sur Amazon Allemagne. Il n'y a pas de douane.


> Voir l'offre
89,99 €Disque dur externe portable Seagate Expansion 4 To USB 3.0 à 89,99 €
Valable jusqu'au 22 Octobre

Boulanger fait une promotion sur le disque dur externe portable Seagate Expansion d'une capacité de 4 To qui passe à 89,99 € alors qu'on le trouve ailleurs à partir de 100 €. Ce disque dur externe portable au format 2,5 pouces dispose d'une interface USB 3.0 compatible USB 2.0. Une excellente affaire pour ce disque dur qui offre des débits de 115 Mo/s. Il n'est pas soudé et est donc démontable si vous souhaitez le réutiliser ailleurs (console, NAS, PC).


> Voir l'offre
35,99 €Super Mario 3D-All Stars sur Switch à 35,99 € avec le code AFFAIRE20
Valable jusqu'au 22 Octobre

Cdiscount propose actuellement le jeu Super Mario 3D-All Stars sur Switch à 35,99 € avec le code promo AFFAIRE20. Profitez non pas d’une, ni de deux, mais des trois premières aventures de Super Mario en 3D… dans un seul et même jeu avec Super Mario 3D All-Stars ! Cette compilation réunit les trois premiers Super Mario en 3D, pour la première fois avec des graphismes optimisés pour la Nintendo Switch. Découvrez ou redécouvrez Super Mario 64, la mythique première aventure de Mario en 3D sur Nintendo 64 ; Super Mario Sunshine, le jeu de plateforme le plus rafraichissant de la saga sorti sur GameCube ; et le renversant Super Mario Galaxy de la Wii. 


> 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