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
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
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:
- Excel : calcul automatique dans une cellule
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si et excel - Guide
- Déplacer une colonne excel - Guide
- Excel moyenne - Guide
6 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 718
15 déc. 2007 à 22:10
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...
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...
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??
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??
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 718
15 déc. 2007 à 23:12
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
C'est vrai que cela fait ce que tu veux mais cela surprend.
bon test.
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.
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
je suis débutante et j'aimerai savoir comment faire pour pouvoir faire une augmentation de tarifs (ex: 5%) sur une grille tarifaire
merci
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 718
26 déc. 2007 à 23:15
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.
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.