Macro
Résolu
Vive la vie!
-
Vive la vie! -
Vive la vie! -
Bonjour,
Je n'arrive pas à mettre ces formule ensemble est-ce que quelqu'un peut m'aider je sais qu'elle se répète et qu'il faut les mettre ensemble mais je n'y arrive pas...
Option Explicit
Private Sub CheckBox1_Change()
With CheckBox1
If .Value = True Then .Caption = ""
If .Value = False Then .Caption = ""
End With
Call Macro1
End Sub
Private Sub Worksheet_Change(ByVal sel As Range)
If Not Intersect([A3], sel) Is Nothing Then
Dim c As Integer
Dim l As Integer
l = 7 ' ligne des années
For c = 1 To Cells(l, Rows(1).Cells.Count).End(xlToLeft).Column
If Cells(l, c).Value <> sel.Value And Cells(l, c).Value <> "" Then
Columns(c).Hidden = True
Else
Columns(c).Hidden = False
End If
Next c
End If
End Sub
Public avant As Variant
Private Sub Worksheet_SelectionChange(ByVal sel As Range)
If sel.Column = 2 Then avant = sel.Value
End Sub
Private Sub Worksheet_Change(ByVal sel As Range)
If sel.Cells.Count = 1 And sel.Row > 10 Then
If sel.Column = 2 And avant = "" Then
Cells(sel.Row - 1, 5).Resize(5, 53).FillDown
End If
End If
End Sub
Je n'arrive pas à mettre ces formule ensemble est-ce que quelqu'un peut m'aider je sais qu'elle se répète et qu'il faut les mettre ensemble mais je n'y arrive pas...
Option Explicit
Private Sub CheckBox1_Change()
With CheckBox1
If .Value = True Then .Caption = ""
If .Value = False Then .Caption = ""
End With
Call Macro1
End Sub
Private Sub Worksheet_Change(ByVal sel As Range)
If Not Intersect([A3], sel) Is Nothing Then
Dim c As Integer
Dim l As Integer
l = 7 ' ligne des années
For c = 1 To Cells(l, Rows(1).Cells.Count).End(xlToLeft).Column
If Cells(l, c).Value <> sel.Value And Cells(l, c).Value <> "" Then
Columns(c).Hidden = True
Else
Columns(c).Hidden = False
End If
Next c
End If
End Sub
Public avant As Variant
Private Sub Worksheet_SelectionChange(ByVal sel As Range)
If sel.Column = 2 Then avant = sel.Value
End Sub
Private Sub Worksheet_Change(ByVal sel As Range)
If sel.Cells.Count = 1 And sel.Row > 10 Then
If sel.Column = 2 And avant = "" Then
Cells(sel.Row - 1, 5).Resize(5, 53).FillDown
End If
End If
End Sub
A voir également:
- Macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro maker - Télécharger - Divers Utilitaires
- Macro word - Guide
2 réponses
bonjour
Dans cet ordre cela devrait fonctionner en supprimant l'inutile :
Dans cet ordre cela devrait fonctionner en supprimant l'inutile :
Option Explicit Public avant As Variant Private Sub Worksheet_SelectionChange(ByVal sel As Range) If sel.Column = 2 Then avant = sel.Value End Sub Private Sub Worksheet_Change(ByVal sel As Range) If sel.Cells.Count = 1 And sel.Row > 10 Then If sel.Column = 2 And avant = "" Then Cells(sel.Row - 1, 5).Resize(5, 53).FillDown End If End If 'à supprimer 'End Sub 'Private Sub Worksheet_Change(ByVal sel As Range) If Not Intersect([A3], sel) Is Nothing Then Dim c As Integer Dim l As Integer l = 7 ' ligne des années For c = 1 To Cells(l, Rows(1).Cells.Count).End(xlToLeft).Column If Cells(l, c).Value <> sel.Value And Cells(l, c).Value <> "" Then Columns(c).Hidden = True Else Columns(c).Hidden = False End If Next c End If End Sub Private Sub CheckBox1_Change() 'à supprimer car sert à rien 'With CheckBox1 'If .Value = True Then .Caption = "" 'If .Value = False Then .Caption = "" 'End With Call Macro1 End Sub