Calcul ligne par ligne et affichage des résultats dans une colonne à part

Bonjour à tous,

Je souhaiterai faire un calcul de rentabilité sur une colonne c'est à dire pour chaque ligne en commençant à la 2è valeur avoir :

(valeur de la ligne - (valeur de la ligne précédente - 1)) - 1

et ce jusqu'à la dernière.

Quant aux résultats je souhaiterai les afficher dans une colonne à part.

Pour le moment j'ai ceci :

Sub calculrenta()

Dim renta As Long
Dim cellule As Range

Worksheets(Feuil1).Cells(1, 5).Value = "Rentabilité l'Oréal"
Worksheets(Feuil1).Celles(2, 5).Value = renta

Range("LOREAL").Select
Application.Goto "LOREAL"

For Each cellule In Selection

 renta = (cellule / (cellule - 1)) - 1

 Next cellule

End Sub

Je vous remercie de votre aide !!

Bonjour,

Je n'aurai qu'un mot: "Fichtre !!" (et ce code fonctionne ??)

On ne pourrait pas se contenter d'une formule !?

Bonjour,

un essai se rapprochant de l'existant :

Sub Gugus1()
Dim cellule As Range, Plage As Range, Derlig As Long

With Worksheets("Feuil2") ' à adapter
 Derlig = .Range("B" & Rows.Count).End(xlUp).Row
 Set Plage = .Range("B3:B" & Derlig)
 For Each cellule In Plage
    cellule.Offset(0, -1) = (cellule / (cellule.Offset(-1, 0) - 1)) - 1
 Next cellule
End With
End Sub

les données sont en colonne B le résultat une colonne avant. A adapter

une autre version qui va insérer une formule:

Sub Gugus2()
Dim Derlig As Long
With Worksheets("Feuil2") ' à adapter
 Derlig = .Range("B" & Rows.Count).End(xlUp).Row
 .Range("D3").Formula = "=(B3/(B2-1))-1"
 .Range("D3").AutoFill Destination:=.Range("D3:D" & Derlig), Type:=xlFillDefault
End With
End Sub

les données sont en colonne B le résultat en colonne D. A adapter

Je m'arrête avant 99 !

A+

Merci beaucoup de votre réponse, j'ai essayé les deux codes sans succès.

Une erreur de type 13 incompatibilité de type apparaît.

Sub renta1()

Dim cellule As Range, Plage As Range, Derlig As Long

With Worksheets("Feuil1") '

 Derlig = .Range("C" & Rows.Count).End(xlUp).Row

 Set Plage = .Range("C2:C" & Derlig)

 For Each cellule In Plage

    cellule.Offset(0, -1) = ((cellule / (cellule.Offset(-1, 0))) - 1)

 Next cellule

End With

End Sub

Voici votre code que j'ai adapté, j'ai juste modifié la formule car normalement c'est : (prix en t/prix en t-1 (donc ligne d'au dessus)) -1. J'ai du mal m'exprimer je m'en excuse.

Sauriez vous m'aider ?

Je suis novice en VBA c'est très compliqué ...

Merci beaucoup !!

[quote="U. Milité" post_id=854580 time=1585908982 user_id=44671]

Bonjour,

Je n'aurai qu'un mot: "Fichtre !!" (et ce code fonctionne ??)

On ne pourrait pas se contenter d'une formule !?

Bonjour,

Non ce code ne fonctionne pas justement, je tatônne énormément et sans succès.

Non je ne peux me contenter d'une formule, c'est une analyse statistique et donc obligé de le faire par VBA... Malheureusement je sais le faire en excel mais compliqué de le coder

Re-bonjour,

Et si tu déposais un fichier avec une cinquantaine de lignes (juste tes chiffres, mais ... dans la bonne colonne !)

Voilà

En fait je demande comment faire pour la première colonne mais j'ai d'autres colonnes entre sur lesquelles je devrai également calculer les rentabilités (B jusqu'à S). C'est pour cela que je veux afficher les résultats en T, afin d'avoir un deuxième "tableau" avec les mêmes colonnes mais sous forme de rentabilité.

Merci beaucoup !

Je suis en train d'essayer de faire une boucle mais je suis vraiment perdue

Et tes données sont des nombres ????

Si tu essaies, en C2 de faire

=B2+1

... ça donne quoi, sur ta machine ?

Bonjour, je ne comprends pas votre réponse

Ce que je cherche à faire en VBA, c'est calculer (à partir de la colonne C) et afficher le résultat dans la colonne T tel que :

(5276.669922/5141.799805)-1 = 0,02503...

Ici mon exemple numérique équivaut à : (B3/B2) - 1 = T2

Et ainsi de suite...

je ne comprends pas votre réponse

As-tu essayé ce que je te demandais de faire ?

Mais je ne comprends pas ce que vous m'avez demandé de faire

Si tu essaies, en C2 de faire

=B2+1

... ça donne quoi, sur ta machine ?

Bonjour @U. Milité

gugus99 a dit:

Une erreur de type 13 incompatibilité de type apparaît.

Ca signifie souvent que l'on essaye de faire des calculs sur des variables contenant du texte...

A+

Ca signifie souvent que l'on essaye de faire des calculs sur des variables contenant du texte...

C'est bien pour le lui faire comprendre que je lui demande de faire un petit test !

J'ai changé en nombre effectivement, maintenant cela me donne bien un résultat mais pas le bon

J'essaie de trouver l'erreur dans ma formule de calcul, merci

Ca signifie souvent que l'on essaye de faire des calculs sur des variables contenant du texte...

C'est bien pour le lui faire comprendre que je lui demande de faire un petit test !

gugus99 ne semblant pas comprendre ce qu'il devait faire, c'était pour faire avancer le schimili, schilmi...

Merci beaucoup les Zamis j'ai réussi !!

Bonne journée !

Rechercher des sujets similaires à "calcul ligne affichage resultats colonne part"