Besoin d'une macro qui Recupère un Filtre élaboré d'une feuille à l'autre [Résolu]

  • Initiateur de la discussion Initiateur de la discussion INFINITY100
  • Date de début Date de début

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 !

INFINITY100

XLDnaute Occasionnel
Bonjour à tous

Voila j'essaye de réaliser un document qui contient des opérations diverses seulement je suis face à un problème de filtrage élaboré via un Combobox et un filtrage plus avancé via un Optionbotton car je sollicite votre aide afin d'avoir la bonne macro

Voila je joins mon fichier pour être plus claire et détaillé ma demande

Merci d'avance à vous tous

Cordialement
 

Pièces jointes

Dernière édition:
Re : Besoin d'une macro qui Recupère un Filtre élaboré d'une feuille à l'autre

Bonjour,


Voir PJ

Code:
Sub Extrait()
  [b12:g100].Clear
  Sheets("Feuil1").Range("B11:G1000").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("Feuil2!Criteria"), CopyToRange:=Range("B11:G11")
  [G65000].End(xlUp).Offset(1, 0).Select
  ActiveCell.Offset(, -1) = "Total"
  ActiveCell = "=SUM(G12:G" & ActiveCell.Offset(-1, 0).Row & ")"    
End Sub

Code:
Private Sub OptionButton1_Click()
[c2] = "dette"
End Sub

Private Sub OptionButton2_Click()
[c2] = "règlement"
End Sub

Private Sub OptionButton3_Click()
[c2] = "*"
End Sub

JB
 

Pièces jointes

Dernière édition:
Re : Besoin d'une macro qui Recupère un Filtre élaboré d'une feuille à l'autre

Salut INFINITY100,
Voici un exemple qui correspond à ta demande.
Je ne comprends pas pourquoi mon combobox ne veut pas se mettre à jour. Je l'ai fait pourtant 100 fois, mais la !!!!
Sinon tu aura au moins le code du filtre élaboré
@+ Lolote83
 

Pièces jointes

Re : Besoin d'une macro qui Recupère un Filtre élaboré d'une feuille à l'autre

Bonsoir

Merci beaucoup messieurs pour vos réponse

Voila ta proposition monsieur BOISGONTIER c'est exactement ce que je cherche à deux détails pré afin de compléter mon fichier avec une macro dont tu m'a déjà faite via une de mes précédentes demandes (Voir le PJ)


Quant à monsieur Lolote pour le filtre élaboré via userform l'idée est pas mal et je vais la garder ça car je l'utiliserai dans une autre feuille, et en ce qui s'agit du problème du combobox il suffit juste de faire ceci et ça ira 🙂

Code:
Dim f As Worksheet, Noms
Private Sub UserForm_Initialize()
  Set f = Sheets("Les_Noms")
  If f.[d1048576].End(xlUp).Row > 12 Then
    Noms = Application.Transpose(f.Range("d12:d" & f.[d1048576].End(xlUp).Row))
    Me.ComboBox1.List = Noms
    End If
End Sub
Private Sub Combobox1_change()
    [H3] = ComboBox1.Value
    [H4] = ComboBox1.Value
End Sub
 

Pièces jointes

Re : Besoin d'une macro qui Recupère un Filtre élaboré d'une feuille à l'autre

Avec saisie semi automatique (intuitive) dans combobox.

Code:
Dim choix()
Private Sub ComboBox1_Change()
 choix = Application.Transpose([noms])
 If Me.ComboBox1.ListIndex = -1 And IsError(Application.Match(Me.ComboBox1, choix, 0)) Then
   Me.ComboBox1.List = Filter(choix, Me.ComboBox1.Text, True, vbTextCompare)
   Me.ComboBox1.DropDown
  End If
End Sub

Private Sub ComboBox1_Click()
  Extrait
End Sub

Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  Me.ComboBox1.List = Application.Transpose([noms])
  Me.ComboBox1.DropDown
End Sub

Private Sub ComboBox1_DropButtonClick()
  On Error Resume Next
  If UBound(choix) = 0 Then
    choix = Application.Transpose([noms])
    Me.ComboBox1.List = choix
  End If
  On Error GoTo 0
End Sub

Private Sub OptionButton1_Click()
 [c2] = "dette"
 Extrait
End Sub

Private Sub OptionButton2_Click()
 [c2] = "règlement"
 Extrait
End Sub

Private Sub OptionButton3_Click()
 [c2] = "*"
 Extrait
