Macro Worksheet_Change à transformer en macro normal

GuillaumA

XLDnaute Occasionnel
Bonjour,
J'ai la macro suivante:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address = "$C$20" Then Range("22:22,24:24,26:27").EntireRow.Hidden = Target > 0
If Target.Address = "$C$41" Then Range("43:43,52:53").EntireRow.Hidden = Target > 0
If Target.Address = "$C$66" Then Rows("67:67").Hidden = Target > 0
If Target.Address = "$C$145" Then Range("146:146,149:149,155:155").EntireRow.Hidden = Target > 0
End Sub

J'aimerai la transformer afin qu'elle s'active lors de l'appui sur un bouton et non par une validation direct des cellules (clique dessus + entrer).
En effet, j'aimerai que cette dernière vérifie dans les cellules C20, C41, C66 et C145 a chaque clique sur le bouton et non en validant chaque fois les cellules.

Merci de votre aide,

Amicalement,
Guillaume
 
Dernière édition:

GuillaumA

XLDnaute Occasionnel
Re : Rendre automatique une macro.

Ceci ne marche pas : :'(
Malgré le côté bourrin de la méthode...

Code:
Sub Audits()
Application.ScreenUpdating = False
For i = 22 To 22
    Rows(i).Hidden = Range("$C$20") > 0
Next i
For i = 24 To 24
    Rows(i).Hidden = Range("$C$20") > 0
Next i
For i = 26 To 27
    Rows(i).Hidden = Range("$C$20") > 0
Next i
For i = 43 To 43
    Rows(i).Hidden = Range("$C$41") > 0
Next i
For i = 52 To 53
    Rows(i).Hidden = Range("$C$41") > 0
Next i
For i = 67 To 67
    Rows(i).Hidden = Range("$C$66") > 0
Next i
For i = 146 To 146
    Rows(i).Hidden = Range("$C$145") > 0
Next i
For i = 149 To 149
    Rows(i).Hidden = Range("$C$145") > 0
Next i
For i = 155 To 155
    Rows(i).Hidden = Range("$C$145") > 0
Next i
Application.ScreenUpdating = True
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Macro Worksheet_Change à transformer en macro normal

Bonsoir,

devrait fonctionner, à noter que ce code s'applique sur la feuille active où bien sur la feuille du module dans lequel il a été placé... Attention aussi aux cellules fusionnées...

bonne soirée
@+
 

Staple1600

XLDnaute Barbatruc
Re : Macro Worksheet_Change à transformer en macro normal

Bonsoir


En en peu plus court ;) (test OK chez moi)

Code:
Sub AuditsBIS()
Dim i As Long
Application.ScreenUpdating = False
For i = 22 To 155
Select Case i
Case 24, 26 To 27
Rows(i).Hidden = Range("$C$20") > 0
Case 43, 52 To 53
Rows(i).Hidden = Range("$C$41") > 0
Case 67
Rows(i).Hidden = Range("$C$66") > 0
 Case 146, 149, 155
Rows(i).Hidden = Range("$C$145") > 0
End Select
Next i
Application.ScreenUpdating = True
End Sub
 

Si...

XLDnaute Barbatruc
Re : Macro Worksheet_Change à transformer en macro normal

salut

dans le même style, à tester
Code:
Sub Vu()
  Dim Ici As String
  Ici = Activecell.Address
  If Ici = "$C$20" Then Range("22:22,24:24,26:27").EntireRow.Hidden = [C20] > 0
  If Ici = "$C$41" Then Range("43:43,52:53").EntireRow.Hidden = [C41] > 0
  If Ici = "$C$66" Then Rows("67:67").Hidden = [C66] > 0
  If Ici = "$C$145" Then Range("146:146,149:149,155:155").EntireRow.Hidden = [C145] > 0
End Sub
 

GuillaumA

XLDnaute Occasionnel
Re : Macro Worksheet_Change à transformer en macro normal

Bonjour,
Merci pour vos réponses.
En effet, ma macro marchait et comme tu la dit Pierrot. Il suffit juste de la mettre sur la feuille active...

Merci Staple, Si... J'ai utilisé vos code pour alléger ma solution avec une préférence pour le code de Staple qui me permet de rajouter quantité de lignes ciblés encore plus facilement.

Bonne journée à vous tous,

Amicalement,
Guillaume
 

Discussions similaires

Réponses
7
Affichages
312

Membres actuellement en ligne

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa