Fonction si multiple

Bonjour, j'aimerais savoir si quelqu'un aurait une solution, pour transformer une liste avec des quantité, en une liste avec la meme reference si la quantité est superieure a 1,

exemple :

1 aaaaa

1 bbbbb

2 ccccc

1 ddddd

4 eeeee

3 fffff

et je voudrais avoir le resultat suivant :

aaaaa

bbbbb

ccccc

ccccc

ddddd

eeeee

eeeee

eeeee

eeeee

fffff

fffff

fffff

avec une liste qui peut faire une centaine de ligne, et des quantités de 20 possible !

Merci

Bonsoir.

Avec les données en colonne A et les quantités en colonne B, voir si cette formule répond à ta demande:

=SI(NB.SI($D$2:D2;D2)=INDEX($B$2:$B$100;EQUIV(D2;$A$2:$A$100));DECALER(INDEX($A$2:$A$100;EQUIV(D2;$A$2:$A$100));1;);D2)

Voici un fichier pour mieux comprendre.

Si j'ai mal compris, joint également ton fichier. Ca peut aider.

Edit: La formule donnée ici est à tirer vers le bas. C'est comme cela que la plage de recherche s'agrandira.

23arnaud-v.xlsx (11.27 Ko)

Bonsoir

Avec une macro :

19arnaud-v.zip (12.66 Ko)

Amicalement

Nad

merci, ca à l'air de fonctionner !

Bravo !

-- 24 Fév 2011, 19:54 --

pour la macro, ca m'interesse beaucoup, mais ca ne fonctionne pas , voici le message :

Sub Duplique()

Application.ScreenUpdating

Dim i As Long, j As Long

For i = 2 To Range("A65536").End(xlUp).Row

For j = 1 To Cells(i, 1).Value

Cells(i, 1).Resize(, 2).Copy Range("C65536").End(xlUp).Offset(1, 0)

Next j

Next i

Columns("A:C").Delete

End Sub

merci

Re

Désolée, je ne t'ai pas passé le bon fichier :

Sub Duplique()
Application.ScreenUpdating = False
Dim i As Long, j As Long
For i = 2 To Range("A65536").End(xlUp).Row
    For j = 1 To Cells(i, 1).Value
        Cells(i, 1).Resize(, 2).Copy Range("C65536").End(xlUp).Offset(1, 0)
    Next j
Next i
Columns("A:C").Delete
End Sub
15arnaud-v.zip (12.67 Ko)

Nad

Le fichier ci-dessous te servira si un jour, les quantités sont dans la même cellule que le mot a dupliquer.

Cordialement

Option Explicit
'KETAMACANNA

Sub liste_transformation()

Dim i As Long, j As Long
Dim longueur_chaine As Byte, longueur_num As Byte, k As Byte, longueur_mot As Byte
Dim mot As String, repet As String

k = 0

Range("B1:B" & Range("B65000").End(xlUp).Row).Clear

For i = 1 To Range("A65000").End(xlUp).Row

    repet = Val(Cells(i, 1))
        longueur_chaine = Len(Cells(i, 1))
            longueur_num = Len(repet)
                longueur_mot = longueur_chaine - longueur_num - 1
                    mot = Right(Cells(i, 1), longueur_mot)

            For j = 1 To repet
                Range("B65000").End(xlUp).Offset(k, 0) = mot
                k = 1
            Next j
Next i

End Sub
Rechercher des sujets similaires à "fonction multiple"