Transposition avec somme

  • Initiateur de la discussion Initiateur de la discussion chrisdu73
  • Date de début Date de début

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 !

chrisdu73

XLDnaute Occasionnel
Que de bon exemples dans les posts mais je n'arrive pas à résoudre mon problème.
J'ai un fichier ci joint avec en colonnes des données que je voudrais transposer en ligne selon le code en A et avoir sur cette ligne transposée la somme des valeurs de G
le résultat attendu en exemple est en dans le fichier joint.
merci pour votre aide
 

Pièces jointes

Re : Transposition avec somme

Bonjour le fil, bonjour le forum,

Une proposition VBA dans ton fichier modifié en pièce jointe avec le code ci-dessous :
Code:
Private Sub CommandButton1_Click()
Dim o As Worksheet 'déclare la variable o (Onglet)
Dim dl As Long 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim av As Range 'déclare la variable av (Anciennes Valeurs)
Dim x As Long 'déclare la variable x (incrément de ligne)
Dim y As Byte 'déclare la variable y (incrément de colonne)
Dim z As Long 'déclare la variable x (incrément ed ligne)
Dim nb As Byte 'déclare la variable nb (NomBre de valeurs)
Dim tot As Long 'déclare la variable tot (TOTal)
 
Set o = Sheets("Export Worksheet") 'définit l'onglet o
dl = o.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne de l'onglet
Set pl = o.Range("A2:A" & dl) 'définit la plage pl (cellules éditées de la colonne A)
Set av = o.Range("K27").CurrentRegion 'définit la plage des anciennes valeur
Set av = av.Offset(1, 0).Resize(av.Rows.Count - 1) 'redéfinit la plage des anciennes valeurs (enlève la ligne de titres)
av.Clear 'efface les anciennes valeurs
 
For x = 2 To dl 'boucle sur toutes les cellule de la plage pl (en commançant par la ligne 2)
    tot = 0 'réinitialise le total
    z = x 'met a jour la variable z
    nb = Application.WorksheetFunction.CountIf(pl, Cells(x, 1).Value) - 1 'définit le nombre de fois que la valeur apparaît dans le tableau
    Set dest = o.Cells(Application.Rows.Count, 11).End(xlUp)(2) 'définit la cellule de destinatikon
    dest.Value = Cells(x, 1).Value 'place le code dossier
    dest.Offset(0, 1).Value = Cells(x, 2).Value 'place le code client
    dest.Offset(0, 2).Value = Cells(x, 3).Value 'place le code forfait
    For y = 0 To nb 'boucle sur le nombre d'occurrrences
        dest.Offset(0, y + 3).Value = Cells(z, 5) 'place l'occurrence
        tot = tot + Cells(z, 7) 'calcule le total
        z = z + 1 'incrément la variable z (décalle d'une ligne vers le bas)
    Next y 'prochaine occurrence de la boucle
    dest.Offset(0, 11).Value = tot 'place le total
    dest.Offset(0, 12).Value = Cells(z - 1, 9).Value 'place le code MDT
    x = x + nb
Next x
End Sub
 

Pièces jointes

Re : Transposition avec somme

Merci beaucoup JCGL d'être penché sur mon prob,
et merci Robert d'avoir décoincé le problème:
ca fonctionne impeccable mais juste te demander, si je veux le résultat dans un autre onglet que dois-je ajouter comme ligne de code avant la boucle ?
 
Re : Transposition avec somme

Bonjour le fil, bonjour le forum,

Modifie et adapte la ligne :
Code:
Set dest = o.Cells(Application.Rows.Count, 11).End(xlUp)(2)
par :
Code:
Set dest = Sheets("Ton_Onglet").Cells(Application.Rows.Count, 11).End(xlUp)(2)
 
Re : Transposition avec somme

Avec tout mes remerciements, j'ai le résultat attendu.
en plus avec tes commentaires je peu décortiquer le code, cool
Si j'ai une modif à faire je te tiens au courant.
encore une grand merci a toi et au forum
 
- 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
3
Affichages
315
Réponses
6
Affichages
334
Réponses
12
Affichages
409
Réponses
10
Affichages
387
Réponses
13
Affichages
306
Réponses
13
Affichages
343
Réponses
2
Affichages
287
  • Question Question
XL 2019 MFC
Réponses
6
Affichages
232
Retour