Groupement automatique de cellule

Bonjour,

Etant novice dans ce logiciel qu'est excel, je me demandais si il était possible de faire des groupements automatiques de cellule.

Je m'explique, j'ai beaucoup de données (9*8000 données) sur 3 colonnes (uniquement des chiffres) et je souhaite regrouper les cellules de même valeur sans faire un tri global qui désorganiserais mes données.

Par exemple :

Colonne A :

1

1

1

12

15

15

15

35

35

1

1

1

1

35

35

Je voudrais que cella donne

1

12

15

35

1

35

Y a t-il une fonction prédestinée à opérer ce groupement? (je rappelle que j'ai beaucoup de donnée, impossible de les faire manuellement avec l'outil "grouper"

Bien à vous,

Huey

Salut et bienvenue sur le Forum

Voici un code - placé dans le fichier ci-joint - qui te permet de regrouper une colonne ; code à adapter probablement selon tes besoins personnels. Sans avoir ton fichier à disposition, c'est difficile de t'en dire plus

Option Explicit

Sub aa()
Dim DerLig As Integer, i As Integer

Application.ScreenUpdating = False

DerLig = Range("A" & Rows.Count).End(xlUp).Row

For i = DerLig To 2 Step -1
    If Range("A" & i) = Range("A" & i - 1) Then Range("A" & i).Delete Shift:=xlUp
Next

End Sub

Cordialement.

12huet.xlsm (17.55 Ko)

N'est t-il pas possible de faire mon "tri" avec les fonctions standards d'Excel? je suis vraiment débutant et ne maîtrise pas du tout les macros :s

14classeur-1.xlsx (105.46 Ko)

Tout d'abord 1) bonjour et 2) merci infiniment d'avoir posé ta question, autrement je n'aurais pas eu la chance de pouvoir t'aider gratuitement Ne sois pas surpris que je t'ai si gentiment souhaité la bienvenue, la politesse est un maître mot chez nous

Non, je ne pense pas que Excel propose une solution à ton problème. Moi probablement oui, si tu veux bien me fournir ton fichier.

Merci encore et bonne fin de journée.

Bonsoir Yvouille,

Je vous remerci du code que vous m'avez envoyé, cependant je n'ai pas réussi à le faire fonctionner.

Vous n'avez pas eu le fichier joint que j'ai mis avec mon dernier message nommé "classeur1" et regroupant les données que je veux trier ?

J'ai longtemps chercher pour essayer de trouver une fonction qui trierais mes données et je ne trouve pas de "post" qui corresponde à mon besoin, Excel est vraiment un logiciel puissant mais bien difficile à utiliser pour les débutants je trouve..

Bien à vous et en vous remerciant.

Salut,

Non, je n'avais pas vu ton fichier ! Désolé

Dans le fichier ci-joint, j'ai placé une macro qui devrait faire le travail désiré. J'ai considéré que tu avais toujours le même nombre de données dans tes trois colonnes A, B et C. Si ce n'est pas le cas, il faudra modifier le code en conséquence.

Comme ton nombre de données est relativement élevé, ma macro rame durant 2 à 3 minutes. C'est assez long, mais avant que je ne cherche une solution plus rapide, ce serait déjà bien que tu dises si ça correspond bien à ton attente.

Afin que les macros fonctionnent chez toi, tu dois modifier tes paramètres à ce sujet. Cherche dans l’aide Excel avec les mots ‘Activer les macros’ puis tu dois tomber sur un truc du genre ‘Modifier les paramètres de sécurité des macros’ ou ‘Activer ou désactiver les macros’, etc. Mais fait gaffe, tu ne pourras plus t’en passer, des macros

A te relire.

16huey-v2.xlsm (224.96 Ko)

Bonjour,

Oui c'est exactement ça que je recherchais et j'ai réussi à executer ta macro c'est génial

Mais c'est vrai que c'est un peu long et impossible d'utiliser un autre classeur excel pendant ce temps

Bien à toi,

Huey

Re,

Je t'avais dis que si c'est ce dont tu as besoin et que tu l'utilises assez régulièrement, je pouvais chercher une solution afin de raccourcir cette macro.

Alors, je me lance dans ce travail complémentaire ?

A te relire.

Bonsoir,

Oui, une macro raccourci m'interesserait beaucoup c'est gentil. J'ai commencé à étudier les cours VBA pour essayer de comprendre le code que tu as écrit dans la macro, c'est interessant mais pas évident avec toutes ces écritures.

En te remerciant,

huey

Salut,

Voici un nouveau code utilisant des 'Tableaux' VBA, ce qui raccourci quand même la durée de traitement

Option Explicit

Sub aa()
Dim DerLig As Integer, i As Integer, j As Byte, k As Integer, m As Integer
Dim Tableau_A() As Integer, Tableau_B() As Integer

Application.ScreenUpdating = False

DerLig = Range("A" & Rows.Count).End(xlUp).Row

ReDim Tableau_A(DerLig)
ReDim Tableau_B(DerLig)

For j = 1 To 3
    For k = 1 To DerLig
        Tableau_A(k) = Cells(k, j)
    Next k

    For i = DerLig To 2 Step -1
        If Tableau_A(i) <> Tableau_A(i - 1) Then Tableau_B(i) = Tableau_A(i)
    Next i

    m = 2
    For i = 2 To DerLig
        If Tableau_B(i) <> 0 Then
            Cells(m, 7 + j) = Tableau_B(i)
            m = m + 1
        End If
    Next i

    For i = 2 To DerLig
        Tableau_B(i) = 0
    Next i

Next j

Range("A2:C" & DerLig).ClearContents
Range("H2:J" & DerLig).Copy Destination:=Range("A2")
Range("H1:J" & Rows.Count).ClearContents

End Sub

Si quelqu'un suit ce fil et qu'il sait comment remettre à zéro le Tableau_B autrement que par ma boucle ci-dessous, je suis preneur

    For i = 2 To DerLig
        Tableau_B(i) = 0
    Next i

Cordialement.

11huey-v3.xlsm (225.58 Ko)
Rechercher des sujets similaires à "groupement automatique"