Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

SelectionChange(ByVal Target As Range)

5 réponses
Avatar
Jean-Paul V
Bonjour à tous

Je souhaiterais remplacer 35 macros par une macro plus générale.

Mes 35 macros actuelles sont :
Sub MASIA()
Range("B7").Select
FILTRE1
End Sub

Sub MBRAZIL()
Range("B8").Select
FILTRE1
End Sub

…ect

Sub FILTRE1()
Selection.Copy
Sheets("ALLDATA").Select
Range("CELCRIT").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.AutoFilter Field:=1, Criteria1:=Range("CELCRIT").Value
End Sub

Je souhaiterais déclencher ces 35 macros lorsque l’on sélectionne une des
cellules du Range ‘’NAMES ‘’ ( actuellement entre B7 B41 ) , un truc mis dans
le code de la feuille du Range(‘’NAMES’’) comme :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rg As Range
'Si cellule sélectionnée est dans le Range ''NAMES'',comment faire ce test ?
Set Rg = ActiveCell
'If Rg.Column = 2 Then
Rg.Select
FILTRE1
'End If
Set Rg = Nothing
End Sub
Comment écrire cette Private Sub Worksheet pour qu'elle déclenche les 35
filtres différents en cliquant à l'interieur du champ NAMES.

à+ j'espère

5 réponses

Avatar
JB
Bonjour,

Le champ est nommé xxxx (Names est un mot clé)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([xxxx], Target) Is Nothing Then
filtre1
End If
End Sub

Cordialement JB


On 12 avr, 06:44, Jean-Paul V
wrote:
Bonjour à tous

Je souhaiterais remplacer 35 macros par une macro plus générale.

Mes 35 macros actuelles sont :
Sub MASIA()
Range("B7").Select
FILTRE1
End Sub

Sub MBRAZIL()
Range("B8").Select
FILTRE1
End Sub

...ect

Sub FILTRE1()
Selection.Copy
Sheets("ALLDATA").Select
Range("CELCRIT").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBl anks:= _
False, Transpose:úlse
Selection.AutoFilter Field:=1, Criteria1:=Range("CELCRIT").Value
End Sub

Je souhaiterais déclencher ces 35 macros lorsque l'on sélectionne une des
cellules du Range ''NAMES '' ( actuellement entre B7 B41 ) , un truc mis dans
le code de la feuille du Range(''NAMES'') comme :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rg As Range
'Si cellule sélectionnée est dans le Range ''NAMES'',comment faire ce test ?
Set Rg = ActiveCell
'If Rg.Column = 2 Then
Rg.Select
FILTRE1
'End If
Set Rg = Nothing
End Sub
Comment écrire cette Private Sub Worksheet pour qu'elle déclenche les 35
filtres différents en cliquant à l'interieur du champ NAMES.

à+ j'espère


Avatar
Jean-Paul V
Bonjour JB

Merci ça marche impeccable !


Bonjour,

Le champ est nommé xxxx (Names est un mot clé)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([xxxx], Target) Is Nothing Then
filtre1
End If
End Sub

Cordialement JB


On 12 avr, 06:44, Jean-Paul V
wrote:
Bonjour à tous

Je souhaiterais remplacer 35 macros par une macro plus générale.

Mes 35 macros actuelles sont :
Sub MASIA()
Range("B7").Select
FILTRE1
End Sub

Sub MBRAZIL()
Range("B8").Select
FILTRE1
End Sub

...ect

Sub FILTRE1()
Selection.Copy
Sheets("ALLDATA").Select
Range("CELCRIT").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
Selection.AutoFilter Field:=1, Criteria1:=Range("CELCRIT").Value
End Sub

Je souhaiterais déclencher ces 35 macros lorsque l'on sélectionne une des
cellules du Range ''NAMES '' ( actuellement entre B7 B41 ) , un truc mis dans
le code de la feuille du Range(''NAMES'') comme :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rg As Range
'Si cellule sélectionnée est dans le Range ''NAMES'',comment faire ce test ?
Set Rg = ActiveCell
'If Rg.Column = 2 Then
Rg.Select
FILTRE1
'End If
Set Rg = Nothing
End Sub
Comment écrire cette Private Sub Worksheet pour qu'elle déclenche les 35
filtres différents en cliquant à l'interieur du champ NAMES.

à+ j'espère







Avatar
Jean-Paul V
JB
Pourriez vous me dire quelle instruction mettre après le
Sheets("ALLDATA").Select dans la macro Filtre1 de façon que si le filtre
automatique à été enlevé il le rétablisse
Application.Goto Reference:="DATABASE"
Selection.AutoFilter
Ces 2 instructions précédentes ne sont pas la solution cr si on a un filtre
auto cela l'enlève


Sub FILTRE1()
Selection.Copy
Sheets("ALLDATA").Select
Range("CELCRIT").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
Selection.AutoFilter Field:=1, Criteria1:=Range("CELCRIT").Value
End Sub



Bonjour,

Le champ est nommé xxxx (Names est un mot clé)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([xxxx], Target) Is Nothing Then
filtre1
End If
End Sub

Cordialement JB


On 12 avr, 06:44, Jean-Paul V
wrote:
Bonjour à tous

Je souhaiterais remplacer 35 macros par une macro plus générale.

Mes 35 macros actuelles sont :
Sub MASIA()
Range("B7").Select
FILTRE1
End Sub

Sub MBRAZIL()
Range("B8").Select
FILTRE1
End Sub

...ect

Sub FILTRE1()
Selection.Copy
Sheets("ALLDATA").Select
Range("CELCRIT").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
Selection.AutoFilter Field:=1, Criteria1:=Range("CELCRIT").Value
End Sub

