Fonction: programmer division de cellules
matthieumagl
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je souhaite mettre en place une fonction excel de ce type:
D6 = D5/C5
mais je voudrais l'appliquer a toute cellule : des que je rentre la fonction dans une cellule X ij, excel divise la cellule "au dessus (Xij-1) par celle en haut a gauche (Xi-1j-1)"
comment faire?
merci d'avance.
je souhaite mettre en place une fonction excel de ce type:
D6 = D5/C5
mais je voudrais l'appliquer a toute cellule : des que je rentre la fonction dans une cellule X ij, excel divise la cellule "au dessus (Xij-1) par celle en haut a gauche (Xi-1j-1)"
comment faire?
merci d'avance.
A voir également:
- Fonction: programmer division de cellules
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction somme excel - Guide
4 réponses
Donc ce que je t'avais répondu est une macro que tu dois copier dans toutes les feuilles où tu as cette division à faire. Elle se déclenchera à chaque fois qu'un valeur de la zone (que tu auras définie) sera modifiée.
Je te rajoute quelques commentaires pour que tu comprennes mieux
Après, si tu veux absoluement passer par une formule, tu peux taper
Je te rajoute quelques commentaires pour que tu comprennes mieux
Sub Worksheet_Change(ByVal Target As Range)
' Target représente la cellule où se fera le calcul
If Not Intersect(Target, Range("D2:D10")) Is Nothing Then
' si cette cellule se trouve dans la zone D2:D10 ( à redéfinir en fonction de ton fichier)
Col = Target.Column 'numero de la colonne de cette cellule
Lig = Target.Row 'numero de la ligne de cete cellule
Target.Value = Cells(Lig - 1, Col).Value / Cells(Lig - 1, Col - 1).Value
' ta cellule = à celle du dessus / celle au dessus à gauche
End If
End Sub
Après, si tu veux absoluement passer par une formule, tu peux taper
=D5/C5dans ta cellule D6 puis incrémenter cette formule sur la colonne.
J'ai pas tout compris ce que tu voulais mais ça pourra t'aider à commencer :
Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D2:D10")) Is Nothing Then
Col = Target.Column
Lig = Target.Row
Target.Value = Cells(Lig - 1, Col).Value / Cells(Lig - 1, Col - 1).Value
End If
End Sub
je ne comprends pas tres bien ce que tu viens de m'envoyer.
Pour t'expliquer mon probleme simplement
1/j'ai des feuilles excel avec plein de donnees
2/ je dois faire de nombreuses operations avec ces donnees
3/ et une fonction qui permetterait d'etre plus rapide serait de m'afficher dans une cellule le resultat de la cellule du dessus diviser par la cellule en haut a gauche.
Par exemple, en D6, je voudrais avoir le resultat de D5/C5.
Pour t'expliquer mon probleme simplement
1/j'ai des feuilles excel avec plein de donnees
2/ je dois faire de nombreuses operations avec ces donnees
3/ et une fonction qui permetterait d'etre plus rapide serait de m'afficher dans une cellule le resultat de la cellule du dessus diviser par la cellule en haut a gauche.
Par exemple, en D6, je voudrais avoir le resultat de D5/C5.
Bonjour matthieumagl.
"1/j'ai des feuilles excel avec plein de donnees
2/ je dois faire de nombreuses operations avec ces donnees "
Il faudrait au moins savoir où sont les cellules avec des données et celles où il faut mettre de formules, non ?
"1/j'ai des feuilles excel avec plein de donnees
2/ je dois faire de nombreuses operations avec ces donnees "
Il faudrait au moins savoir où sont les cellules avec des données et celles où il faut mettre de formules, non ?
Sinon une procédure consiste simplement à donner un nom à ta formule ! Tu procèdes comme pour définir un nom de plage, mais en te plaçant dans la cellule contenant la formule =D5/C5 Il me faudra tester sur Excel 2007, car je constate que ça ne fonctionne pas sous Excel 2011 (Mac) ...