Duplication conditionnelle dans Excel

Bonjour,
voilà mon problème :
j’ai une base de données avec des adresses et des quantités. Je dois en fonction de ces quantités dupliquer une ou plusieurs fois certaines lignes.
Là où ça se corse un peu c’est que je dois avoir dans les nouvelles lignes la différence par rapport à un maxi.
Ex ligne 1 155 Ex : je dois me retrouver avec trois lignes 1 50 Ex; 2 50 Ex; 3 55 Ex voilà j’espère avoir été clair et que quelqu’un pourra m’aider sinon faudra que je traite ligne par ligne. :frowning:
d’avance merci pour votre aide.

mets un fichier exemple en ligne avec http://www.cjoint.com/ par exemple, ce sera plus clair (et plus facile) !

ok je ferai ça demain car c’est pour le taf et là j’ai rien.
Edité le 10/08/2009 à 22:10

En fait, je crois comprendre ce qu’il veut :
Il a :
A1 = 155
et il veut transformer cela, automatiquement, en :
A1 : 50
A2 : 50
A3 : 55

C’est cela que tu veux ???

Il faut probablement passer par une macro, mais je ne suis pas assez compétent pour t’aider…

Salut,
Nostradamus, c’est exactement ça sauf que je me suis planté A = 50 maxi
mais sinon c’est tout à fait ça A1= 50 A2=50 A3=50 A4=5

voilà si vous savez comment faire ça purée c’est trop fort !!

voilà le fichier (j’ai enlevé les adresses car c’est des données clients)
cjoint.com…
@+
Edité le 11/08/2009 à 11:16

Ça ne va pas si on dit que 165, c’est 3 x 50 + 1 x 15 ?
Il faut que ce soit ecrit 50 50 50 15

oui voilà c’est pour des expéditions en colis et il faut autant de lignes que de colis avec maxi 50 par colis

Ce que veut dire djidji , c’est au lieu de 4 lignes :
50
50
50
15
c’est une ligne avec quelque chose dans le genre :
3 x 50 + 1 x 15

oui oui j’avais bien compris mais non il me baut ds ce cas là 4 lignes

Je reviens a la charge !
et avec 4 colonnes ?
165 50 50 50 15

Je vais réexpliquer le problème :
j’ai une colonne qté et une colonne colis
sur une ligne qté = 65 colis = 2
à transformer en :
ligne 1 : qté 50 col 1
ligne2 : qté 15 col 1
Je pensais pourtant que c’était clair :slight_smile:
Chuis sur que ça doit être tout c… bête à faire mais voilà c’est la création de ligne qui me pose problème.

C’est peut-être faisable en le programmant. Mais je ne sais pas faire.

Ce serait plus simple d’avoir les 4 colonnes sur la même ligne…


Tu peux t'inspirer de ça : [www.excel-downloads.com...](http://www.excel-downloads.com/forum/12707-ev-nement-ajout-ligne-automatique.html)

www.clubic.com…

Tu peux essayer cette macro, elle n’est peut-être pas très jolie mais semble fonctionner, du moins si j’ai bien compris ce que tu veux obtenir comme résultat.

Sub calcul()
Dim Ligne As Long
Dim Qte As Integer
Dim Reste As Integer
Dim Colis As Integer
    Ligne = 2
    Do While Cells(Ligne, 1) <> 0
        Qte = Cells(Ligne, 1)
        If Qte > 50 Then
            Cells(Ligne, 1) = 50
            Colis = Int(Qte / 50)
            Do While Colis > 1
                Rows(Ligne).Select
                Selection.Copy
                Selection.Insert Shift:=xlDown
                Cells(Ligne, 1) = 50
                Ligne = Ligne + 1
                Colis = Colis - 1
            Loop
            Reste = Qte Mod 50
            If Reste <> 0 Then
                Rows(Ligne).Select
                Selection.Copy
                Selection.Insert Shift:=xlDown
                Ligne = Ligne + 1
                Cells(Ligne, 1) = Reste
            End If
        End If
        Ligne = Ligne + 1
    Loop
    Cells(1, 1).Select
End Sub

wouaou
je vais esayer ça et je te dis quoi ! :slight_smile:
merci en tout cas même si ça devait ne pas fonctionner !

Espérons que ça fonctionnera quand même. :wink:

Tu peux créer un bouton sur ta feuille de calcul et lui associer la macro.
Il suffira alors de cliquer sur le bouton pour la lancer.

La macro peut être lancée plusieurs fois sans problème : si elle n’a rien a faire parce qu’elle a déjà été lancée au moins une fois, alors elle ne fait rien mais ne crée pas d’erreur.