Copier et compiler
Résolu
YepeY
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
YepeY Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
YepeY Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjour a tous,
Je m'excuse d'avance si le sujet a déja été traité, mais j'ai du mal a trouver les mots clefs...
Je voudrais copier et compiler un tableau.
si j'ai un tableau:
Quantité - Produit
1 Tomates
3 Choux
7 Patates
3 Tomates
6 Choux
de créer un tableau sur la meme page ou voir sur une autre qui compile and ordonne les produits, ce qui donnerait:
Quantité - Produit
9 Choux
7 Patates
11 Tomates
Je suis assez sur que c'est possible mais comment je n'ai pas encore trouvé!
Merci de votre aide
Je m'excuse d'avance si le sujet a déja été traité, mais j'ai du mal a trouver les mots clefs...
Je voudrais copier et compiler un tableau.
si j'ai un tableau:
Quantité - Produit
1 Tomates
3 Choux
7 Patates
3 Tomates
6 Choux
de créer un tableau sur la meme page ou voir sur une autre qui compile and ordonne les produits, ce qui donnerait:
Quantité - Produit
9 Choux
7 Patates
11 Tomates
Je suis assez sur que c'est possible mais comment je n'ai pas encore trouvé!
Merci de votre aide
A voir également:
- Copier et compiler
- Comment copier une vidéo youtube - Guide
- Super copier - Télécharger - Gestion de fichiers
- Historique copier coller - Guide
- Copier disque dur - Guide
- Unstoppable copier - Télécharger - Récupération de données
3 réponses
Bonjour,
Avec :
les produits en colonne A
les quantités en colonne B
Tu copies la liste de produits dans la colonne D.
Tu supprimes les doublons (Données > Outils de données > Supprimer les doublons)
Dans la colonne E, tu copies la formule =SOMME.SI(A:A;D2;B:B) qui te donne la quantité globale par produit.
A+
Avec :
les produits en colonne A
les quantités en colonne B
Tu copies la liste de produits dans la colonne D.
Tu supprimes les doublons (Données > Outils de données > Supprimer les doublons)
Dans la colonne E, tu copies la formule =SOMME.SI(A:A;D2;B:B) qui te donne la quantité globale par produit.
A+
Bonsoir YepeY, bonsoir le forum,
Peut-être comme ça :
Peut-être comme ça :
Sub Macro1() Dim O As Object 'déclare la variable O (Onglet) Dim DL As Integer 'déclare la variable D (Dernière Ligne) Dim TC As Variant 'déclare la variable TC (Tableau de cellules) Dim D As Object 'déclare la variable D (Dictionnaire) Dim I As Integer 'déclare la variable I (Incrément) Dim TMP As Variant 'déclare la variable TMP (tableau TeMPoraire) Dim J As Integer 'déclare la variable J (incrément) Dim TP() 'déclare la variable TP(Tableau des Porduits) Set O = Sheets("Feuil1") 'définit l'onglet O (à adapter) DL = O.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 1 (=A) de l'onglet O TC = O.Range("A2:B" & DL) 'de'finintle tableau de cellules TC Set D = CreateObject("Scripting.Dictionary") 'définit le dictionnaire D For I = 1 To UBound(TC, 1) 'boucles sur toutes les lignes du tableau TC D(TC(I, 2)) = "" 'alimente le dictionnaire Next I 'prochaine ligne de la boucle TMP = D.keys 'récupère dans le tableau temporaire TMP la liste des produits sans doublon For J = 0 To UBound(TMP) 'boucle 1 : sur tous les éléments du tableau TMP For I = 1 To UBound(TC, 1) 'boucles 2 : sur toutes les lignes du tableau TC If TMP(J) = TC(I, 2) Then 'condition : si l'élément du tableau TMP correspond au produit de la ligne du tableau TC ReDim Preserve TP(1, J) 'redimensionn ele tableau des produits TP (J lignes, 2 colonnes) TP(0, J) = TP(0, J) + TC(I, 1) 'récupère la somme dans la premère colonne de la ligne J TP(1, J) = TMP(J) 'récupère le nom du produit dans la deuxiemme colonne de la ligne J End If 'fin de la condition Next I 'prochaine ligne de la boucle 2 Next J 'prochain élément de la boucle 1 O.Range("D1").CurrentRegion.Clear 'efface d'éventuelles anciennes données O.Range("A1:B1").Copy O.Range("D1") 'copye/colle les étiquettes "Qantité" et "Produit" 'tranpose en D2 le tableau TP O.Range("D2").Resize(UBound(TP, 2) + 1, UBound(TP, 1) + 1) = Application.Transpose(TP) End Sub