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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
.
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
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
.
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
.
.
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
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
.
.
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
.
.
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
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
.
.
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
.
.
.
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
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