Repeter le resultat selon le chiffre dans une cellule

Bonjour ,

Je suis dans la réalisation d'un fichier de vente et je bloque , j'aurais voulu une petite aide car je ne vois pas comment faire , j'ai réaliser la première partie mais je sais pu quoi faire après voici mon résultat , jai un article vendu a une date précise et je calcule le temps de service après l'avoir vendu donc je fait aujourd’hui - la date vendu , la formule et ok mais le problème viens quand j'ai plusieurs article vendu par date je dois ajouter a chaque fois une ligne par article vendu , je bloque sur cette partie , Exemple : le 23/04/2012 a aujourd’hui donc 3 jours et je dispose de 5 article vendu ,je voudrais que pour le résultat il m'ajoute 5 lignes avec le résultat 3 , 3 correspond au nombre de jours et 5 au nombre d'article vendu tout cela dans une colonne et a chaque fois réaliser cela pour les lignes suivantes , je joint mon code qui fonctionne et calcule les jours entre deux dates, j'espere avoir etait bien précis dans mon explication , je joint un fichier exemple .

Sub Macro2()

    If IsDate(Range("D2")) = True Then

Range("l2").Formula = "=IF(ISERROR(DATEDIF(RC[-8],TODAY(),""d"")),"""",(DATEDIF(RC[-8],TODAY(),""d"")))"
    Range("l2").AutoFill Destination:=Range("l2:l65535")

    Else
  Range("l2").Formula = "=IF(ISERROR(DATEDIF(RC[-7],TODAY(),""d"")),"""",(DATEDIF(RC[-7],TODAY(),""d"")))"
    Range("l2").AutoFill Destination:=Range("l2:l65535")
    End If
End Sub

Cordialement .

bonjour

pour le fichier ;cela a du foirer ;ou il est trop lourd ; dans ce cas c'est zip ou ci-joint .com

normalement si tu saisis en allant tes ventes donc tes dates ;il ne doit pas y avoir lieu de rajouter des lignes ; amoins qu'une vente soit anti datée sinon tu aurais la possibilité de trier cette base de données par ordre chronologique ( a>>>z et colonne de date )

cordialement

Salut,

Dessoler pour ne pas avoir répondu plutôt mais je n'est plus d'internet chez moi en ce moment ,Donc le résultat souhaiter et la répétition du résultat dans la colonne K après avoir calculer le temps de service , selon le chiffre de la Colonne J "Qte facturée " , cela met utile dans un autre calcule donc j'ai joint le principe dans le fichier , je ne sais pas si cela et vraiment réalisable .

Cordialement .

Salut

Essaye avec ceci :

Sub Macro3()

Dim i, j As Integer
Dim numligne As Integer

i = 2

While IsEmpty(Range("Feuil1!A" & i)) = False
    numligne = Range("Feuil1!J" & i).Value
    j = i
    Range("K" & i).Formula = "=IF(RC[-7]="""","""",DATEDIF(RC[-7],TODAY(),""d""))"
    For i = j + 1 To j + numligne - 1
    Rows(j & ":" & j).Select
    Application.CutCopyMode = False
    Selection.Copy
    Rows(i & ":" & i).Select
    Selection.Insert Shift:=xlDown
    Range("K" & i).Formula = "=IF(RC[-7]="""","""",DATEDIF(RC[-7],TODAY(),""d""))"
    Next i

Wend

End Sub

Cordialement

Salut ,

Merci c'est presque ça par contre je doit l'adapter a ma macro qui existe déjà celle ci me permet de réaliser le calcule sur deux colonnes différentes , mais j'ai un problème d’incompatibilité

voici ma macro :

Sub Macro2()

    If IsDate(Range("D2")) = True Then

Range("K2").Formula = "=IF(RC[-7]="""","""",DATEDIF(RC[-7],TODAY(),""d""))"
    Range("K2").AutoFill Destination:=Range("K2:K65535")

    Else
  Range("K3").Formula = "=IF(RC[-7]="""","""",DATEDIF(RC[-7],TODAY(),""d""))"
    Range("K3").AutoFill Destination:=Range("K3:K65535")
    End If
End Sub

et la la macro adaptez avec la mienne :

Sub Macro2()

    If IsDate(Range("D2")) = True Then

Dim i, j As Integer
Dim numligne As Integer

i = 2

While IsEmpty(Range("Feuil1!A" & i)) = False
    numligne = Range("Feuil1!J" & i).Value
    j = i
    Range("K" & i).Formula = "=IF(RC[-7]="""","""",DATEDIF(RC[-7],TODAY(),""d""))"
    For i = j + 1 To j + numligne - 1
    Rows(j & ":" & j).Select
    Application.CutCopyMode = False
    Selection.Copy
    Rows(i & ":" & i).Select
    Selection.Insert Shift:=xlDown
    Range("K" & i).Formula = "=IF(RC[-7]="""","""",DATEDIF(RC[-7],TODAY(),""d""))"
    Next i