End Sub


JB
 

Pièces jointes

Dernière édition:
Re : Besoin d'une macro qui Recupère un Filtre élaboré d'une feuille à l'autre

bonjour

Merci Jacques ça fonctionne très bien maintenant pour finaliser le tout il reste qu'a éliminer c'est deux bug, en effet quand la liste des noms est vide et au clique sur le Combobox ça bug sur cette ligne

Code:
choix = Application.Transpose([noms])

Et à la saisie ça bug ici

Code:
If Me.ComboBox1.ListIndex = -1 And IsError(Application.Match(Me.ComboBox1, choix, 0)) Then

Voir PJ

Merci encore
 

Pièces jointes

Re : Besoin d'une macro qui Recupère un Filtre élaboré d'une feuille à l'autre

Bonsoir

Merci beaucoup BOISGONTIER grâce à vous mon fichier est presque achevé et désolé si j'ai pris un peu plus que ce qu'il faut de votre temps mais il me reste un petit détail esthétique à réaliser et mon fichier sera fini, en effet toute en gardant le remplissage de la feuil1 vierge je veux quand le filtre se fait en feuil2 avoir un remplissage tel que (Le modèle voulu) ===> voir PJ

En d'autre terme intégrer le format du modèle voulu à cette macro

Code:
 Sub Extrait()
  [b12:g100].Clear
  Sheets("Feuil1").Range("B11:G1000").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("Feuil2!Criteria"), CopyToRange:=Range("B11:G11")
  [G65000].End(xlUp).Offset(1, 0).Select
  ActiveCell.Offset(, -1) = "Total"
  If ActiveCell.Row > 12 Then
     ActiveCell = "=SUM(G12:G" & ActiveCell.Offset(-1, 0).Row & ")"
     Range("A1").Select
  End If
End Sub

Merci encore 🙂
 

Pièces jointes

Re : Besoin d'une macro qui Recupère un Filtre élaboré d'une feuille à l'autre

Voir PJ

Code:
Sub Extrait()
  [b12:g100].Clear
  Sheets("Feuil1").Range("B11:G1000").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("Feuil2!Criteria"), CopyToRange:=Range("B11:G11")
  [G65000].End(xlUp).Offset(1, 0).Select
  ActiveCell.Offset(, -1) = "Total"
  If ActiveCell.Row > 12 Then
     ActiveCell = "=SUM(G12:G" & ActiveCell.Offset(-1, 0).Row & ")"
  End If
  '---- présentation
  derlig = [c65000].End(xlUp).Row
  For lig = 12 To derlig
    Cells(lig, "b").Resize(, 6).Interior.Color = 13434879
    Cells(lig, "b").Resize(, 6).Font.ColorIndex = IIf(lig Mod 2, 3, 5)
  Next lig
  Set champ = Cells(derlig + 1, "f").Resize(, 2)
  champ.Interior.Color = 10213316
  champ.Font.Bold = True
  champ.Select
  bordure
End Sub

JB
 

Pièces jointes

Dernière édition:
Re : Besoin d'une macro qui Recupère un Filtre élaboré d'une feuille à l'autre [Résol

Bonjour BOISGONTIER

Et me revoilà encore face un soucis de grande importance du coté de la filtration, en effet j'ai ajouté à la liste des fournisseurs un prénom "Jac" puis sur feuille1 j'ai ajouté à ce dernier 2 opérations et bien quand je filtre avec le prénom "Jacques" ça fonctionne bien mais quand je sélectionne dans le combobox le prénom "Jac" il me filtre ce dernier + le prénom "Jacques" et c'est ainsi avec tout les prénoms qui ce ressemble

Pour être plus claire voir PJ

Merci de me corriger cela

Cordialement
 

Pièces jointes

Dernière édition:
Re : Besoin d'une macro qui Recupère un Filtre élaboré d'une feuille à l'autre [Résol

Bonjour,

Pour obtenir seulement Martin si plusieurs noms commencent par Martin

Dans le champ critère:

'=Martin
ou
="=Martin"

cf Le filtre élaboré

JB
 

Pièces jointes

Dernière édition:
Re : Besoin d'une macro qui Recupère un Filtre élaboré d'une feuille à l'autre [Résol

Bonsoir BOISGONTIER

Impeccable maintenant je peux dire que la macro est achevée, voila qui commence bien et se termine très très bien 🙂

Merci infiniment cher ami

Cordialement
 
- 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

Retour