Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

problème avec macro pour masquer lignes

2 réponses
Avatar
Marc T
Bonjour =E0 tous,

J'ai cette macro qui fonctionne mais sur 52 onglets elle m'est un temps
=E9norme !!!
Comment faire pour tenter de la rendre plus v=E9loce sachant que je n'ai
que les 70 premi=E8res lignes =E0 traiter.
Sub masquerlignes()
Dim f As Worksheet
Dim Atrouver As Range
Dim LaVal$, NomF$
LaVal =3D "VRAI"
NomF =3D "*Sem*"
For Each f In Sheets
If f.Name Like NomF Then
Set Atrouver =3D f.Cells.Find(LaVal, LookIn:=3DxlValues)
If Not Atrouver Is Nothing Then
uneoccurence =3D Atrouver.Address
Do
Atrouver.EntireRow.Hidden =3D True
Set Atrouver =3D f.Cells.FindNext(Atrouver)
On Error Resume Next
Loop While Not Atrouver Is Nothing And Atrouver.Address <> uneoccurence
End If
End If
Next f
End Sub

merci d'avance et bonne journ=E9e =E0 tous
MarcT

2 réponses

Avatar
anonymousA
Bonjour,

Avec une boucle sur les feuilles et pour chacune de celles-ci,
l'utilisation d'un filtre élaboré si la valeur à trouver peut se situer
dans plusieurs colonnes ou d'un filtre simple ( avec l'option
personnalisée eventuellement) si l'occurence ne se situe que dans une
seule colonne permettra de masquer les lignes qui ne contiennent pas la
valeur en question

A+

Bonjour à tous,

J'ai cette macro qui fonctionne mais sur 52 onglets elle m'est un temps
énorme !!!
Comment faire pour tenter de la rendre plus véloce sachant que je n'ai
que les 70 premières lignes à traiter.
Sub masquerlignes()
Dim f As Worksheet
Dim Atrouver As Range
Dim LaVal$, NomF$
LaVal = "VRAI"
NomF = "*Sem*"
For Each f In Sheets
If f.Name Like NomF Then
Set Atrouver = f.Cells.Find(LaVal, LookIn:=xlValues)
If Not Atrouver Is Nothing Then
uneoccurence = Atrouver.Address
Do
Atrouver.EntireRow.Hidden = True
Set Atrouver = f.Cells.FindNext(Atrouver)
On Error Resume Next
Loop While Not Atrouver Is Nothing And Atrouver.Address <> uneoccurence
End If
End If
Next f
End Sub

merci d'avance et bonne journée à tous
MarcT



Avatar
Marc T
Bonjour Anonymous,

merci pour cette réponse rapide.
Comment rajouter une boucle su chacune des feuilles ? je ne sais pas
faire !!!
et je voudrais éviter le filtre pour une question de présentation.
merci encore
amicalement
MarcT
anonymousA wrote:
Bonjour,

Avec une boucle sur les feuilles et pour chacune de celles-ci,
l'utilisation d'un filtre élaboré si la valeur à trouver peut se si tuer
dans plusieurs colonnes ou d'un filtre simple ( avec l'option
personnalisée eventuellement) si l'occurence ne se situe que dans une
seule colonne permettra de masquer les lignes qui ne contiennent pas la
valeur en question

A+

Bonjour à tous,

J'ai cette macro qui fonctionne mais sur 52 onglets elle m'est un temps
énorme !!!
Comment faire pour tenter de la rendre plus véloce sachant que je n'ai
que les 70 premières lignes à traiter.
Sub masquerlignes()
Dim f As Worksheet
Dim Atrouver As Range
Dim LaVal$, NomF$
LaVal = "VRAI"
NomF = "*Sem*"
For Each f In Sheets
If f.Name Like NomF Then
Set Atrouver = f.Cells.Find(LaVal, LookIn:=xlValues)
If Not Atrouver Is Nothing Then
uneoccurence = Atrouver.Address
Do
Atrouver.EntireRow.Hidden = True
Set Atrouver = f.Cells.FindNext(Atrouver)
On Error Resume Next
Loop While Not Atrouver Is Nothing And Atrouver.Address <> uneoccurence
End If
End If
Next f
End Sub

merci d'avance et bonne journée à tous
MarcT