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

Masquer avec CONDITIONS

4 réponses
Avatar
hasardeux
Bonjour,

J'ai un probl=E8me tr=E8s urgent si vous pouvez m'aider =E0 le=20
d=E9passer.

Dans une feuille de calcul, o=F9 j'ai un tableau =E0 double=20
entr=E9e et o=F9 il y a un tas de formules.

Ce que je voudrais:

- Masquer toutes les lignes du tableau SI ET SEULEMENT SI=20
les cellules de J =E0 P d'une ligne donn=E9e ne contiennent=20
aucune valeur et AUCUN REMPLISSAGE

Exemple:=20
* J1:P1: si les cellules ne contiennent aucune valeur "ET"=20
Aucun remplissage =3D=3D> alors siprimer la ligne 1

* J23:P23: si les cellules ne contiennent aucune=20
valeur "ET" Aucun remplissage =3D=3D> alors siprimer la ligne=20
23

et de fa=E7on g=E9n=E9rale: Jx:Px: si les cellules ne=20
contiennent aucune valeur "ET" Aucun remplissage =3D=3D> alors=20
siprimer la ligne x


Merci de m'aider, c'est tr=E8s tr=E8s urgent

4 réponses

Avatar
Vincent.
Salut !
Une solution macro (qui marche si tu te places sur une
cellule quelconque de ton tableau, a priori) :
(ATTENTION : je ne l'ai pas testée !!!! => à tester sur
une copie de ton fichier de base !!!)

sub mpfe()
dim cel as range
dim i, nbSupp as integer
dim Ligne as boolean
nbsupp = 0
for each cel in intersect(usedrange.currentregion.cells, _
range("J:J")).cells
Ligne = false
if cel.offset(-nbsupp).value = 0 or cel.offset(-
nbsupp).value ="" then
for i = 0 to 6
if cel.offset(-nbsupp,i).value <> 0 or _
cel.offset(-nbsupp,i).value <>"" then
Ligne = False
Exit for
else
Ligne = true
end if
next i
if Ligne = true then
cel.offset(-nbsupp).entirerow.delete
nbsupp = nbsupp + 1
end if
end if
next cel
end sub

-----Message d'origine-----
Bonjour,

J'ai un problème très urgent si vous pouvez m'aider à le
dépasser.

Dans une feuille de calcul, où j'ai un tableau à double
entrée et où il y a un tas de formules.

Ce que je voudrais:

- Masquer toutes les lignes du tableau SI ET SEULEMENT SI
les cellules de J à P d'une ligne donnée ne contiennent
aucune valeur et AUCUN REMPLISSAGE

Exemple:
* J1:P1: si les cellules ne contiennent aucune
valeur "ET"

Aucun remplissage ==> alors siprimer la ligne 1

* J23:P23: si les cellules ne contiennent aucune
valeur "ET" Aucun remplissage ==> alors siprimer la ligne
23

et de façon générale: Jx:Px: si les cellules ne
contiennent aucune valeur "ET" Aucun remplissage ==>
alors

siprimer la ligne x


Merci de m'aider, c'est très très urgent

.



Avatar
hasardeux
Merci bcp même si j l'ai pas encore testé.

Mais SVP, quelle est la macro pour faire marche arrière,
c'est à dire afficher ce qu'on a masqué par ta macro

;) Merci beaucoup


-----Message d'origine-----
Salut !
Une solution macro (qui marche si tu te places sur une
cellule quelconque de ton tableau, a priori) :
(ATTENTION : je ne l'ai pas testée !!!! => à tester sur
une copie de ton fichier de base !!!)

sub mpfe()
dim cel as range
dim i, nbSupp as integer
dim Ligne as boolean
nbsupp = 0
for each cel in intersect(usedrange.currentregion.cells, _
range("J:J")).cells
Ligne = false
if cel.offset(-nbsupp).value = 0 or cel.offset(-
nbsupp).value ="" then
for i = 0 to 6
if cel.offset(-nbsupp,i).value <> 0 or _
cel.offset(-nbsupp,i).value <>"" then
Ligne = False
Exit for
else
Ligne = true
end if
next i
if Ligne = true then
cel.offset(-nbsupp).entirerow.delete
nbsupp = nbsupp + 1
end if
end if
next cel
end sub

-----Message d'origine-----
Bonjour,

J'ai un problème très urgent si vous pouvez m'aider à le
dépasser.

Dans une feuille de calcul, où j'ai un tableau à double
entrée et où il y a un tas de formules.

Ce que je voudrais:

- Masquer toutes les lignes du tableau SI ET SEULEMENT
SI


les cellules de J à P d'une ligne donnée ne contiennent
aucune valeur et AUCUN REMPLISSAGE

Exemple:
* J1:P1: si les cellules ne contiennent aucune
valeur "ET"

Aucun remplissage ==> alors siprimer la ligne 1

* J23:P23: si les cellules ne contiennent aucune
valeur "ET" Aucun remplissage ==> alors siprimer la
ligne


23

et de façon générale: Jx:Px: si les cellules ne
contiennent aucune valeur "ET" Aucun remplissage ==>
alors

siprimer la ligne x


Merci de m'aider, c'est très très urgent

.

.





Avatar
Nicolas B.
Salut,

La macro que te propose Vincent supprime les lignes cherchées. Si tu veux
pouvoir revenir en arrière, remplace
cel.offset(-nbsupp).entirerow.delete
par
cel.offset(-nbsupp).entirerow.hidden = true

Ainsi, tu pourras afficher tes lignes après avoir exécuté la macro, car
elles ne seront que masquées.

Bonne chance
--
Nicolas B.

hasardeux wrote:
Merci bcp même si j l'ai pas encore testé.

