> Tous les forums > Forum Bureautique
 Macro masquer certaines lignesSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
quillet
  Posté le 11/06/2014 @ 15:32 
Aller en bas de la page 
Petit astucien

Bonjour à tous,

J'ai un tableau dynamique de 13 colonnes (de A à M) dont les saisies débutent en ligne 6.

Les colonnes C et M contiennent des formules.

Certaines lignes sont identifiées en colonne G par la lettre "R".

Je voudrais, à l'aide d'une macro, pouvoir masquer toutes les lignes contenant cette lettre "R" de la colonne G, et bien sûr une autre macro pour afficher toutes les lignes, si besoin est.

J'ai essayé un tas de méthodes mais je n'y arrive pas. Cela dépasse mes faibles compétences.

Si un spécialiste veut bien m'aider, je l'en remercie par avance.

Publicité
ZenJP
 Posté le 11/06/2014 à 16:05 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Exemple : (1000 est ton nombre de lignes sur lequel la macro est exécutée, à modifier) j'ai démarré ligne à 6 si tes saisies commencent là

Sub Masquerlignes()
Dim ligne As Integer

For ligne = 6 To 1000 
    If Cells(ligne, 7) = "R" Then
        Rows(ligne & ":" & ligne).EntireRow.Hidden = True
    End If
Next

End Sub


Modifié par ZenJP le 11/06/2014 16:05
quillet
 Posté le 11/06/2014 à 20:10 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir,

J'ai reporté ta macro dans le tableau, hélas cela ne fonctionne pas.

Rien ne se passe et tout se met à clignoter.

Merci de t'être penché sur mon problème.

J'espère qu'on trouvera la solution.

ferrand
 Posté le 11/06/2014 à 20:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonsoir,

On va essayer d'améliorer la proposition de ZenJP (qui cependant devait fonctionner !)

Sub MasquerDémasquerLignesR()
Dim n%, i%
Static maskR As Boolean
maskR = Not maskR
With ActiveSheet
n = .UsedRange.Rows.Count + 5
For i = 6 To n
If .Cells(i, 7).Value = "R" Then .Rows(i).Hidden = maskR
Next i
End With
End Sub

Cette macro masque et démasque alternativement (masque au premier lancement) les lignes comportant "R" en colonne G de la feuille active.

NB: macro à coller dans un module standard.



Modifié par ferrand le 11/06/2014 20:20
quillet
 Posté le 11/06/2014 à 20:46 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir,

La macro masquer fonctionne mais elle a mis 2 minutes 30 secondes pour masquer 120 lignes contenant le "R".

Si cela est possible, je voudrais 2 macros différentes (que j'affecterai à 2 boutons) l'une pour masquer, l'autre pour afficher.

Est-il possible de les rendre plus rapide (car il faudra peut-être 1 heure pour masquer 700 ou 800 lignes. (le tableau en comporte 1000).

C'est peut-être beaucoup demander? En tous cas, je vous remercie pour le temps que vous y passerez.

ferrand
 Posté le 11/06/2014 à 21:20 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

quillet a écrit :

Bonsoir,

La macro masquer fonctionne mais elle a mis 2 minutes 30 secondes pour masquer 120 lignes contenant le "R".

Si cela est possible, je voudrais 2 macros différentes (que j'affecterai à 2 boutons) l'une pour masquer, l'autre pour afficher.

Est-il possible de les rendre plus rapide (car il faudra peut-être 1 heure pour masquer 700 ou 800 lignes. (le tableau en comporte 1000).

C'est peut-être beaucoup demander? En tous cas, je vous remercie pour le temps que vous y passerez.


Laquelle ? Ma macro met 1 (une) seconde [à 2 dix-millionnièmes près en plus ou en moins] pour masquer ou démasquer 150 lignes sur 1100 !

Ton fichier doit présenter un problème ! Quelle cellule est sélectionnée lorsque tu fais Ctrl+Fin ?

Une macro (un bouton), c'est pourtant mieux que deux !

quillet
 Posté le 11/06/2014 à 23:40 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Lorsque je fais Ctrl+Fin, c'est la cellule M1000 qui est sélectionnée.

J'avais signalé dans ma demande que les colonnes C et M contenaient des formules.

La difficulté vient peut-être de cela.

ferrand
 Posté le 11/06/2014 à 23:58 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

La macro ne s'occupe que de la colonne G. Le contenu des autres colonnes ne devrait pas avoir d'incidence !

Le masquage ou le démasquage ne modifient pas de valeurs et ne devraient donc entraîner aucun recalcul (sauf fonctions SOUS.TOTAL ou AGREGAT qui peuvent ne pas prendre en compte les lignes masquées).

quillet
 Posté le 12/06/2014 à 11:12 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Je n'ai pas trouvé le problème. J'ai supprimé les validations de liste déroulantes, les validations d'alertes et même les formules mais la macro s'exécute toujours ligne par ligne et met beaucoup de temps

Que puis-faire pour résoudre le problème qui empêche l'exécution correcte de la macro?

ferrand
 Posté le 12/06/2014 à 12:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Difficile de savoir ce qu'il en est sans examiner le fichier ! Et faire quelques tests pour tenter de déceler la cause (et trouver une solution) !

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
Câble Ugreen HDMI 2.1 10K 8K, 4K 240 Hz, DynamicHDR, Dolby Atmos, haute vitesse, 2 mètres à 11,19 €
11,19 € 15,99 € -30%
@Amazon
Rasoir à barbe sans fil Philips QP2734/30 OneBlade à 37,98 €
37,98 € 49,99 € -24%
@Amazon
SSD WD Black SN770 1 To (PCIe Gen4, NMVe M.2, 5150 Mo/s) à 69,99 €
69,99 € 79 € -11%
@Amazon
Routeur TP-Link Archer AX53 WiFi 6 à 54,58 €
54,58 € 90 € -39%
@Amazon Espagne
Liseuse et carnet de notes Kindle Scribe 10.2 pouces + stylet basique à 277,74 €
277,74 € 350 € -21%
@Amazon Allemagne
Lego Creator Exprert 10298 Vespa 125 à 73,99 €
73,99 € 99,99 € -26%
@Amazon

Sujets relatifs
macro afficher masquer lignes tableau dans word 2010
Macro : Masquer des lignes ne contenant pas ...
macro pour trier un tableau et effacer les lignes sans saisie
Macro Excel, ajout lignes et valeurs...
Vba Masquer lignes
Suppression de lignes à l'aide d'une macro
masquer des colonnes par une macro
Modifier des lignes VBA par macro
masquer/afficher des lignes dans tableau word
macro caher des lignes exel
Plus de sujets relatifs à Macro masquer certaines lignes
 > Tous les forums > Forum Bureautique