Regroupé les doublons d'une liste et incrémenter une valeur

  • Initiateur de la discussion Initiateur de la discussion moustiik
  • 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 !

moustiik

XLDnaute Nouveau
Bonjour!
je reviens (une fois de plus^^) vers vous 🙂 question du jour bonjour!!

voilà après avoir avancé dans mes petites affaires, avoir réussi à transférer ce que je voulais transférer il me reste quelques petites choses à améliorée^^

donc je me retrouve avec un fichier du style:

carotte / 1
poireau / 1
tomate / 1
poireau / 1

et je voudrais avoir une macro qui regrouperait mes doublons de manière à avoir

carotte / 1
poireau / 2
tomate / 1

je vous joins le fichier excel d'exemple

cordialement,
une inculte d'excel qui admire vos compétences!
 

Pièces jointes

Re : Regroupé les doublons d'une liste et incrémenter une valeur

Bonjour.
Essayez de construire un rapport de tableau croisé dynamique.
Ça doit sûrement quand même encore exister, même si ça ne se pilote plus de tout de la même façon que chez moi.
Cordialement.
 
Re : Regroupé les doublons d'une liste et incrémenter une valeur

bon enfaite c'est pas du tout ce que je veux :/ je veux que sa soit automatique (parce que oui mesdame, monsieur il y a pire que moi en connaissance excel...) donc tu appuie sur le bouton et en gros sa te trie tout par doublon sa incrémente le nbre d'éléments (et je m'en fou du nombre totale lol) mais si c'est pas possible c'est pas grave 🙁
 
Re : Regroupé les doublons d'une liste et incrémenter une valeur

re


Dans ce cas, il faudra passer par du VBA, mais c'est assez simple quand on s'y met un peu 🙂.

Sinon, il y a le 1% formation pour cela 😱.
 
Re : Regroupé les doublons d'une liste et incrémenter une valeur

Bonjour le fil 🙂,
A tester
Code:
Public Hauteur As Integer
Sub test()
DerLig = Range("A" & Rows.Count).End(xlUp).Row
Range("A1:B" & Hauteur).Value = Charge(Range("A1:A" & DerLig))
Range("A" & Hauteur + 1 & ":B" & DerLig).Clear
End Sub
Function Charge(MaRéf As Range)
'Dictionary par JB : http://boisgontierjacques.free.fr/ Formation Excel VBA JB
Dim Tableau()
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In MaRéf
MonDico.Item(c.Value) = c.Value
Next c
temp = MonDico.items
'--
Call tri(temp, LBound(temp), UBound(temp))
Hauteur = UBound(temp) + 1
ReDim Tableau(UBound(temp), 1)
For i = 0 To UBound(temp)
Tableau(i, 0) = temp(i)
Tableau(i, 1) = Evaluate("COUNTIF(" & MaRéf.Address & ",""" & temp(i) & """)")
Next i
Charge = Tableau
End Function
Sub tri(a, gauc, droi)
' Quick sort par JB : http://boisgontierjacques.free.fr/ Formation Excel VBA JB
ref = a((gauc + droi) \ 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
Bonne journée 😎
 
Re : Regroupé les doublons d'une liste et incrémenter une valeur

Re 🙂,
et genre c'était sencé être accessible à tout le monde... HUM 🙂
C'était faisable facilement en accessible à tous le monde, mais la première macro qui aurait rassemblé les données dans 2 autres colonnes ne t'aurait pas plu, puis tu aurais voulu par ordre alphabétique 🙄, bref, j'ai pas fait au plus simple, mais au plus rapide sans refaire 3 fois la même chose 😛...
Bonne journée 😎
 
Re : Regroupé les doublons d'une liste et incrémenter une valeur

enfaite non sa ne marche pas :/ mon cas est peut-être trop complexe 🙁 je ne dois pas modifié les bons paramètres et sa fait n'importe quoi 🙁 et si y a pas de doublons, il me supprime des lignes... donc bon, je vais abandonné je crois, je vous joins quand même le fichier a quoi il ressemble dès fois que sa serait une autre méthode qu'il faudrait appliqué!
 

Pièces jointes

Re : Regroupé les doublons d'une liste et incrémenter une valeur

(je m'en fou que sa soit par ordre alphabétique) je veux juste que sa me regroupe ce qui sont en double, triple voir plus 🙂 mais je sais je suis trop exigeante mdr je vais essayé de me remettre dans ce que tu as fait mais à mon avis vu la geule de mon fichier c'est un peu plus complexe que ce que je pensais :s
 
Re : Regroupé les doublons d'une liste et incrémenter une valeur

Re 🙂,
Avec "un peu" d'adaptation 😛
Code:
Public Hauteur As Integer
Sub gestion_des_doublons()
DerLig = Range("B" & Rows.Count).End(xlUp).Row
Range("B9:E" & Hauteur).Value = Charge(Range("B9:B" & DerLig))
Range("B" & Hauteur + 1 & ":E" & DerLig).ClearContents
End Sub
Function Charge(MaRéf As Range)
'Dictionary par JB : http://boisgontierjacques.free.fr/ Formation Excel VBA JB
Dim Tableau()
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In MaRéf
MonDico.Item(c.Value) = c.Value
Next c
temp = MonDico.items
'--
Call tri(temp, LBound(temp), UBound(temp))
Hauteur = UBound(temp) + 9
ReDim Tableau(UBound(temp), 3)
For I = 0 To UBound(temp)
Tableau(I, 0) = temp(I)
Tableau(I, 1) = MaRéf.Find(temp(I), LookAt:=xlWhole).Offset(0, 1)
Tableau(I, 2) = Evaluate("COUNTIF(" & MaRéf.Address & ",""" & temp(I) & """)")
Tableau(I, 3) = MaRéf.Find(temp(I), LookAt:=xlWhole).Offset(0, 3)
Next I
Charge = Tableau
End Function
Sub tri(a, gauc, droi)
' Quick sort par JB : http://boisgontierjacques.free.fr/ Formation Excel VBA JB
ref = a((gauc + droi) \ 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
Mais par contre, il est toujours possible de rassembler aussi les Commandés, etc., mais je suis parti du principe que tu ne les rempliraient qu'après dédoublonnage 🙄...
Bon courage 😎
 
Re : Regroupé les doublons d'une liste et incrémenter une valeur

Ah mais s'il s'agit de regrouper les doublons, pourquoi ne pas mettre dans un colonne supplémentaire avec un NB.SI(LaColonne,LaColonne) et classer la liste par ordre décroissant de cette colonne ?
Le faire après s'être mis en enregistrement d'une nouvelle macro si le besoin revient souvent.
On vous aidera à optimiser le code.
 
- 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

Retour