Est-ce qu'une formule de ce type existe ???

Bonjour,

Voilà un fichier contenant bcp d'identifiants et plusieurs lignes :

Ligne 1 : 1042456;1245698;2581258;1456933;1589547;1445472;

Ligne 2 :1141084;1529564;1287882;1187645;1067872;1161094;1320643;MS;1257942;

Ligne 3 : etc.

Je voudrais mettre tous ces numéros (de toutes les lignes) dans une seule et même colonne :

1042456

1245698

2581258

1456933

1589547

1445472

1141084

1529564

etc ...

Existe-t-il une méthode pour se faire ?

Merci par avance,

Olivier

Bonjour,

Tes données sont-elles dans une seule cellule et séparées par un point-virgule ?

Ou bien chaque nombre est dans une cellule différente ?

Autre question, le nombre de données par ligne est-il toujours le même ?

A te (re)lire avec ces quelques précisions

@+

merci pour ta réponse.

J'ai plusieurs lignes. Mes données sont dans une même cellule et effectivement séparées par un point virgule. Le nombre de numéros par ligne varie de ligne en ligne.

En fait les lignes correspondent à des jours, les identifiants à des clients. L'idée est d'avoir dans une seule colonne tous les identifiants.

merci

bonjour à tous

J'ai fait une macro, il faudrait ta feuille pour régler

Claude.

https://www.excel-pratique.com/~files/doc/CA.xlsx

le voici donc ce que j'expliquais se situe dans les onglet (que j'aditionnerais ensuite)

Merci !

re,

fichier en XLS s'il te plait

Claude.

le fichier est à cette adresse https://www.excel-pratique.com/~files/doc/CA.xlsx arrivez vous à le lire ???

re,

non le format n'est pas en XLS

voici mon fichier d"essai

https://www.excel-pratique.com/~files/doc/boucle_caract.xls

Claude.

Merci beaucoup Claude !!! Effectivement le fichier que j'essayais de t'envoyer éait un fichier xlsx (Excel 2007).

Merci encore et bonne soirée Monsieur le BALLON d'OR d'Excel !!!

Salut Claude quand je change les données cela ne fonctionne pas comment cela se fait ? Voici les données dans le deuxieme onglet. Merci.

https://www.excel-pratique.com/~files/doc/mrCyYboucle_caract.xls

Bonsoir,

une autre façon de procéder...

Regarde le fichier joint

Le code :

Sub repartition()
Application.ScreenUpdating = False
Dim DerLig As Long, I As Long, Nbr As Byte
With Sheets("données")
DerLig = .[A65000].End(xlUp).Row  'on calcule la dernière ligne remplie
    .Range("A1:A" & DerLig).TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        ConsecutiveDelimiter:=True, Semicolon:=True, TrailingMinusNumbers:=True
                ' Correspond à Données/Convertir, Délimité, séparateur ";"
    .Cells.Columns.AutoFit ' pour ajuster la largeur des colonnes
    For I = DerLig To 1 Step -1  ' on part de la fin
        Nbr = .Cells(I, 256).End(xlToLeft).Column - 1  'on compte le nombre de chiffres dans la ligne
        If Nbr > 1 Then ' si ce nombre est supérieur à 1
            .Cells(I + 1, 1).Resize(Nbr, 1).Insert xlDown 'on insère autant de lignes que ce nombre
            .Cells(I, 2).Resize(1, Nbr).Copy  'on copie de la colonne B à la dernière colonne remplie
            .Cells(I + 1, 1).PasteSpecial Transpose:=True 'on colle en transposant
        End If
    Next I
    .Columns("B:IV").Delete 'on supprime les anciennes valeurs
    .[A1].Select
End With
End Sub

le fichier joint

https://www.excel-pratique.com/~files/doc/Copie_de_mrCyYboucle_caract_1.xls

re,

modifie cette ligne de code ( 8 à la place de 7)

N = Len(Range("bibi"))

      Cn = Int((N) / 8)

claude.

édit: salut felix, t'avais pas vu !

re,

il y avait une autre ligne à modifier, voici la macro entière

Sub Macro1()
Dim N As String
Dim Cn As String
Dim i As Byte
    Do While ActiveCell <> ""
         ActiveCell.Name = "bibi"
      N = Len(Range("bibi"))
      Cn = Int((N) / 8)
                With [e65536].End(xlUp)(2)
                .Name = "top"
                .Value = ActiveCell
                .Select
                End With

           For i = 1 To Cn
                    ActiveCell = Right(ActiveCell, N)
                    ActiveCell.Offset(1, 0).Select
                    ActiveCell = ActiveCell.Offset(-1, 0)
                    N = N - 8
           Next i
                    ActiveCell.ClearContents
                    Range("top").Select
            For i = 1 To Cn
               ActiveCell = Left(ActiveCell, 7)
               ActiveCell.Offset(1, 0).Select
            Next i
             Range("bibi").Offset(1, 0).Select
    Loop
    ActiveWorkbook.Names("bibi").Delete
    ActiveWorkbook.Names("top").Delete
End Sub

Claude.

Re-,

Bonsoir, Claude

Holekrak, attends, avant d'utiliser les codes fournis

Avec mon code, j'extrais 480 numéros

avec celui de Claude, 478

Et il faudrait extraire 484 !!!!!

je cherche l'erreur

Wait.....

Edit : vu l'erreur

remplace dans la ligne :

If Nbr > 1 Then ' si ce nombre est supérieur à 1

par :

If Nbr > 0 Then ' si ce nombre est supérieur à 0

C'est Bon, Mytå, j'ai pas pris un fil de plus?

merci pour votre travail donc le fichier que je peux télécharger est celui qui est présent dans les derniers posts ou bien doit-il etre modifié ?? MERCI

Bonjour à tous,

tu as 2 solutions :

1- la mienne (macro1 modifiée)

2 - celle de felix (macro répartition à modifier selon ses indications)

tu peux tester les deux

Claude.

ce fichier là est bon donc ? https://www.excel-pratique.com/~files/doc/Copie_de_mrCyYboucle_caract_1.xls

car je ne suis pas à l'aide avec les macros

Merci à tous en tout cas et dire que je bosse pour Microsoft LOL !

Rechercher des sujets similaires à "formule type existe"