Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

division

14 réponses
Avatar
marcus
Bonjour à vous deux
je tente ma chance avec le même sujet car je n'ai toujours pas eu de réponse.
Voici mon problème.
Dans la colonne D, j'ai 3000 chiffres.
Dans la colonne E, je dois faire une formule (division) avec la cellule
suivante.

Exemple
Colonne D
D1=10
D2=2
Donc dans E1, je dois avoir D1/D2, jusque là, tout va bien. Par contre, si
le chiffre est égale à zéro, Excel doit faire la division avec le chiffre
suivant.
Dexemple
D1=10
D2=0
D3=2
Donc dans E1, il doit faire D1/D3
Vu que D2 à le montant 0, E2=0 et ainsi de suite.

Je ne trouve pas la façon de faire le calcul. Les zéros ne sont pas dans un
ordre fixe et je suis à la recherche d'une formule, pas d'un code en VBA, si
c'est possible.

Si mon explication n'est pas claire, dite le moi et je joindrai un document.

Merci énormément de votre aide

Marcus

4 réponses

1 2
Avatar
isabelle
bonjour Marcus,

comme elle est présentement la macro met 0 si la valeur de la colonne C = 0
est ce que tu aimerais qu'il n'y ai pas de 0 mais un blanc à la place ?
ai je bien compris ?

isabelle

Bonjour Isabelle
Cela fonctionne parfaitement
J'ai juste besoin d'une petite modification.
quand la cellule indique 0, est-ce que le chiffre au lieu de laisser un
blanc, pourrait pas mettre le chiffre 0

merci de ton aide



j'ai pris en compte que les données sont en "B6:Cx"
il faudra adapter si se n'est pas le cas.

Sub Macro1()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
x = 2
Sheets.Add
ActiveSheet.Name = "zz"
Sheets("Feuil1").Range("B6:C6").AutoFilter
Sheets("Feuil1").Range("B6:C6").AutoFilter Field:=2, Criteria1:="<>0", Operator:=xlAnd
Sheets("zz").Cells.Clear
Sheets("Feuil1").Range("B6:C65536").Copy Sheets("zz").Range("A1")
Sheets("zz").Range("C2").Formula = "²/B3"
Sheets("zz").Range("C2:C" & Sheets("zz").Range("A65536").End(xlUp).Row).FillDown
Sheets("Feuil1").Range("B6:C6").AutoFilter
For Each c In Sheets("Feuil1").Range("C7:C" & Sheets("Feuil1").Range("C65536").End(xlUp).Row)
If c <> 0 Then
Sheets("Feuil1").Range("D" & c.Row) = Sheets("zz").Range("C" & x)
x = x + 1
End If
Next
Sheets("zz").Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub


isabelle



bonjour Isabelle
le problème c'est que c'est un tableau en perpétuelle évolution, à chaque
jour, il se rajoute des données.

Si c'est pas possible en formule, est-ce que ce l'est en VBA?

merci de votre aide




bonjour marcus,

tu pourrais filtrer les données de la colonne C (<>0) et recopier le résultat sur la feuille 2
et la, la division sera facile à faire.

isabelle




Bonjour Isabelle
Voici mon document. La formule donné par IMER09 ne peut fonctionner car il y
a 3000 données dans la colonne. J'envoi un document simplifier.

Merci de m'aider

http://cjoint.com/?kponUDEvGV





bonjour marcus,

c'est une bonne idé de joindre ton document,

car la formule donner par IMER09 est à mon avis excellente et ce n'est pas une macro.

=SI(D1=0;0;SI(D2=0;SI(D3=0;SI(D4=0;SI(D5=0;SI(D6=0;SI(D7=0;SI(D8=0;;D1/D8);D1/D7);D1/D6);D1/D5);D1/D4);D1/D3);D1/D2))

isabelle





Bonjour à vous deux
je tente ma chance avec le même sujet car je n'ai toujours pas eu de réponse.
Voici mon problème.
Dans la colonne D, j'ai 3000 chiffres.
Dans la colonne E, je dois faire une formule (division) avec la cellule
suivante.

Exemple
Colonne D
D1
D2=2
Donc dans E1, je dois avoir D1/D2, jusque là, tout va bien. Par contre, si
le chiffre est égale à zéro, Excel doit faire la division avec le chiffre
suivant.
Dexemple
D1
D2=0
D3=2
Donc dans E1, il doit faire D1/D3
Vu que D2 à le montant 0, E2=0 et ainsi de suite.

