Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

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:


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



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
    888 bytes · Affichages: 26

Lone-wolf

XLDnaute Barbatruc
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:

Robert

XLDnaute Barbatruc
Repose en paix
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é...
 

Lone-wolf

XLDnaute Barbatruc
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:

Claudy

XLDnaute Accro
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
 

Jacky67

XLDnaute Barbatruc

Pièces jointes

  • claudy_convertir.xlsm
    15.7 KB · Affichages: 35
Dernière édition:

Claudy

XLDnaute Accro
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
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…