J'ai beau avoir fait le tour des discussions sur le sujet, je ne comprends pas tout et n'arrive pas à adapter les différentes solutions à mon problème.
Donc merci pour votre aide.
J'ai une plage de données de 3 colonne (A,B,C) fixes avec un nombre de lignes variable suivant ce que j'importe comme données.
Je souhaite créer une 3eme colonne (E) présentant les résultat d'un calcul sur (A,B,C) avec la formule suivante:
=SI(A2-B2<0;0;(A2-B2)*C2)
D'autre part, je souhaite faire la somme de ces résultats (=somme(E2:Ex) et l'afficher dans un cellule prédéfinie d'une autre feuille: B3 de la feuille "Résultats" dans mon exemple.
Mon problème est que je ne sais pas comment faire pour que cette colonne de calcul évolue en fonction des données importées en (A,B,C). Et donc que le résultat de ma somme évolue également.
Merci encore pour votre aide, VBA reste très nébuleux pour moi...
Je ne comprends pas fort bien les formules en Calcul!E:E
Pourquoi il y a-t-il "D" en E2 ?
Pourquoi il y a-t-il un saut de deux lignes à partir de E10 ?
La formule peut être simplifiée comme suit : =(A2-B2>=0)*(A2-B2)*C2
En Résultats!B3, essaie la formule : =SOMME(Calcul!E:E)
En fait si la différence A-B est négative, je veux que le résultat en E soit =0
Si cette différence est positive mais que C=0, alors je veux que E soit =0
Si A-B positif et C=1 alors je veux que E=(A-B)*C
Re à tous,
Je me lance dans une explication, mais ne connaisant pas ton "niveau" je repart du début .
Code:
Private Sub CommandButton1_Click()
Sheets("Tableau").Range("E2:E" & Range("A" & Application.Rows.Count).End(xlUp).Row).FormulaLocal = "=SI(A2-B2<0;0;(A2-B2)*C2)"
Sheets("Résultats").Range("B3").FormulaLocal = "=SOMME(Tableau!E2:E" & Sheets("Tableau").Range("A" & Application.Rows.Count).End(xlUp).Row & ")"
End Sub
Pour copier la formule sur toutes les lignes nécessaires, il faut définir premièrement la cellule de départ et la cellule de fin :
Code:
Sheets("Tableau").Range("E2:E65536")
Mais comme on veux pas inscrire la formule plus loin que nécessaire il faut trouver la ligne de fin. Pour ce faire j'utilise la colonne A, qui, normalement, doit forcément être remplie. Donc la ligne de fin de ma copie de formule est égale à la dernière cellule remplie en colonne A:
Pour cette étape il faut garder à l'esprit que la formule sera recopiée depuis la première cellule de la plage jusqu'a la dernière.
J'en vois qui s'agitent au fond du forum...
Pour la cellule B3 de la feuille Résultat:
On dit que cette cellule est égale à la somme des cellules feuille("Tableau") colonne E jusqu'à la dernière ligne de la colonne A de la feuille("Tableau")