Wend

    Else

  Dim i, j As Integer
    Dim numligne As Integer

    i = 2

    While IsEmpty(Range("sheet1!A" & i)) = False
        numligne = Range("sheet1!J" & i).Value
        j = i
        Range("L" & i).Formula = "=IF(RC[-7]="""","""",DATEDIF(RC[-7],TODAY(),""d""))"
        For i = j + 1 To j + numligne - 1
        Rows(j & ":" & j).Select
        Application.CutCopyMode = False
        Selection.Copy
        Rows(i & ":" & i).Select
        Selection.Insert Shift:=xlDown
        Range("L" & i).Formula = "=IF(RC[-7]="""","""",DATEDIF(RC[-7],TODAY(),""d""))"
        Next i

    Wend
    End If
End Sub

Bonjour ,

Lorsque tu copie-colle , pense à copier après les lignes de déclarations de variables ^^

 Sub Macro2()

    Dim i, j As Integer
    Dim numligne As Integer
    Dim feuille As String
feuille = Workbooks("test pour vente 123634").ActiveSheet.Name

If IsDate(Range("D2")) = True Then

    i = 2

    While IsEmpty(Range(feuille & "!A" & i)) = False
        numligne = Range(feuille & "!J" & i).Value
        j = i
        Range("K" & i).Formula = "=IF(RC[-7]="""","""",DATEDIF(RC[-7],TODAY(),""d""))"
        For i = j + 1 To j + numligne - 1
        Rows(j & ":" & j).Select
        Application.CutCopyMode = False
        Selection.Copy
        Rows(i & ":" & i).Select
        Selection.Insert Shift:=xlDown
        Range("K" & i).Formula = "=IF(RC[-7]="""","""",DATEDIF(RC[-7],TODAY(),""d""))"
        Next i

    Wend

Else

        i = 2

        While IsEmpty(Range(feuille & "!A" & i)) = False
            numligne = Range(feuille & "!J" & i).Value
            j = i
            Range("L" & i).Formula = "=IF(RC[-7]="""","""",DATEDIF(RC[-7],TODAY(),""d""))"
            For i = j + 1 To j + numligne - 1
            Rows(j & ":" & j).Select
            Application.CutCopyMode = False
            Selection.Copy
            Rows(i & ":" & i).Select
            Selection.Insert Shift:=xlDown
            Range("L" & i).Formula = "=IF(RC[-7]="""","""",DATEDIF(RC[-7],TODAY(),""d""))"
            Next i

        Wend
End If

End Sub

Par contre je ne comprend pas bien pourquoi tu place la même formule dans deux cases différentes selon les cas

Codrialement

PS: j'ai rajouter une variable prenant le nom de la feuille pour le mettre sur plusieurs feuille ou juste au cas de changement de nom

Salut,

Donc je n'arrive pas a adapter le code que tu ma envoyer pour le deuxieme cas quand la date se trouve en E , le résultat du calcule doit se trouver dans la colonne L et la Quantite et dans la colonne K , j'ai adapter mais au lieu de de rajouter le nombre de ligne suivant la colonne K il fait apparament selon la colonne L .

voici le code

  Sub Macro3()

    Dim i, j As Integer
    Dim numligne As Integer

    i = 3

    While IsEmpty(Range("sheet1!A" & i)) = False
        numligne = Range("sheet1!L" & i).Value
        j = i
        Range("L" & i).Formula = "=IF(RC[-7]="""","""",DATEDIF(RC[-7],TODAY(),""d""))"
        For i = j + 1 To j + numligne - 1
        Rows(j & ":" & j).Select
        Application.CutCopyMode = False
        Selection.Copy
        Rows(i & ":" & i).Select
        Selection.Insert Shift:=xlDown
        Range("l" & i).Formula = "=IF(RC[-7]="""","""",DATEDIF(RC[-7],TODAY(),""d""))"
        Next i

    Wend

    End Sub

Salut ,

J'ai réussi a adapter le code donc je le poste , un grand merci a ramoutch .

  Sub Macro3()

    Dim i, j As Integer
    Dim numligne As Integer

    i = 3

    While IsEmpty(Range("sheet1!A" & i)) = False
        numligne = Range("sheet1!k" & i).Value
        j = i
        Range("L" & i).Formula = "=IF(RC[-7]="""","""",DATEDIF(RC[-7],TODAY(),""d""))"
        For i = j + 1 To j + numligne - 1
        Rows(j & ":" & j).Select
        Application.CutCopyMode = False
        Selection.Copy
        Rows(i & ":" & i).Select
        Selection.Insert Shift:=xlDown
        Range("l" & i).Formula = "=IF(RC[-7]="""","""",DATEDIF(RC[-7],TODAY(),""d""))"
        Next i

    Wend

    End Sub
Rechercher des sujets similaires à "repeter resultat chiffre"