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

XL 2016 vba-code

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 !

Hamza21

XLDnaute Nouveau
Bonjour
je suis coincé aidez moi stp
j'ai un fichier Excel qui peut très bien m'aider sur mon travail .
j'ai met un fichier de saisie et de calcul mes données, j'ai réussie de mètre le Button saisie comme il faut et comme je veut, mais j'ai rien a comprendre pour le Button CALCUL, j'aime bien quand je clic sur calcul le fichier me calculer la quantité produite par client et la quantité non conforme, peut quelqu'un m'aider sur le code de ''CALCUL''

Merci d'avance
 

Pièces jointes

C'est ma dernière intervention.
1- tu ajoutes une feuille que tu renommes CommeTCD.
2 - tu ajoutes les entetes de colonnes comme l'image ci-dessous


3 - tu copies et colles ce code dans un module standard
Code:
Option Explicit
Sub FiltreSimple()
   Dim Fs As Worksheet, Fc As Worksheet, dico As Object, c, i As Long, Tb()
   Dim X As Long, Y As Long, Z As Double

   Set Fs = ThisWorkbook.Worksheets("saisie")
   Set Fc = ThisWorkbook.Worksheets("CommeTCD")
   Set dico = CreateObject("scripting.dictionary")
   Application.ScreenUpdating = False

   'on affiche toutes les données s'il y a un filtre actif
   ThisWorkbook.Worksheets("saisie").ListObjects("TbSaisie").AutoFilter.ShowAllData
   'on efface toutes les lignes de la nouvelle feuille nommée commetcd
   Fc.Range("A1").CurrentRegion.Offset(1).Clear
   'on récupère toutes les données dans un tableau
   Tb = [Tbsaisie].Value
   'Avec un dictionnaire on récupre tous les cilents sans doublons
   For i = 1 To UBound(Tb)
      If Tb(i, 2) <> "" Then
         dico(Tb(i, 2)) = ""
      End If
   Next i

   If dico.Count > 0 Then

      i = 2
      With Worksheets("saisie")
         'on fait une boucle pour filtrer les lignes sur chaque client
         For Each c In dico.keys
            .ListObjects("Tbsaisie").Range.AutoFilter Field:=2, Criteria1:=c
            X = Range("Tbsaisie").ListObject.ListColumns(2).DataBodyRange.SpecialCells(xlCellTypeVisible).Count
            Y = WorksheetFunction.Subtotal(103, [Tbsaisie[Rebut ]])
            Z = (Y / X)
            With Fc
               .Cells(i, 1) = c
               .Cells(i, 2) = X
               .Cells(i, 3) = Y
               .Cells(i, 4) = Z
               .Cells(i, 4).NumberFormat = "0.00%"
               i = i + 1
            End With

         Next
      End With
   End If

   ThisWorkbook.Worksheets("saisie").ListObjects("TbSaisie").AutoFilter.ShowAllData

   MsgBox "Traitement terminé!"
   Application.ScreenUpdating = True

   Set Fs = Nothing
   Set Fc = Nothing
   Set dico = Nothing

End Sub
4- tu exécutes le code
 
Merci et désolé pour votre temps ,cela m'a aidé beaucoup.
De rien. je t'ai envoyé un message privé dans boite que n'a surement pas consulté.
D'après ce que j'ai vu dans ton fichier, je dois te dire que tu auras de très mauvaise surprises.
Comme tu n'as pas été très explicite, j'ai préféré m'en tenir à ce que j'ai compris c'est à dire au même résultat qu'avec un TCD.

Bonne continuation.
 
- 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
4
Affichages
156
Réponses
41
Affichages
753
Réponses
16
Affichages
681
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…