Je ne trouve pas la façon de faire le calcul. Les zéros ne sont pas dans un
ordre fixe et je suis à la recherche d'une formule, pas d'un code en VBA, si
c'est possible.

Si mon explication n'est pas claire, dite le moi et je joindrai un document.

Merci énormément de votre aide

Marcus















Avatar
marcus
bonjour Isabelle
présentement, elle me donne un blanc quand je l'ai essayé
voici le résultat en pièce jointe

http://cjoint.com/?kpwJsnp5K1

elle me laisse des blancs, ne pas oublier que j'ai copier ton premier code,
car le troisième code que tu m'as envoyé ne faisait rien à mon écran.

Merci énormément de ton aide

Marcus


bonjour Marcus,

comme elle est présentement la macro met 0 si la valeur de la colonne C = 0
est ce que tu aimerais qu'il n'y ai pas de 0 mais un blanc à la place ?
ai je bien compris ?

isabelle

Bonjour Isabelle
Cela fonctionne parfaitement
J'ai juste besoin d'une petite modification.
quand la cellule indique 0, est-ce que le chiffre au lieu de laisser un
blanc, pourrait pas mettre le chiffre 0

merci de ton aide



j'ai pris en compte que les données sont en "B6:Cx"
il faudra adapter si se n'est pas le cas.

Sub Macro1()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
x = 2
Sheets.Add
ActiveSheet.Name = "zz"
Sheets("Feuil1").Range("B6:C6").AutoFilter
Sheets("Feuil1").Range("B6:C6").AutoFilter Field:=2, Criteria1:="<>0", Operator:=xlAnd
Sheets("zz").Cells.Clear
Sheets("Feuil1").Range("B6:C65536").Copy Sheets("zz").Range("A1")
Sheets("zz").Range("C2").Formula = "²/B3"
Sheets("zz").Range("C2:C" & Sheets("zz").Range("A65536").End(xlUp).Row).FillDown
Sheets("Feuil1").Range("B6:C6").AutoFilter
For Each c In Sheets("Feuil1").Range("C7:C" & Sheets("Feuil1").Range("C65536").End(xlUp).Row)
If c <> 0 Then
Sheets("Feuil1").Range("D" & c.Row) = Sheets("zz").Range("C" & x)
x = x + 1
End If
Next
Sheets("zz").Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub


isabelle



bonjour Isabelle
le problème c'est que c'est un tableau en perpétuelle évolution, à chaque
jour, il se rajoute des données.

Si c'est pas possible en formule, est-ce que ce l'est en VBA?

merci de votre aide




bonjour marcus,

tu pourrais filtrer les données de la colonne C (<>0) et recopier le résultat sur la feuille 2
et la, la division sera facile à faire.

isabelle




Bonjour Isabelle
Voici mon document. La formule donné par IMER09 ne peut fonctionner car il y
a 3000 données dans la colonne. J'envoi un document simplifier.

Merci de m'aider

http://cjoint.com/?kponUDEvGV





bonjour marcus,

c'est une bonne idé de joindre ton document,

car la formule donner par IMER09 est à mon avis excellente et ce n'est pas une macro.

=SI(D1=0;0;SI(D2=0;SI(D3=0;SI(D4=0;SI(D5=0;SI(D6=0;SI(D7=0;SI(D8=0;;D1/D8);D1/D7);D1/D6);D1/D5);D1/D4);D1/D3);D1/D2))

isabelle





Bonjour à vous deux
je tente ma chance avec le même sujet car je n'ai toujours pas eu de réponse.
Voici mon problème.
Dans la colonne D, j'ai 3000 chiffres.
Dans la colonne E, je dois faire une formule (division) avec la cellule
suivante.

Exemple
Colonne D
D1
D2=2
Donc dans E1, je dois avoir D1/D2, jusque là, tout va bien. Par contre, si
le chiffre est égale à zéro, Excel doit faire la division avec le chiffre
suivant.
Dexemple
D1
D2=0
D3=2
Donc dans E1, il doit faire D1/D3
Vu que D2 à le montant 0, E2=0 et ainsi de suite.

