Excel : calcul automatique dans une cellule

Résolu/Fermé
hys56 - 15 déc. 2007 à 21:22
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 26 déc. 2007 à 23:15
Bonjour, je voudrais savoir comment je peux faire effectuer un calcul dans une cellule au moment où j'inscris un nombre
ex : j'écris un chiffre et je veux qu'il soit divisé par 4
il faut que cela soit possoble dans une plage de cellules et aussi dans des colonnes différentes en variant le diviseur
je suppose qu'il faut passer par le vba...que je ne connais pas alors si qqun peut m'aider ce serait gentil
A voir également:

6 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
15 déc. 2007 à 22:10
bonjour

ex : j'écris un chiffre et je veux qu'il soit divisé par 4

tu écris : =32/4 et tu obtiens 8

il faut que cela soit possoble dans une plage de cellules et aussi dans des colonnes différentes en variant le diviseur

Dans la cellule D1 par exemple tu mets 5, dans la cellule D2 par exemple tu mets 3

Dans ta plage tu écris : =41/D1 et tu obtiens 8,2 ou =30/D2 et tu obtiens 10 et si tu mets 2 en D2 tu obtiens 15

Ce n'est peut-être pas ce que tu veux mais tu avoueras que ne n'est pas courant de saisir un chiffre pour en voir un autre...
0
bonsoir je crois que tu ne comprends pas la demande j'ai besoin que le calcul s'effectue immédiatement dans la cellule lorsque j'inscris le chiffre je connais bien sûr le système que tu mes proposes une cellule qui sert de référence à partir de laquelle on effectue le calcul c'est simple mais ça multiplie les colonnes on ne peut pas ensuite supprimer la colonne de référence
avec une programmation en vba c'est possible mais je ne m'y connais pas c'est pourquoi j'espère une aide sur ce forum
j'ai déjà eu des proposition mais ça ne marche pas ex

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo FIN
p1 = Intersect(Target, [A10:A25]) Is Nothing
p2 = Intersect(Target, [B10:B25]) Is Nothing
p3 = Intersect(Target, [c10:c25]) Is Nothing
p4 = Intersect(Target, [d10:d25]) Is Nothing
If p1 = False Then d = 3
If p2 = False Then d = 4
If p3 = False Then d = 5
If p4 = False Then d = 6
Application.EnableEvents = False
If (IsNumeric(Target) And Not IsEmpty(Target)) Then Target = Target / d
FIN:
Application.EnableEvents = True
End Sub
c'est un code à copier dans l'onglet de la feuille et qui permet d'effectuer le calcul mais...il y a pb lequel??
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
15 déc. 2007 à 23:12
bonjour

Effectivement je n'avais pas tout à fait compris mais je te corrige ta macro pour qu'elle fonctionne
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo FIN
Dim d As double
If Not Intersect(Target, [A10:A25]) Is Nothing Then d = 3
If Not Intersect(Target, [B10:B25]) Is Nothing Then d = 4
If Not Intersect(Target, [c10:c25]) Is Nothing Then d = 5
If Not Intersect(Target, [d10:d25]) Is Nothing Then d = 6
Application.EnableEvents = False
If (IsNumeric(Target) And Not IsEmpty(Target)) Then Target = Target / d
FIN:
Application.EnableEvents = True
End Sub

C'est vrai que cela fait ce que tu veux mais cela surprend.
bon test.
0
bonjour merci pour la corre'ction ça marche impec bon dimanche
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bonsoir
je suis débutante et j'aimerai savoir comment faire pour pouvoir faire une augmentation de tarifs (ex: 5%) sur une grille tarifaire
merci
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
26 déc. 2007 à 23:15
bonjour

ta question n'a aucun rapport avec ce sujet résolu alors ouvres une autre discussion en mettant un peu plus de précision s itu veux une réponse adaptée.
0