Fusion de cellules sur 1 colonne et cumul aut

Résolu
tomti13frec -  
 tomti13frec -
Bonjour,
j'ai un fichier client qui indique plusieurs lignes par clients en fonction du nombre d'achat.
Y a t il une formule pour que le nom du client soit sur une ligne et que les différents achats soient cumuler sur la meme ligne?
Au final je veux CA/CLIENT/AN
Merci



A voir également:

10 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Et sur quel logiciel et version ?
0
tomti13frec
 
Il est vrai que c'est mieux de préciser....
EXCEL 07
merci
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour,
Comme ça c'est difficile de comprendre ce que tu veux.
Mettre un classeur exemple sur CiJoint.fr avec une feuille qui contient des exemples de ce qui existe et sur une autre feuille le résultat souhaiter.
A+
0
tomti13frec
 
SLT,
voici le fichier client tel qui sort à l'extraction. En fait nos clients,heureusement, font des achats plusieurs fois au cours de l'année et notre programme sort les informations regroupées en mois ( d'où la colonne E= chaque chiffre etant le mois de l'année). Or moi je veux le cumul du ca en fonction des produits et du total, sur l'année.
J'ai mis sur le fichier 3 clients, j'ai donc pu mettre sur la feuille 2 le résultat escompté en faisant une simple somme mais j'ai 9000 clients!
merci
http://www.cijoint.fr/cjlink.php?file=cj201012/cijImYS0Hl.xls
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Dernière question,
Tu fais un classeur par année ou c'est toujours le même et il faut trier les dates ?
0
tomti13frec
 
SLT,
je peux avoir à faire les 2 mais dans le cas présent c'est sur une seule année
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Sans tenir compte de la date...
'Adapter Feuil2 et Feuil3  
Sub Totalisation_Annuelle()  
Dim LigS As Long, LigC As Long, NbLigS As Long  
Dim Tot() As Double, Total As Double  
Dim Client() As String, LigClient() As Long, NumClient As Long  
Dim i As Long  
    With Sheets("Feuil1") ' adapter le nom de la feuille  
        NbLigS = .Range("A65536").End(xlUp).Row  
        LigC = 2  
        'Chercher le nombre et le nom de tout les clients  
        ReDim Client(0): Total = 0: ReDim LigClient(0) '1er client  
        Client(0) = .Range("B2"): LigClient(0) = 2 'Commence à la ligne 2  
          
        For LigS = 3 To NbLigS  
            For i = 0 To UBound(Client)  
                If .Cells(LigS, 2) = Client(i) Then Exit For  
            Next i  
            If i = UBound(Client) + 1 Then 'C'est un autre client  
                ReDim Preserve Client(UBound(Client) + 1)  
                ReDim Preserve LigClient(UBound(LigClient) + 1)  
                Client(UBound(Client)) = .Cells(LigS, 2)  
                LigClient(UBound(LigClient)) = LigS  
            End If  
        Next LigS  
        'Ici on a le nom des clients dans Client() et la 1ère ligne dans NumClient()  
        For NumClient = 0 To UBound(Client)  
            ReDim Tot(1 To 9): Total = 0  
            For LigS = LigClient(NumClient) To NbLigS  
                If .Cells(LigS, 2) = Client(NumClient) Then  
                    For i = 1 To 9  
                        Total = Total + .Cells(LigS, i + 7)  
                        Tot(i) = Tot(i) + .Cells(LigS, i + 7)  
                    Next i  
                End If  
            Next LigS  
            'Toutes les données du client ont étés totalisées  
            'Inscrire les données client.  
            For i = 1 To 6  
                Sheets("Feuil3").Cells(LigC, i) = .Cells(LigClient(NumClient), i)  
            Next i  
            Sheets("Feuil3").Cells(LigC, 5) = "Annuel"  
            'inscrire les totaux  
            Sheets("Feuil3").Cells(LigC, i) = Total  
            For i = 1 To 9  
                Sheets("Feuil3").Cells(LigC, i + 7) = Tot(i)  
            Next i  
            LigC = LigC + 1 ' passe au client suivant  
        Next NumClient  
    End With  
End Sub

Colle ce code dans un module public et lancer par F5
Tu dis
A+
PS: Ton classeur exemple contient des erreurs de calcul ? tu à fais ça en manuel ?
J'ai contrôller et en principe c'est juste.
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0
tomti13frec
 
pfiou les macros....
moi qui maîtrise à peine les fonctions SOMME et MOYENNE, tu vois le niveau!
J'essaye de mettre ca en place et te tiens au courant mais merci bcp!
A +
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Les clients sont tous trier comme sur ton exemple ou bien il sont "mélanger", ça pourrait simplifier la macro s'il était trier (et réduire le temps)

Pour mettre la macro en place c'est pas compliquer..
Tu tape Alt+F11
Dans l'éditeur de macro >> Insertion >> Module
Dans la fenêtre qui apparaît tu colle tout le code ci-dessus.
Tu adapte Feuil1 au nom de la feuille ou sont tout tes clients.
Tu adapte Feuil3 au nom de la feuille où tu veux le résultat.
Ensuite tu fait un Backup... c'est plus prudent.
Tu met le curseur au milieu de la macro et tu tape F5... et tu attend.
Tu dis.
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0
tomti13frec
 
TU SAIS QUE T'ES UN GENIE???!!!
Merci beaucoup c'est au top
A +
0