XL 2019 connaitre la totalité de chaque réf.

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 !

Kenzo1968

XLDnaute Nouveau
Bonjour a tous

avec une Marco
je souhait créer un fichier qui permet de connaitre la totalité de chaque réf. repris entre A1 & J20

exp:
Réf.Total
CART09716 776
CART1488 640
FPOL107534 312
ETUI08266 520

j'ai joint mon fichier pour y voir plus clair


merci a vous
 

Pièces jointes

Solution
Bonjour,

Voici, voici... Vous avez des quantités sans Référence pour une quantité totale de 1 250 170,20
Il serait peut-être judicieux de mettre de l'ordre dans vos données avant traitement.
Pour adapter le nom Datas, il suffit d'ouvrir le gestionnaire de nom et de modifier le nom 'Datas'.
Onglet "Forumules" Bouton "Gestionnaire de noms"

1642177126552.png



Cordialement
Re,

sa serais bien da voire un bonbon pour activer la macro
Il s'agit d'une requête Power Query*, pas d'une macro.
Et en plus ça ne sort pas de la confiserie où vous trouverez des bonbons 🙂
Mais pour vous faire une macro qui lance la requête, il faudrait nous donner un exemple qui corresponde à votre situation dans la réalité.
Est-ce que ce sont des données importées ? Si oui d'où ?
Qui change la plage de données ? Par quelle méthode ?

* Sélectionnez une cellule du tableau du résultat puis dans le ruban, dans l'onglet 'Requête' cliquez sur le bouton 'Modifier'. Vous verrez à quoi ressemble une requête power query.

cordialement
 
Bonsoir @Kenzo1968🙂 , @Hasco 😉,

En VBA, en utilisant un dictionnaire.
VB:
Option Explicit

Sub Somme_Ref()
    Dim Lig As Integer, Col As Integer
    Dim Rng As Range, c As Range, d As Object
    Set d = CreateObject("Scripting.Dictionary")

    With Sheets("besoin")
        .Range("L1").CurrentRegion.Offset(1).ClearContents
        Set Rng = .Range("A1").CurrentRegion
        For Each c In Rng
            If c <> "" Then
                If Not IsNumeric(c.Value) Then
                    d(Trim(c)) = d(Trim(c)) + c.Offset(, 1).Value    '
                End If
            End If
        Next c
        .Range("L2").Resize(d.Count, 1) = Application.Transpose(d.Keys)
        .Range("L2").Offset(, 1).Resize(d.Count, 1) = Application.Transpose(d.Items)
        .Range("L2").Offset(, 1).Resize(d.Count, 1).NumberFormat = "#,##0.00"
    End With
End Sub

Bonne soirée.
 

Pièces jointes

Bonsoir,

à tester
VB:
Option Explicit

Sub Somme_Ref()
    Dim Lig As Integer, Col As Integer
    Dim Rng As Range, c As Range, d As Object
    Set d = CreateObject("Scripting.Dictionary")

    With Sheets("besoin")
        .Range("E109").CurrentRegion.Offset(1).Clear
        Set Rng = .Range("A2:R" & .Range("A" & Rows.Count).End(xlUp).Row)
        For Each c In Rng
            If c <> "" Then
                If Not IsNumeric(c.Value) Then
                    d(Trim(c)) = d(Trim(c)) + c.Offset(, 1).Value    '
                End If
            End If
        Next c
        .Range("E109").Resize(d.Count, 1) = Application.Transpose(d.Keys)
        .Range("E109").Offset(, 1).Resize(d.Count, 1) = Application.Transpose(d.Items)
        .Range("E109").Offset(, 1).Resize(d.Count, 1).NumberFormat = "#,##0.00"
        .Range("E109").CurrentRegion.Borders.LineStyle = xlContinuous
    End With
End Sub
 
Bonjour,

Voici, voici... Vous avez des quantités sans Référence pour une quantité totale de 1 250 170,20
Il serait peut-être judicieux de mettre de l'ordre dans vos données avant traitement.
Pour adapter le nom Datas, il suffit d'ouvrir le gestionnaire de nom et de modifier le nom 'Datas'.
Onglet "Forumules" Bouton "Gestionnaire de noms"

1642177126552.png



Cordialement
 

Pièces jointes

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