Bonjour à tous,
Je suis en train de faire une macro et je n'ai plus qu'une chose à modifier mais étant totalement novice, j'aurai besoin d'aide. Le problème à rectifier est la partie en rouge, le reste de la macro fonctionne correctement et permet simplement de masquer diverses lignes de la feuille suivant les valeurs de certaines cellule.
Concernant la partie en rouge, Je ne sais pas si j'ai utilisé les bonnes fonctions alors voici ce que je veux que ma macro fasse exactement:
Si en cellule B18, je rentre 1
Je me retrouve en H18, jusque la ça va.
Par la suite, je voudrais que le programme vérifie que la valeur sur la colonne B pour chacune des lignes 31 à 35 est égale à la valeur de la cellule H18 multiplié par 2. Ainsi les lignes ne respectant pas la condition se masquent.
Merci pour votre aide.
Manu
Option Explicit
Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Union(Range("B10"), Range("B14"), Range("B18"), Range("B20"))) Is Nothing Then ' Condition pour que cela ne se déclenche pas si changement autre cellule
Select Case Target.Address
Case Is = Range("B10").Address
Select Case Target.Value
Case "1"
Rows("36:37").EntireRow.Hidden = True
Range("H10").Select
Case "2"
Rows("36:37").EntireRow.Hidden = False
Range("B12").Select
End Select
Case Is = Range("B14").Address
Select Case Target.Value
Case "1"
Rows("38:38").EntireRow.Hidden = True
Range("B15").Select
Case "2"
Rows("38:38").EntireRow.Hidden = False
Range("B15").Select
End Select
Case Is = Range("B18").Address
Select Case Target.Value
Case "1"
Range("H18").Select
Dim ligne As Integer
For ligne = 31 To 35
If Cells(ligne, 2) <> Cells(18, 8).Value * 0.2 Then
Rows(ligne & ":" & ligne).EntireRow.Hidden = True
Range("B20").Select
End If
Next
Case "2"
Rows("36:37").EntireRow.Hidden = False
Range("B12").Select
End Select
Case "2"
Range("31:35").EntireRow.Hidden = False
Range("B20").Select
End Select
Case Is = Range("B20").Address
Select Case Target.Value
Case "1"
Rows("30:30").EntireRow.Hidden = True
Range("H20").Select
Case "2"
Rows("30:30").EntireRow.Hidden = False
Range("B22").Select
End Select
End Select
End If
End Sub
Private Sub CommandButton1_Click()
Rows("20:40").EntireRow.Hidden = False
End Sub
Je suis en train de faire une macro et je n'ai plus qu'une chose à modifier mais étant totalement novice, j'aurai besoin d'aide. Le problème à rectifier est la partie en rouge, le reste de la macro fonctionne correctement et permet simplement de masquer diverses lignes de la feuille suivant les valeurs de certaines cellule.
Concernant la partie en rouge, Je ne sais pas si j'ai utilisé les bonnes fonctions alors voici ce que je veux que ma macro fasse exactement:
Si en cellule B18, je rentre 1
Je me retrouve en H18, jusque la ça va.
Par la suite, je voudrais que le programme vérifie que la valeur sur la colonne B pour chacune des lignes 31 à 35 est égale à la valeur de la cellule H18 multiplié par 2. Ainsi les lignes ne respectant pas la condition se masquent.
Merci pour votre aide.
Manu
Option Explicit
Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Union(Range("B10"), Range("B14"), Range("B18"), Range("B20"))) Is Nothing Then ' Condition pour que cela ne se déclenche pas si changement autre cellule
Select Case Target.Address
Case Is = Range("B10").Address
Select Case Target.Value
Case "1"
Rows("36:37").EntireRow.Hidden = True
Range("H10").Select
Case "2"
Rows("36:37").EntireRow.Hidden = False
Range("B12").Select
End Select
Case Is = Range("B14").Address
Select Case Target.Value
Case "1"
Rows("38:38").EntireRow.Hidden = True
Range("B15").Select
Case "2"
Rows("38:38").EntireRow.Hidden = False
Range("B15").Select
End Select
Case Is = Range("B18").Address
Select Case Target.Value
Case "1"
Range("H18").Select
Dim ligne As Integer
For ligne = 31 To 35
If Cells(ligne, 2) <> Cells(18, 8).Value * 0.2 Then
Rows(ligne & ":" & ligne).EntireRow.Hidden = True
Range("B20").Select
End If
Next
Case "2"
Rows("36:37").EntireRow.Hidden = False
Range("B12").Select
End Select
Case "2"
Range("31:35").EntireRow.Hidden = False
Range("B20").Select
End Select
Case Is = Range("B20").Address
Select Case Target.Value
Case "1"
Rows("30:30").EntireRow.Hidden = True
Range("H20").Select
Case "2"
Rows("30:30").EntireRow.Hidden = False
Range("B22").Select
End Select
End Select
End If
End Sub
Private Sub CommandButton1_Click()
Rows("20:40").EntireRow.Hidden = False
End Sub