XL 2016 Convertir/Résumer une colonne dans une cellule

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

Claudy

XLDnaute Accro
Bonjour,
une colonne avec des numéros (de factures) , les numéros sont triés du plus petit au plus grand, mais ne se suivent pas, pas d'incrémentation.Exemple:
upload_2018-8-23_15-17-48.png


Comment retrouver cette liste dans une seule et même cellule résumant la colonne, exemple:

upload_2018-8-23_15-19-29.png


Remarque: le 480 à 482 et 486 à 487.

La colonne d'origine pourrait contenir des dizaines de lignes.

Merci d'avance,
Claudy
 

Pièces jointes

  • upload_2018-8-23_15-19-8.png
    upload_2018-8-23_15-19-8.png
    888 bytes · Affichages: 29
Bonjour Claudy

@Claudy

Je ne c'est pas si c'est possible, seuls les experts nous le dirons. Moi pour l'instant j'obtiens ceci

369,465,470,472,474,480 à 481 à 482,486 à 487,497,503,546,550,652,

Voici la macro

VB:
Sub test()
Dim fin&, i&, temp

    fin = Cells(Rows.Count, 1).End(xlUp).Row
    Range("c2").ClearContents
    On Error Resume Next
    x = 2
    For i = 2 To fin
        x = x + 1
        If Cells(i, 1) = Cells(x, 1) - 1 Then
            temp = temp & Cells(x - 1, 1) & " à "
        Else
            temp = temp & Cells(i, 1) & ","
        End If
    Next i
    Range("c2") = temp
End Sub

EDIT: Bonjour Robert 😉
 
Dernière édition:
Bonjour Claudy, bonjour le forum,

Essaie comme ça :

VB:
Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim COL As Integer 'déclare la variable COL (COLonne)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)

Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
COL = 1 'définit la colonne COL (à adapter à ton cas)
DL = Cells(Application.Rows.Count, COL).End(xlUp).Row 'défiit la dernière ligne éditiée DL de la colonnne COL de l'onglet O
TV = Application.Transpose(O.Range(O.Cells(1, COL), O.Cells(DL, COL))) 'définit la tableau des valeurs TV (en le transposant)
O.Range("C1").Value = "Numéros : " & Join(TV, ", ") 'renvoi e le résultat danns C1 (à adapter à ton cas) de l'onglet O
End Sub

[Édition]
Bonjour Loup Solitaire, Je navet pas lu tout l'énoncé...
 
Re

@Robert : il manque le à dans la macro 480 à 482 - 486 à 487. Je ne sais pas comment enlever les numéros qui vont de 1 à 9. Ici le 481 n'est pas inscrit. Admettons que il aie ceci: 480-481-482-483-484-485-486-487-489-490, comment enlever les numéro entre 480 et 490 pour obtenir 480 à 490 ou 482-483-484-485-486 pour obtenir 482 à 486?? 🙄
 
Dernière édition:
Ok, merci à vous deux, mais, c'est quand il y a une série incrémentée ( dans mon exemple le 480 à 482 et 486 à 487)
Chez Lone Wolf, j'ai: 480, 481, 482,
et chez Robert, j'ai 480 à 481 à 482
au lieu de 480 à 482

Sachant que je pourrais avoir des séries de 100 numéros incrémentés...

Merci pour votre aide et A+
Claudy
 

Pièces jointes

Dernière édition:
Bonsoir Jacky... et super boulot, ça correspond tout à fait à ce que je voulais.
Je n'oublie pas évidemment Robert et Lone Wolf pour leur contribution, merci aux deux.
Pour la numérotation des factures, évidemment , règle essentielle en comptabilité.
Mais cette suite de numéro, provient d'un logiciel comptable, et dans une colonne, les factures impayées et dans une autre colonne les factures payées, à archiver, d'où mon idée de résumer sur une étiquette de boite d'archives les factures payées.
Bonne soirée à tous,
Claudy
 
- 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
2
Affichages
2 K
Retour