Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 filtrer une cellule copiée à valeur variable?

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Fanch35830

XLDnaute Nouveau
Bonjour,
Je souhaite dans une macro, filtrer une valeur copiée variable (nom d'une personne) qui sera renseigné dans différents onglets?
N'y connaissant rien en VBA, quelqu'un pourrait m'aider?

dans le fichier joint en exemple simplifié
la vendeuse saisie son nom dans la case
puis clic sur la macro
dans les onglets suivant biere et vins, son nom est filtré faisant apparaitre ses précommandes clients.

je bloque juste sur cette étape il y en aura bien d'autres ensuite qui ne posent pas de pb.

Si vous avez la solution qui est relativement simple pour les connaisseurs faites moi signe
Merci d'avance pour votre aide
François
 

Pièces jointes

Bonjour

Essaye avec ce code (à placer dans la feuille "MES CLIENTS")
Il se lance seul dès que la cellule C2 est validée

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$2" Then
For Each Wsh In Worksheets(Array("biere", "vins"))
    With Wsh
        .Range("B2:S" & .Range("B" & Rows.Count).End(xlUp).Row).AutoFilter Field:=2, Criteria1:=Target
    End With
Next Wsh
End If
End Sub
 
Bonjour Chris,
J'ai enregistré une macro avec l'enregistreur et j'ai copier le code que tu m'as donné mais cela ne fonctionne pas..
J'ai surement du faire une erreur en rajoutant d'autres onglets à filtrer également.
Redis moi ce que j'ai mal fait
merci pour ton aide
François

Sub filtrernom()
'
' filtrernom Macro
'
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$2" Then
For Each Wsh In Worksheets(Array("BIERES SPECIALES", "VINS.CHAMPAGNES", "SOFT.ALCOOL.CAFE", "CDE EXCEPTIONNELLE"))
With Wsh
.Range("B2:S" & .Range("B" & Rows.Count).End(xlUp).Row).AutoFilter Field:=2, Criteria1:=Target
End With
Next Wsh
End If
'
End Sub
 
Re

Tu n'as pas besoin d'une Sub
Tu places ce code directement dans la feuille "MES CLIENTS"

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$2" Then
For Each Wsh In Worksheets(Array("BIERES SPECIALES", "VINS.CHAMPAGNES", "SOFT.ALCOOL.CAFE", "CDE EXCEPTIONNELLE"))
    With Wsh
        .Range("B2:S" & .Range("B" & Rows.Count).End(xlUp).Row).AutoFilter Field:=2, Criteria1:=Target
    End With
Next Wsh
End If
End Sub
 
Bonjour

Remplace le code par celui-ci

VB:
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$C$2" Then
Application.ScreenUpdating = False
For Each Wsh In Worksheets(Array("BIERES SPECIALES", "VINS.CHAMPAGNES", "SOFT.ALCOOL.CAFE", "CDE EXCEPTIONELLE"))
     With Wsh
     .Unprotect ("Chris401") 'Modifie le MDP
     If Target = "" Then
        .Range("B2:R" & .Range("B" & Rows.Count).End(xlUp).Row).AutoFilter Field:=2
    Else
        .Range("B2:R" & .Range("B" & Rows.Count).End(xlUp).Row).AutoFilter Field:=2, Criteria1:=Target
    End If
    .Protect ("Chris401") 'Modifie le MDP
     End With
Next Wsh
End If
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…