Fonction: programmer division de cellules
Fermé
matthieumagl
-
27 mai 2011 à 10:22
michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 30 mai 2011 à 10:50
michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 30 mai 2011 à 10:50
A voir également:
- Fonction: programmer division de cellules
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction miroir - Guide
- Fonction somme excel - Guide
- Fonction remplacer word - 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.
Raymond PENTIER
Messages postés
58925
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
14 avril 2025
17 310
30 mai 2011 à 04:14
30 mai 2011 à 04:14
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) ...
michel_m
Messages postés
16602
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 313
30 mai 2011 à 10:50
30 mai 2011 à 10:50
Bonjour
une fonction personnalisée comme tu sembles le demander
si le dénominateur = 0 ou rien la fonction retourne "#VALEUR"
une fonction personnalisée comme tu sembles le demander
Function diviser_sp(cellule As Range) As Double Application.Volatile With cellule diviser_sp = .Offset(-1, 0) / .Offset(-1, -1) End With End Function
si le dénominateur = 0 ou rien la fonction retourne "#VALEUR"