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

XL 2016 modifier fichier suivis de stock

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 !

phddesi

XLDnaute Junior
bonsoir

j'appel à votre âme charitable car j'ai un fichier que je souhaite modifier en VBA.
j'ai mis des explications directement dans le fichier.
je vous remercie d'avance pour le temps que vous me consacrerez.
 

Pièces jointes

Solution
C'est bien signalé par le message,
malheureusement Microsoft préfère se "planter" plutôt que de renvoyer un count = 0
Remplacer la sub :
VB:
Sub Filtre_Designation()
Dim I       As Integer
Dim Crit()  As String
Dim Elem
On Error Resume Next
    N = [Stock[Code Fabricant]].SpecialCells(xlCellTypeVisible).Count
    If Err = 0 Then
        ReDim Crit(1 To N)
        For Each Elem In [Stock[Code Fabricant]].SpecialCells(xlCellTypeVisible).Cells
            I = I + 1:  Crit(I) = CStr(Elem)
        Next
        [Designation].ListObject.Range.AutoFilter Field:=1, Criteria1:=Crit, Operator:=xlFilterValues
        [Designation].Parent.Activate
    End If
End Sub
Ceci dit, cliquer pour afficher ce qui n'existe pas, ça se discute ... 😉
je vous ai mis le tableau pour mieux expliquer.
mais merci pour votre test
 

Pièces jointes

je vous ai mis le tableau pour mieux expliquer.
mais merci pour votre test
Je pense que vous voulez parler de la colonne E et non D,
On ne peut pas le faire par formule .
On ne peut pas faire de sauf avec plus de 2 valeurs à exclure

Pourquoi ne pas se servir manuellement des filtres natifs d'excel :

ou


Si toutefois vous voulez une solution par code :



VB:
Sub Filtrer_E()
    Filtre_Colonne [Designation], "Consommation", "A+*"
End Sub
Sub UnFiltrer_E()
    Filtre_Colonne [Designation], "Consommation"
End Sub

Sub Filtre_Colonne(Target As Range, Colonne, ParamArray Criteres() As Variant)
Dim List_Criteres   As Variant
Dim ID              As Variant
 
    If Target.ListObject Is Nothing Then
        If Not Target.Parent.AutoFilter Is Nothing Then Target.AutoFilter
        Set ID = Target.Rows(1).Find(Colonne)
    Else
        If Target.ListObject.AutoFilter.FilterMode Then Target.ListObject.AutoFilter.ShowAllData
        Set ID = Target.Rows(0).Find(Colonne)
    End If
  
    If Not ID Is Nothing Then ID = ID.Column - Target.Column + 1 Else ID = False

    If ID And UBound(Criteres) >= 0 Then
        List_Criteres = Criteres
        Target.AutoFilter Field:=ID, Operator:=xlFilterValues, Criteria1:=List_Criteres
    End If
 
    Set ID = Nothing
End Sub
 
merci pour tout ces explications.
bon week-end à vous
 
C'est bien signalé par le message,
malheureusement Microsoft préfère se "planter" plutôt que de renvoyer un count = 0
Remplacer la sub :
VB:
Sub Filtre_Designation()
Dim I       As Integer
Dim Crit()  As String
Dim Elem
On Error Resume Next
    N = [Stock[Code Fabricant]].SpecialCells(xlCellTypeVisible).Count
    If Err = 0 Then
        ReDim Crit(1 To N)
        For Each Elem In [Stock[Code Fabricant]].SpecialCells(xlCellTypeVisible).Cells
            I = I + 1:  Crit(I) = CStr(Elem)
        Next
        [Designation].ListObject.Range.AutoFilter Field:=1, Criteria1:=Crit, Operator:=xlFilterValues
        [Designation].Parent.Activate
    End If
End Sub
Ceci dit, cliquer pour afficher ce qui n'existe pas, ça se discute ... 😉
 
Bonjour

une dernière chose et je pense pouvoir faire le reste seul.

car vous m'avez déjà beaucoup aidé.

j'ai écris ce que je veux dans la feuille excel.

merci d'avance
 

Pièces jointes

Dernière édition:
- 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

Réponses
3
Affichages
210
  • Question Question
XL 2021 listbox
Réponses
18
Affichages
498
  • Question Question
XL 2013 user form
Réponses
2
Affichages
260
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…