Je veux optimiser la taille de mes tableaux et n'afficher que les lignes dont
l'ensemble des cellules est egal à 0, sachant que la tache consiste en le
remplissage de plusieurs de tableaux de mêmes formats à partir d'un seul et
unique tableau?
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
MichDenis
Bonjour Kazo81,
Tu colles ceci dans un module standard et tu adaptes le nom de la feuille et de la plage dans la procédure.
Sub test()
Dim Rg As Range, R As Range With worksheets("Feuil1") 'Nom feuille `a adapter Set Rg = .Range("A1:G10") ' Plage à adapter End With
For Each R In Rg.Rows If Application.Sum(R) = 0 Then R.EntireRow.Hidden = True End If Next
End Sub
"Kazo81" a écrit dans le message de groupe de discussion : Je veux optimiser la taille de mes tableaux et n'afficher que les lignes dont l'ensemble des cellules est egal à 0, sachant que la tache consiste en le remplissage de plusieurs de tableaux de mêmes formats à partir d'un seul et unique tableau?
Merci.
Bonjour Kazo81,
Tu colles ceci dans un module standard
et tu adaptes le nom de la feuille et de la plage
dans la procédure.
Sub test()
Dim Rg As Range, R As Range
With worksheets("Feuil1") 'Nom feuille `a adapter
Set Rg = .Range("A1:G10") ' Plage à adapter
End With
For Each R In Rg.Rows
If Application.Sum(R) = 0 Then
R.EntireRow.Hidden = True
End If
Next
End Sub
"Kazo81" <Kazo81@discussions.microsoft.com> a écrit dans le message de groupe de discussion : 206B2A0A-26F6-4812-8580-60CFED494CBB@microsoft.com...
Je veux optimiser la taille de mes tableaux et n'afficher que les lignes dont
l'ensemble des cellules est egal à 0, sachant que la tache consiste en le
remplissage de plusieurs de tableaux de mêmes formats à partir d'un seul et
unique tableau?
Tu colles ceci dans un module standard et tu adaptes le nom de la feuille et de la plage dans la procédure.
Sub test()
Dim Rg As Range, R As Range With worksheets("Feuil1") 'Nom feuille `a adapter Set Rg = .Range("A1:G10") ' Plage à adapter End With
For Each R In Rg.Rows If Application.Sum(R) = 0 Then R.EntireRow.Hidden = True End If Next
End Sub
"Kazo81" a écrit dans le message de groupe de discussion : Je veux optimiser la taille de mes tableaux et n'afficher que les lignes dont l'ensemble des cellules est egal à 0, sachant que la tache consiste en le remplissage de plusieurs de tableaux de mêmes formats à partir d'un seul et unique tableau?
Private Sub Workbook_SheetActivate(ByVal Sh As Object) For Each XROW In [A1].CurrentRegion.Rows XROW.EntireRow.Hidden = Application.Sum(XROW) = 0 Next XROW End Sub
NB: Pour que ça marche tous les tableaux doivent commencer en A1
Je veux optimiser la taille de mes tableaux et n'afficher que les ligne s dont l'ensemble des cellules est egal à 0, sachant que la tache consist e en le remplissage de plusieurs de tableaux de mêmes formats à parti r d'un seul et unique tableau?
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
For Each XROW In [A1].CurrentRegion.Rows
XROW.EntireRow.Hidden = Application.Sum(XROW) = 0
Next XROW
End Sub
NB: Pour que ça marche tous les tableaux doivent commencer en A1
Je veux optimiser la taille de mes tableaux et n'afficher que les ligne s dont
l'ensemble des cellules est egal à 0, sachant que la tache consist e en le
remplissage de plusieurs de tableaux de mêmes formats à parti r d'un seul et
unique tableau?
Private Sub Workbook_SheetActivate(ByVal Sh As Object) For Each XROW In [A1].CurrentRegion.Rows XROW.EntireRow.Hidden = Application.Sum(XROW) = 0 Next XROW End Sub
NB: Pour que ça marche tous les tableaux doivent commencer en A1
Je veux optimiser la taille de mes tableaux et n'afficher que les ligne s dont l'ensemble des cellules est egal à 0, sachant que la tache consist e en le remplissage de plusieurs de tableaux de mêmes formats à parti r d'un seul et unique tableau?
Private Sub Workbook_SheetActivate(ByVal Sh As Object) For Each XROW In [A1].CurrentRegion.Rows XROW.EntireRow.Hidden = Application.Sum(XROW) = 0 Next XROW End Sub
NB: Pour que ça marche tous les tableaux doivent commencer en A1
Je veux optimiser la taille de mes tableaux et n'afficher que les lignes dont l'ensemble des cellules est egal à 0, sachant que la tache consiste en le remplissage de plusieurs de tableaux de même s formats à partir d'un seul et unique tableau?
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
For Each XROW In [A1].CurrentRegion.Rows
XROW.EntireRow.Hidden = Application.Sum(XROW) = 0
Next XROW
End Sub
NB: Pour que ça marche tous les tableaux doivent commencer en A1
Je veux optimiser la taille de mes tableaux et n'afficher que les
lignes dont l'ensemble des cellules est egal à 0, sachant que la
tache consiste en le remplissage de plusieurs de tableaux de même s
formats à partir d'un seul et unique tableau?
Private Sub Workbook_SheetActivate(ByVal Sh As Object) For Each XROW In [A1].CurrentRegion.Rows XROW.EntireRow.Hidden = Application.Sum(XROW) = 0 Next XROW End Sub
NB: Pour que ça marche tous les tableaux doivent commencer en A1
Je veux optimiser la taille de mes tableaux et n'afficher que les lignes dont l'ensemble des cellules est egal à 0, sachant que la tache consiste en le remplissage de plusieurs de tableaux de même s formats à partir d'un seul et unique tableau?
Merci.
Caetera
> Je veux optimiser la taille de mes tableaux et n'afficher que les lignes dont l'ensemble des cellules est egal à 0, sachant que la tache consiste en le remplissage de plusieurs de tableaux de mêmes formats à partir d'un seul et unique tableau?
Avec un tableau nommé "leTableau" ça pourrait donner ça :
Sub MasquerLesLignesàZéro() premLg = [leTableau].Find("*", LookIn:=xlFormulas, SearchOrder:=xlByRows).Row derLg = [leTableau].Find("*", LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row premCol = [leTableau].Find("*", LookIn:=xlFormulas, SearchOrder:=xlByColumns).Column derCol = [leTableau].Find("*", LookIn:=xlFormulas, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column For i = premLg To derLg If Evaluate("sumproduct(1*(" & Cells(i, premCol).Address & ":" & Cells(i, derCol).Address & "<>0))") = 0 Then Rows(i).Hidden = True Next End Sub
PS : les solutions proposées passant par "Application.Sum(R) = 0 " ne me semblent pas convenir car la somme d'une plage = 0 ne signifie pas pour autant que chaque élément de cette plage soit égal à 0 comme semble le dire la question initiale
> Je veux optimiser la taille de mes tableaux et n'afficher que les lignes dont
l'ensemble des cellules est egal à 0, sachant que la tache consiste en le
remplissage de plusieurs de tableaux de mêmes formats à partir d'un seul et
unique tableau?
Avec un tableau nommé "leTableau" ça pourrait donner ça :
Sub MasquerLesLignesàZéro()
premLg = [leTableau].Find("*", LookIn:=xlFormulas, SearchOrder:=xlByRows).Row
derLg = [leTableau].Find("*", LookIn:=xlFormulas, SearchOrder:=xlByRows,
SearchDirection:=xlPrevious).Row
premCol = [leTableau].Find("*", LookIn:=xlFormulas,
SearchOrder:=xlByColumns).Column
derCol = [leTableau].Find("*", LookIn:=xlFormulas, SearchOrder:=xlByColumns,
SearchDirection:=xlPrevious).Column
For i = premLg To derLg
If Evaluate("sumproduct(1*(" & Cells(i, premCol).Address & ":" & Cells(i,
derCol).Address & "<>0))") = 0 Then Rows(i).Hidden = True
Next
End Sub
PS : les solutions proposées passant par "Application.Sum(R) = 0 " ne me
semblent pas convenir car la somme d'une plage = 0 ne signifie pas pour autant
que chaque élément de cette plage soit égal à 0 comme semble le dire la question
initiale
> Je veux optimiser la taille de mes tableaux et n'afficher que les lignes dont l'ensemble des cellules est egal à 0, sachant que la tache consiste en le remplissage de plusieurs de tableaux de mêmes formats à partir d'un seul et unique tableau?
Avec un tableau nommé "leTableau" ça pourrait donner ça :
Sub MasquerLesLignesàZéro() premLg = [leTableau].Find("*", LookIn:=xlFormulas, SearchOrder:=xlByRows).Row derLg = [leTableau].Find("*", LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row premCol = [leTableau].Find("*", LookIn:=xlFormulas, SearchOrder:=xlByColumns).Column derCol = [leTableau].Find("*", LookIn:=xlFormulas, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column For i = premLg To derLg If Evaluate("sumproduct(1*(" & Cells(i, premCol).Address & ":" & Cells(i, derCol).Address & "<>0))") = 0 Then Rows(i).Hidden = True Next End Sub
PS : les solutions proposées passant par "Application.Sum(R) = 0 " ne me semblent pas convenir car la somme d'une plage = 0 ne signifie pas pour autant que chaque élément de cette plage soit égal à 0 comme semble le dire la question initiale
la fonction SUM est incorrecte car elle ne permet pas de s'assurer que l'ensemble des valeurs de la ligne est nul. la soluce Private Sub Worksheet_Activate() For Each XROW In [A1].CurrentRegion.Rows XROW.EntireRow.Hidden = (Application.SumIf(XROW, ">0", XROW) = 0) And (Application.SumIf(XROW, "<0", XROW) = 0) Next XROW End Sub
"Corto" a écrit dans le message de news:
Bonjour Kazo81, A mettre dans ThisWorkbook dans l'éditeur de macros (Alt+F11)
Private Sub Workbook_SheetActivate(ByVal Sh As Object) For Each XROW In [A1].CurrentRegion.Rows XROW.EntireRow.Hidden = Application.Sum(XROW) = 0 Next XROW End Sub
NB: Pour que ça marche tous les tableaux doivent commencer en A1
Corto
Kazo81 a écrit :
Je veux optimiser la taille de mes tableaux et n'afficher que les lignes dont l'ensemble des cellules est egal à 0, sachant que la tache consiste en le remplissage de plusieurs de tableaux de mêmes formats à partir d'un seul et unique tableau?
Merci.
la fonction SUM est incorrecte car elle ne permet pas de s'assurer que
l'ensemble des valeurs de la ligne est nul.
la soluce
Private Sub Worksheet_Activate()
For Each XROW In [A1].CurrentRegion.Rows
XROW.EntireRow.Hidden = (Application.SumIf(XROW, ">0", XROW) = 0) And
(Application.SumIf(XROW, "<0", XROW) = 0)
Next XROW
End Sub
"Corto" <fcdirckx@hotmail.com> a écrit dans le message de news:
ubx8S7kzJHA.1712@TK2MSFTNGP03.phx.gbl...
Bonjour Kazo81,
A mettre dans ThisWorkbook dans l'éditeur de macros (Alt+F11)
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
For Each XROW In [A1].CurrentRegion.Rows
XROW.EntireRow.Hidden = Application.Sum(XROW) = 0
Next XROW
End Sub
NB: Pour que ça marche tous les tableaux doivent commencer en A1
Corto
Kazo81 a écrit :
Je veux optimiser la taille de mes tableaux et n'afficher que les lignes
dont l'ensemble des cellules est egal à 0, sachant que la tache consiste
en le remplissage de plusieurs de tableaux de mêmes formats à partir d'un
seul et unique tableau?
la fonction SUM est incorrecte car elle ne permet pas de s'assurer que l'ensemble des valeurs de la ligne est nul. la soluce Private Sub Worksheet_Activate() For Each XROW In [A1].CurrentRegion.Rows XROW.EntireRow.Hidden = (Application.SumIf(XROW, ">0", XROW) = 0) And (Application.SumIf(XROW, "<0", XROW) = 0) Next XROW End Sub
"Corto" a écrit dans le message de news:
Bonjour Kazo81, A mettre dans ThisWorkbook dans l'éditeur de macros (Alt+F11)
Private Sub Workbook_SheetActivate(ByVal Sh As Object) For Each XROW In [A1].CurrentRegion.Rows XROW.EntireRow.Hidden = Application.Sum(XROW) = 0 Next XROW End Sub
NB: Pour que ça marche tous les tableaux doivent commencer en A1
Corto
Kazo81 a écrit :
Je veux optimiser la taille de mes tableaux et n'afficher que les lignes dont l'ensemble des cellules est egal à 0, sachant que la tache consiste en le remplissage de plusieurs de tableaux de mêmes formats à partir d'un seul et unique tableau?
Merci.
Caetera
> la soluce Private Sub Worksheet_Activate() For Each XROW In [A1].CurrentRegion.Rows XROW.EntireRow.Hidden = (Application.SumIf(XROW, ">0", XROW) = 0) And (Application.SumIf(XROW, "<0", XROW) = 0) Next XROW End Sub
Tu devrais tester ta macro sur l'exemple suivant....
> la soluce
Private Sub Worksheet_Activate()
For Each XROW In [A1].CurrentRegion.Rows
XROW.EntireRow.Hidden = (Application.SumIf(XROW, ">0", XROW) = 0) And
(Application.SumIf(XROW, "<0", XROW) = 0)
Next XROW
End Sub
Tu devrais tester ta macro sur l'exemple suivant....
> la soluce Private Sub Worksheet_Activate() For Each XROW In [A1].CurrentRegion.Rows XROW.EntireRow.Hidden = (Application.SumIf(XROW, ">0", XROW) = 0) And (Application.SumIf(XROW, "<0", XROW) = 0) Next XROW End Sub
Tu devrais tester ta macro sur l'exemple suivant....