Je ne trouve pas la façon de faire le calcul. Les zéros ne sont pas dans un
ordre fixe et je suis à la recherche d'une formule, pas d'un code en VBA, si
c'est possible.

Si mon explication n'est pas claire, dite le moi et je joindrai un document.

Merci énormément de votre aide

Marcus


















Avatar
marcus
Bonjour Isabelle
je viens d'essayer ta deuxième et elle fonctionne parfaitement avec les 0 à
la bonne place.

Merci de ton aide, ce fût très apprécié

Marcus


bonjour Marcus,

comme elle est présentement la macro met 0 si la valeur de la colonne C = 0
est ce que tu aimerais qu'il n'y ai pas de 0 mais un blanc à la place ?
ai je bien compris ?

isabelle

Bonjour Isabelle
Cela fonctionne parfaitement
J'ai juste besoin d'une petite modification.
quand la cellule indique 0, est-ce que le chiffre au lieu de laisser un
blanc, pourrait pas mettre le chiffre 0

merci de ton aide



j'ai pris en compte que les données sont en "B6:Cx"
il faudra adapter si se n'est pas le cas.

Sub Macro1()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
x = 2
Sheets.Add
ActiveSheet.Name = "zz"
Sheets("Feuil1").Range("B6:C6").AutoFilter
Sheets("Feuil1").Range("B6:C6").AutoFilter Field:=2, Criteria1:="<>0", Operator:=xlAnd
Sheets("zz").Cells.Clear
Sheets("Feuil1").Range("B6:C65536").Copy Sheets("zz").Range("A1")
Sheets("zz").Range("C2").Formula = "²/B3"
Sheets("zz").Range("C2:C" & Sheets("zz").Range("A65536").End(xlUp).Row).FillDown
Sheets("Feuil1").Range("B6:C6").AutoFilter
For Each c In Sheets("Feuil1").Range("C7:C" & Sheets("Feuil1").Range("C65536").End(xlUp).Row)
If c <> 0 Then
Sheets("Feuil1").Range("D" & c.Row) = Sheets("zz").Range("C" & x)
x = x + 1
End If
Next
Sheets("zz").Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub


isabelle



bonjour Isabelle
le problème c'est que c'est un tableau en perpétuelle évolution, à chaque
jour, il se rajoute des données.

Si c'est pas possible en formule, est-ce que ce l'est en VBA?

merci de votre aide




bonjour marcus,

tu pourrais filtrer les données de la colonne C (<>0) et recopier le résultat sur la feuille 2
et la, la division sera facile à faire.

isabelle




Bonjour Isabelle
Voici mon document. La formule donné par IMER09 ne peut fonctionner car il y
a 3000 données dans la colonne. J'envoi un document simplifier.

Merci de m'aider

http://cjoint.com/?kponUDEvGV





bonjour marcus,

c'est une bonne idé de joindre ton document,

car la formule donner par IMER09 est à mon avis excellente et ce n'est pas une macro.

=SI(D1=0;0;SI(D2=0;SI(D3=0;SI(D4=0;SI(D5=0;SI(D6=0;SI(D7=0;SI(D8=0;;D1/D8);D1/D7);D1/D6);D1/D5);D1/D4);D1/D3);D1/D2))

isabelle





Bonjour à vous deux
je tente ma chance avec le même sujet car je n'ai toujours pas eu de réponse.
Voici mon problème.
Dans la colonne D, j'ai 3000 chiffres.
Dans la colonne E, je dois faire une formule (division) avec la cellule
suivante.

Exemple
Colonne D
D1
D2=2
Donc dans E1, je dois avoir D1/D2, jusque là, tout va bien. Par contre, si
le chiffre est égale à zéro, Excel doit faire la division avec le chiffre
suivant.
Dexemple
D1
D2=0
D3=2
Donc dans E1, il doit faire D1/D3
Vu que D2 à le montant 0, E2=0 et ainsi de suite.

Je ne trouve pas la façon de faire le calcul. Les zéros ne sont pas dans un
ordre fixe et je suis à la recherche d'une formule, pas d'un code en VBA, si
c'est possible.

Si mon explication n'est pas claire, dite le moi et je joindrai un document.

Merci énormément de votre aide

Marcus


















Avatar
isabelle
voila je l'ai modifié un peu pour qu'elle s'adapte la longueur de plage variable,

