XL 2016 VBA avec multiple conditions

Théo gestin

XLDnaute Nouveau
Bonjour ,
j'essaie d'éxécuter un macro pour masquer les lignes dans la plage ("G294:G500") et ("H294:H500") où la valeur = 0 dans les deux colonnes mais j'ai pas arrivé , j'ai essayé de faire AND entre les deux conditions mais ca marche pas .
celui là est le code mais qui marche que pour une seule condition

Sub MASQUER()

Dim cellule As Range
For Each cellule In Range("G294:G500")
If cellule.Value = "0" Then cellule.EntireRow.Hidden = True
Next cellule
End Sub
 

jpb

XLDnaute Nouveau
Bonjour,

j'ai un peu le même problème que Théo, j'ai une feuille qui contient des images, des références, des prix. L'utilisateur doit entrer une quantité et obtient un prix. En bas, il y a le total. A la fin de sa saisie, l'utilisateur clique sur un bouton "Trier et masquer" pour faire remonter les lignes où il y a des quantités et faire disparaître les lignes où il n'y en a pas (la feuille est assez longue). J'ai bidouillé la réponse de PierreJean, mais ça ne marche pas... :-(
Voici ce que j'ai :
La première macro est celle du tri, pour laquelle j'ai simplement fait un enregistrement. J'ai voulu rajouter l'autre macro à la suite en faisant quelques modifications inspirées de la macro du tri... bon, vous pouvez voir que mes connaissances en VBA sont nulles. D'ailleurs, je me demande si ça vaut le coup de faire 2 macros, peut-être vaut-il mieux tout mettre dans la même...

Merci de vos conseils,

Jean-Pierre :)

Sub Tri_donnees()
'
' Tri_donnees Macro
' Trie le classeur en fonction des quantités de bijoux demandées, du plus grand au plus petit
'

'
Range("A19:I103").Select
ActiveWorkbook.Worksheets("Laiton doré").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Laiton doré").Sort.SortFields.Add2 Key:=Range( _
"H20:H103"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Laiton doré").Sort
.SetRange Range("A19:I103")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub

Sub MASQUER()

Range("H20:H103").Select

For Each cellule In Range("H20:H103")
If cellule.Value = "0" And cellule.Offset(0, 1).Value = "0" Then cellule.EntireRow.Hidden = True
Next cellule
End Sub
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil,

Avec un train de retard, mais juste histoire de varier les plaisirs
Une autre syntaxe que celle proposée par pierrejean (que je salue au passage ;))
VB:
Sub MasquerLigneZeros()
Dim rng As Range
Set rng = [I294:I500]
rng.FormulaR1C1 = "=IF(AND(COUNTA(RC[-2]:RC[-1])=2,COUNTIF(RC[-2]:RC[-1],0)=2),""$$$"",1)"
rng.SpecialCells(xlCellTypeFormulas, 2).EntireRow.Hidden = True
Columns("I:I").Clear
End Sub

jpb
Pour infos
L'usage c'est de poser sa question dans sa propre discussion
(en cliquant sur le bouton: Créer une discussion
 

Discussions similaires

Réponses
2
Affichages
129

Statistiques des forums

Discussions
311 733
Messages
2 082 011
Membres
101 866
dernier inscrit
XFPRO