Mais SVP, quelle est la macro pour faire marche arrière,
c'est à dire afficher ce qu'on a masqué par ta macro

;) Merci beaucoup


-----Message d'origine-----
Salut !
Une solution macro (qui marche si tu te places sur une
cellule quelconque de ton tableau, a priori) :
(ATTENTION : je ne l'ai pas testée !!!! => à tester sur
une copie de ton fichier de base !!!)

sub mpfe()
dim cel as range
dim i, nbSupp as integer
dim Ligne as boolean
nbsupp = 0
for each cel in intersect(usedrange.currentregion.cells, _
range("J:J")).cells
Ligne = false
if cel.offset(-nbsupp).value = 0 or cel.offset(-
nbsupp).value ="" then
for i = 0 to 6
if cel.offset(-nbsupp,i).value <> 0 or _
cel.offset(-nbsupp,i).value <>"" then
Ligne = False
Exit for
else
Ligne = true
end if
next i
if Ligne = true then
cel.offset(-nbsupp).entirerow.delete
nbsupp = nbsupp + 1
end if
end if
next cel
end sub

-----Message d'origine-----
Bonjour,

J'ai un problème très urgent si vous pouvez m'aider à le
dépasser.

Dans une feuille de calcul, où j'ai un tableau à double
entrée et où il y a un tas de formules.

Ce que je voudrais:

- Masquer toutes les lignes du tableau SI ET SEULEMENT
SI


les cellules de J à P d'une ligne donnée ne contiennent
aucune valeur et AUCUN REMPLISSAGE

Exemple:
* J1:P1: si les cellules ne contiennent aucune
valeur "ET"

Aucun remplissage ==> alors siprimer la ligne 1

* J23:P23: si les cellules ne contiennent aucune
valeur "ET" Aucun remplissage ==> alors siprimer la
ligne


23

et de façon générale: Jx:Px: si les cellules ne
contiennent aucune valeur "ET" Aucun remplissage ==> alors
siprimer la ligne x


Merci de m'aider, c'est très très urgent

.

.






Avatar
Nicolas B.
Ceci devrait te convenir (attention aux retours à la ligne) :

Sub MasqueLignes()
Dim Cellule As Range
Dim Ligne As Boolean
Dim i As Integer

For Each Cellule In Range("J2:J" & ActiveCell.SpecialCells(xlLastCell).Row)
Ligne = False
For i = 0 To 6
If Cellule.Offset(0, i) <> "" Or Cellule.Offset(0,
i).Interior.ColorIndex <> xlNone Or Cellule.Offset(-1,
i).Interior.ColorIndex <> xlNone Then
Ligne = True
End If
Next
If Ligne = False Then
Cellule.EntireRow.Hidden = True
End If
Next
End Sub

A+
--
Nicolas B.

hasardeux wrote:
Merci Nicolas,

J'ai fait ce que tu m'as proposé, mais dans ce cas rien ne
se passe aucune ligne n'est masquée.

En plus, pourrais tu me modifier la macro de telle façon à
ne pas masquer la ligne dont la ligne juste audessus
contient un remplissage quelconque (c'est à dire pas Aucun
remplissage)

Merci bcp à tous


-----Message d'origine-----
Salut,

La macro que te propose Vincent supprime les lignes cherchées. Si tu
veux pouvoir revenir en arrière, remplace
cel.offset(-nbsupp).entirerow.delete
par
cel.offset(-nbsupp).entirerow.hidden = true

Ainsi, tu pourras afficher tes lignes après avoir exécuté la macro,
car elles ne seront que masquées.

Bonne chance
--
Nicolas B.

hasardeux wrote:
Merci bcp même si j l'ai pas encore testé.

Mais SVP, quelle est la macro pour faire marche arrière,
c'est à dire afficher ce qu'on a masqué par ta macro

;) Merci beaucoup


-----Message d'origine-----
Salut !
Une solution macro (qui marche si tu te places sur une
cellule quelconque de ton tableau, a priori) :
(ATTENTION : je ne l'ai pas testée !!!! => à tester sur
une copie de ton fichier de base !!!)

sub mpfe()
dim cel as range
dim i, nbSupp as integer
dim Ligne as boolean
nbsupp = 0
for each cel in intersect
(usedrange.currentregion.cells, _



range("J:J")).cells
Ligne = false
if cel.offset(-nbsupp).value = 0 or cel.offset(-
nbsupp).value ="" then
for i = 0 to 6
if cel.offset(-nbsupp,i).value <> 0 or _
cel.offset(-nbsupp,i).value <>"" then
Ligne = False
Exit for
else
Ligne = true
end if
next i
if Ligne = true then
cel.offset(-nbsupp).entirerow.delete
nbsupp = nbsupp + 1
end if
end if
next cel
end sub

-----Message d'origine-----
Bonjour,

J'ai un problème très urgent si vous pouvez m'aider à le
dépasser.

Dans une feuille de calcul, où j'ai un tableau à double
entrée et où il y a un tas de formules.

Ce que je voudrais:

- Masquer toutes les lignes du tableau SI ET SEULEMENT SI
les cellules de J à P d'une ligne donnée ne contiennent
aucune valeur et AUCUN REMPLISSAGE

Exemple:
* J1:P1: si les cellules ne contiennent aucune
valeur "ET"

Aucun remplissage ==> alors siprimer la ligne 1

* J23:P23: si les cellules ne contiennent aucune
valeur "ET" Aucun remplissage ==> alors siprimer la ligne
23

et de façon générale: Jx:Px: si les cellules ne
contiennent aucune valeur "ET" Aucun remplissage ==> alors
siprimer la ligne x


Merci de m'aider, c'est très très urgent

.

.





.