Sub Macro1()
Application.ScreenUpdating = False
For Each s In Range("C7:C" & Range("C65536").End(xlUp).Row)
For Each c In Range("C" & s.Row + 1 & ":C" & Range("C65536").End(xlUp).Row)
If c <> 0 Then
Range("D" & s.Row) = s / c
Exit For
End If
Next
Next
Application.ScreenUpdating = True
End Sub


isabelle

Bonjour Isabelle
je viens d'essayer ta deuxième et elle fonctionne parfaitement avec les 0 à
la bonne place.

Merci de ton aide, ce fût très apprécié

Marcus



bonjour Marcus,

comme elle est présentement la macro met 0 si la valeur de la colonne C = 0
est ce que tu aimerais qu'il n'y ai pas de 0 mais un blanc à la place ?
ai je bien compris ?

isabelle


Bonjour Isabelle
Cela fonctionne parfaitement
J'ai juste besoin d'une petite modification.
quand la cellule indique 0, est-ce que le chiffre au lieu de laisser un
blanc, pourrait pas mettre le chiffre 0

merci de ton aide




j'ai pris en compte que les données sont en "B6:Cx"
il faudra adapter si se n'est pas le cas.

Sub Macro1()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
x = 2
Sheets.Add
ActiveSheet.Name = "zz"
Sheets("Feuil1").Range("B6:C6").AutoFilter
Sheets("Feuil1").Range("B6:C6").AutoFilter Field:=2, Criteria1:="<>0", Operator:=xlAnd
Sheets("zz").Cells.Clear
Sheets("Feuil1").Range("B6:C65536").Copy Sheets("zz").Range("A1")
Sheets("zz").Range("C2").Formula = "²/B3"
Sheets("zz").Range("C2:C" & Sheets("zz").Range("A65536").End(xlUp).Row).FillDown
Sheets("Feuil1").Range("B6:C6").AutoFilter
For Each c In Sheets("Feuil1").Range("C7:C" & Sheets("Feuil1").Range("C65536").End(xlUp).Row)
If c <> 0 Then
Sheets("Feuil1").Range("D" & c.Row) = Sheets("zz").Range("C" & x)
x = x + 1
End If
Next
Sheets("zz").Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub


isabelle




bonjour Isabelle
le problème c'est que c'est un tableau en perpétuelle évolution, à chaque
jour, il se rajoute des données.

Si c'est pas possible en formule, est-ce que ce l'est en VBA?

merci de votre aide





bonjour marcus,

tu pourrais filtrer les données de la colonne C (<>0) et recopier le résultat sur la feuille 2
et la, la division sera facile à faire.

isabelle





Bonjour Isabelle
Voici mon document. La formule donné par IMER09 ne peut fonctionner car il y
a 3000 données dans la colonne. J'envoi un document simplifier.

Merci de m'aider

http://cjoint.com/?kponUDEvGV






bonjour marcus,

c'est une bonne idé de joindre ton document,

car la formule donner par IMER09 est à mon avis excellente et ce n'est pas une macro.

=SI(D1=0;0;SI(D2=0;SI(D3=0;SI(D4=0;SI(D5=0;SI(D6=0;SI(D7=0;SI(D8=0;;D1/D8);D1/D7);D1/D6);D1/D5);D1/D4);D1/D3);D1/D2))

isabelle






Bonjour à vous deux
je tente ma chance avec le même sujet car je n'ai toujours pas eu de réponse.
Voici mon problème.
Dans la colonne D, j'ai 3000 chiffres.
Dans la colonne E, je dois faire une formule (division) avec la cellule
suivante.

Exemple
Colonne D
D1
D2=2
Donc dans E1, je dois avoir D1/D2, jusque là, tout va bien. Par contre, si
le chiffre est égale à zéro, Excel doit faire la division avec le chiffre
suivant.
Dexemple
D1
D2=0
D3=2
Donc dans E1, il doit faire D1/D3
Vu que D2 à le montant 0, E2=0 et ainsi de suite.

Je ne trouve pas la façon de faire le calcul. Les zéros ne sont pas dans un
ordre fixe et je suis à la recherche d'une formule, pas d'un code en VBA, si
c'est possible.

Si mon explication n'est pas claire, dite le moi et je joindrai un document.

Merci énormément de votre aide

Marcus



















1 2