Je souhaiterais déclencher ces 35 macros lorsque l'on sélectionne une des
cellules du Range ''NAMES '' ( actuellement entre B7 B41 ) , un truc mis dans
le code de la feuille du Range(''NAMES'') comme :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rg As Range
'Si cellule sélectionnée est dans le Range ''NAMES'',comment faire ce test ?
Set Rg = ActiveCell
'If Rg.Column = 2 Then
Rg.Select
FILTRE1
'End If
Set Rg = Nothing
End Sub
Comment écrire cette Private Sub Worksheet pour qu'elle déclenche les 35
filtres différents en cliquant à l'interieur du champ NAMES.

à+ j'espère







Avatar
isabelle
bobhour Jean-Paul,

If Sheets("ALLDATA").AutoFilterMode Then MsgBox "il y a un filtre"

isabelle

JB
Pourriez vous me dire quelle instruction mettre après le
Sheets("ALLDATA").Select dans la macro Filtre1 de façon que si le filtre
automatique à été enlevé il le rétablisse
Application.Goto Reference:="DATABASE"
Selection.AutoFilter
Ces 2 instructions précédentes ne sont pas la solution cr si on a un filtre
auto cela l'enlève


Sub FILTRE1()
Selection.Copy
Sheets("ALLDATA").Select
Range("CELCRIT").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
Selection.AutoFilter Field:=1, Criteria1:=Range("CELCRIT").Value
End Sub




Bonjour,

Le champ est nommé xxxx (Names est un mot clé)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([xxxx], Target) Is Nothing Then
filtre1
End If
End Sub

Cordialement JB


On 12 avr, 06:44, Jean-Paul V
wrote:

Bonjour à tous

Je souhaiterais remplacer 35 macros par une macro plus générale.

Mes 35 macros actuelles sont :
Sub MASIA()
Range("B7").Select
FILTRE1
End Sub

Sub MBRAZIL()
Range("B8").Select
FILTRE1
End Sub

...ect

Sub FILTRE1()
Selection.Copy
Sheets("ALLDATA").Select
Range("CELCRIT").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
Selection.AutoFilter Field:=1, Criteria1:=Range("CELCRIT").Value
End Sub

Je souhaiterais déclencher ces 35 macros lorsque l'on sélectionne une des
cellules du Range ''NAMES '' ( actuellement entre B7 B41 ) , un truc mis dans
le code de la feuille du Range(''NAMES'') comme :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rg As Range
'Si cellule sélectionnée est dans le Range ''NAMES'',comment faire ce test ?
Set Rg = ActiveCell
'If Rg.Column = 2 Then
Rg.Select
FILTRE1
'End If
Set Rg = Nothing
End Sub
Comment écrire cette Private Sub Worksheet pour qu'elle déclenche les 35
filtres différents en cliquant à l'interieur du champ NAMES.

à+ j'espère









Avatar
Jean-Paul V
Bonjour Isabelle
Et merci pour la réponse
Avec votre réponse j'ai pu modifier mon Filtre1, mais je suis sûr que l'on
peut faire mieux.

Sub FILTRE1()
Selection.Copy
Sheets("ALLDATA").Select
If Sheets("ALLDATA").AutoFilterMode Then 'MsgBox "il y a un filtre"
Range("CELCRIT").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
Selection.AutoFilter Field:=1, Criteria1:=Range("CELCRIT").Value
Else
Range("CELCRIT").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
Range("DATABASE").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=Range("CELCRIT").Value
ActiveCell.Offset(1, 0).Range("A1").Select
End If
End Sub

a+ et merci encore


bobhour Jean-Paul,

If Sheets("ALLDATA").AutoFilterMode Then MsgBox "il y a un filtre"

isabelle

JB
Pourriez vous me dire quelle instruction mettre après le
Sheets("ALLDATA").Select dans la macro Filtre1 de façon que si le filtre
automatique à été enlevé il le rétablisse
Application.Goto Reference:="DATABASE"
Selection.AutoFilter
Ces 2 instructions précédentes ne sont pas la solution cr si on a un filtre
auto cela l'enlève


Sub FILTRE1()
Selection.Copy
Sheets("ALLDATA").Select
Range("CELCRIT").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
Selection.AutoFilter Field:=1, Criteria1:=Range("CELCRIT").Value
End Sub




Bonjour,

Le champ est nommé xxxx (Names est un mot clé)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([xxxx], Target) Is Nothing Then
filtre1
End If
End Sub

Cordialement JB


On 12 avr, 06:44, Jean-Paul V
wrote:

Bonjour à tous

Je souhaiterais remplacer 35 macros par une macro plus générale.

Mes 35 macros actuelles sont :
Sub MASIA()
Range("B7").Select
FILTRE1
End Sub

Sub MBRAZIL()
Range("B8").Select
FILTRE1
End Sub

...ect

Sub FILTRE1()
Selection.Copy
Sheets("ALLDATA").Select
Range("CELCRIT").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
Selection.AutoFilter Field:=1, Criteria1:=Range("CELCRIT").Value
End Sub

Je souhaiterais déclencher ces 35 macros lorsque l'on sélectionne une des
cellules du Range ''NAMES '' ( actuellement entre B7 B41 ) , un truc mis dans
le code de la feuille du Range(''NAMES'') comme :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rg As Range
'Si cellule sélectionnée est dans le Range ''NAMES'',comment faire ce test ?
Set Rg = ActiveCell
'If Rg.Column = 2 Then
Rg.Select
FILTRE1
'End If
Set Rg = Nothing
End Sub
Comment écrire cette Private Sub Worksheet pour qu'elle déclenche les 35
filtres différents en cliquant à l'interieur du champ NAMES.

à+ j'espère