Macro tableau croisé dynamique

robbie31140

XLDnaute Nouveau
Bonjour,

J'ai un calcul à réaliser, basé sur deux extraction d'un logiciel de gestion de stock.

Premier calcul : Onglet 1
Grace à l'extraction réaliser, faire un tableau croisé dynamique sur l'ensemble de la page et intégré la colonne article coté gauche et dans "déposer données ici".
Ce qui me donne le nombre d'article sans doublon.

Second calcul : Onglet 2
Grace à l'extraction réaliser, faire un tableau croisé dynamique sur l'ensemble de la page et intégré la colonne article coté gauche et dans "déposer données ici".
Ce qui me donne le nombre d'article sans doublon.

Les deux calcul ne sont pas des doublon : Le premier me donne le nombre de reference inventorié
Le second me donne le nombre d'ecart.

Ce qui devra aboutire a un calcul : 1er calcul - 2eme calcul.
Exemple : 5 ecarts d'inventaires Sur 300 inventaire réalisé : Sa doit me donner un pourcentage de fiabilitée.

Si l'ensemble pouvait se retrouver en un seul bouton avec le resultat a coté se serait TOP.

Merci d'avance,
 

Pièces jointes

  • Test pour forum.zip
    24.5 KB · Affichages: 82

mromain

XLDnaute Barbatruc
Re : Macro tableau croisé dynamique

Bonjour robbie31140,

voici un essai en macro :
VB:
Public Sub CalculTaux()
Dim nbArticlesOnglet1 As Long, nbArticlesOnglet2 As Long, iL As Long, taux As Double

    '# calculer le nombre d'article sur l'onglet 1
    With ThisWorkbook.Sheets("Onglet 1")
        'boucler sur toutes les lignes (de 6 à la dernière saisie)
        For iL = 6 To .Range("D" & .Rows.Count).End(xlUp).Row
            'si c'est la permière occurence de l'article
            If WorksheetFunction.CountIf(.Range("D6:D" & iL), .Range("D" & iL)) = 1 Then
                'incrémenter le compteur
                nbArticlesOnglet1 = nbArticlesOnglet1 + 1
            End If
        Next iL
    End With
    
    '# calculer le nombre d'article sur l'onglet 2
    With ThisWorkbook.Sheets("Onglet 2")
        'boucler sur toutes les lignes (de 6 à la dernière saisie)
        For iL = 6 To .Range("B" & .Rows.Count).End(xlUp).Row
            'si c'est la permière occurence de l'article
            If WorksheetFunction.CountIf(.Range("B6:B" & iL), .Range("B" & iL)) = 1 Then
                'incrémenter le compteur
                nbArticlesOnglet2 = nbArticlesOnglet2 + 1
            End If
        Next iL
    End With
    
    '# calculer le taux
    taux = nbArticlesOnglet2 / nbArticlesOnglet1
    
    '# afficher le résultat
    MsgBox "Le taux est de : " & Round(taux * 100, 2) & "%."
End Sub
a+
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
229
Réponses
3
Affichages
333

Statistiques des forums

Discussions
312 534
Messages
2 089 386
Membres
104 154
dernier inscrit
Patou