Somme de valeurs dans plusieurs onglets

Bonjour,

Je débute sur vba et j'avoue que je galère.

Dans mon Excel j'ai deux onglets :

- Le premier onglet contient un tableau avec des références du style :

Références

76854-76

63927-87/62527-09

43253-23/61325-89

14374-76

84645-78

- Le deuxième onglet contient un tableau avec les masses associées à ses références :

Références Masses

76854-76 3987

63927-87 2436

62527-09 7384

43253-23 8374

61325-89 2536

14374-76 4567

84645-78 3849

Comme vous pouvez le voir, les références ne sont plus de la forme */*, elles se sont scindées.

Ce que j'aimerais faire c'est additionner seulement les masses des références ayant la forme */*.

Par exemple pour la référence 43253-23/61325-89 j'aimerais sommer la masse de la référence 43253-23 avec celle de la référence 61325-89 ce qui me donne une masse totale de 8374+2536.

Je vous remercie beaucoup pour votre aide!

Flora

Bonjour,

J'ai un doute sur le besoin du vba. Je pense plus à un manque de colonnes.

A voir mon exemple, je sépare le tout et concatène pour le visuel et ensuite je calcul les valeurs voulues

Cordialement.

6exemple.xlsx (9.12 Ko)

En fait j'ai besoin d'une macro car elle sera à l'intérieur d'une autre macro qui contient une boucle...

J'aimerais en fait que lorsque ma macro tombe sur une référence */*, elle se dise il faut que je scinde cette référence en deux références pour aller chercher la valeur de chacune des masses correspondantes puis additionner les masses.

Salut Flora,

que fait-on du résultat de cette somme? Où le met-on?

Et les suffixes, faut-il aussi les additionner pour, en somme, créer un nouveau produit dans ta liste?

A+

Ok, c'est la chose que j’avais imaginé et que je ne savais pas pouvoir t'aide.

Autant j'ai bien une idée de schémas du code possible, autant je suis nul j'ai un manque de connaissance des fonctionnes et autre

Mais si t'as du temps je vais trouver...XD, je déconne je ne vais pas tant faire perdre plus. Mais je regarderai le résultat de ton sujet avec intérêt.

Cordialement

Le but c'est vraiment de ne plus avoir une référence du style */* mais une référence simple comme 65789-98 par exemple et non 65744-76/23435-54. Une fois que ma macro a scindé la référence */* en deux références simples, elle doit aller chercher ces deux références simples dans mon autre onglet qui contient les masses correspondantes à ces deux références simples.

Je ne sais pas si je suis claire mais j'ai vraiment besoin d'aide... :/

Concernant les suffixes, oublions les, c'est juste que j'ai des références bizarres ^^

Concernant le résultat, il est à l'intérieur d'une boucle if en fait. Et à la toute fin, j'aurai un calcul de sommes de masses.


Harissa23 : je suis preneuse de tout, même d'une idée du code

C'est possible d'envoyer un fichier épuré ?

avec la demande et contraintes et le résultat voulue en gros

Salut Flora, Harissa,

voici un premier jet de ton fichier, à tester dans ton fichier réel!

Il faudra plus d'explications quant à l'intégration de cette macro dans la macro-hôte dont tu parlais!

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'
Dim wks As Worksheet
Dim tTab(2) As Long
'
Set wks = Worksheets("Références")
iRow1 = Range("A" & Rows.Count).End(xlUp).Row
'
For x = 2 To iRow1
    sFlag1 = Cells(x, 1)
    If InStr(sFlag1, "/") > 0 Then
        Cells(x, 3) = ""
        For y = 0 To 1
            tTab(y) = CLng(Split(Split(sFlag1, "/")(y), "-")(0))
            '
            iRow2 = wks.Range("A" & Rows.Count).End(xlUp).Row
            For Z = 2 To iRow2
                sFlag2 = wks.Cells(Z, 1)
                If CLng(Split(sFlag2, "-")(0)) = tTab(y) Then
                    Cells(x, 3) = Cells(x, 3) + CLng(Split(sFlag2, " ")(1))
                    Exit For
                End If
            Next
        Next
    End If
Next
'
End Sub

A+

7splitsplit.xlsm (17.26 Ko)

Merci pour ton aide, j'essaye le code!

Voici mon code dans lequel il faut intégrer la fameuse macro...

Sub Macro1()

compteur = 2
compteur2 = 2
somme = 0
compteur3 = 2
somme2 = 0

Table = Sheets("Références").Cells(compteur, 1)
Table = Sheets("Masses indices").Cells(compteur2, 1)
Table = Sheets("données").Cells(compteur3, 1)

While Sheets("Références").Cells(compteur, 1) <> ""
    While Sheets("Masses indices").Cells(compteur2, 1) <> Sheets("Références").Cells(compteur, 1)
    compteur2 = compteur2 + 1
    Wend
        For i = 1 To 9
        somme = somme + Sheets("Masses indices").Cells(compteur2 + i - 1, 3)
        Next i

        If Sheets("Masses indices").Cells(compteur2, 8) = "*/*" Then ???????????????

        End If

        Sheets("Références").Cells(compteur, 2) = somme

    compteur3 = 2
    compteur2 = 2
    somme = 0
    compteur = compteur + 1
    i = 1
    somme2 = 0
Wend
2fichier.xlsm (17.20 Ko)
Rechercher des sujets similaires à "somme valeurs onglets"