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 SubCordialement .
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
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 SubCordialement
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 Subet 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 SubBonjour ,
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 SubPar 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 SubSalut ,
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