Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

calcul automatique dans une cellule

14 réponses
Avatar
hys56
bonjour à tous j'ai peu de connaissances en excel et je souhaiterais une
aide pour ce pb je voudrais que lorsque j'écris un chiffre dans une cellule
celui ci se transforme par division ou multiplication j'ai essayé en faisant
par ex :
=/4 mais j'ai une erreur
comment dois-je procéder ? merci de l'aide.

4 réponses

1 2
Avatar
Tatanka
Un exemple à cette adresse :
http://cjoint.com/?mptEgZ7Vp4

Serge



"Tatanka" a écrit dans le message de news:
Ne te décourage pas tout de suite :-)
Je t'envoie sous peu une exemple sur Cjoint.com

Serge

"hys56" a écrit dans le message de news:
re dsl mais je n'y arrive pas j'ai collé cette macro dans "clic droit sur onglet et visualiser le code sur la page qui apparait
= rien ensuite j'ai collé dans un module = rien
qu'est ce que je fais de travers??
la première macro fonctionnait à chaque chiffre inscrit il se divisait en 4 ensuite plus rien j'ai collé la correction mais tjrs
rien
je dois inscrire un chiffre dans les cellules d'une même colonne (T10,T11,T12,...) et avoir une division dans chaque cellule.
mystère?


"Tatanka" a écrit dans le message de news:
Meilleure ainsi. Avec cette macro,
1) Si tu entres, par exemple, la valeur 12 simultanément
dans plusieurs cellules (Ctrl+Entrée), chaque cellule
sera divisée par 4.
2) Si tu entres du texte, il n'y aura pas de message d'erreur.
3) Si tu « vides » une cellule, 0 n'apparaîtra pas.

Private Sub Worksheet_Change(ByVal Target As Range)
Set inters = Intersect([a1:d10], Target)
If Not inters Is Nothing Then
Application.EnableEvents = False
For Each c In inters
If (IsNumeric(c) And Not IsEmpty(c)) Then c.Value = c / 4
Next c
End If
Application.EnableEvents = True
End Sub

Serge


"Tatanka" a écrit dans le message de news:
Salut,

Ma dernière macro n'était pas très fiable!
Prudence avec Application.EnableEvents = False.
Si tu constates des anomalies, colle cette macro :
Sub Correction()
Application.EnableEvents = True
End Sub
dans un module standard, dépose le curseur devant
« Application.EnableEvents = True » et tape sur F5.
Tu pourras alors utiliser cette macro si les cellules concernées
sont dans la plage A1:D10 :

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo FIN
Set inters = Intersect([a1:d10], Target)
If Not inters Is Nothing Then
Application.EnableEvents = False
Target = Target / 4
End If
FIN:
Application.EnableEvents = True
End Sub

Serge

"hys56" a écrit dans le message de news:
bonsoir et merci si je veux à présent étendre à d'autres cellules ex a1, a2 etc qu'est ce que je dois changer?
"Tatanka" a écrit dans le message de news:
Bonjour,

Je crois bien qu'il te faille passer par une macro de feuille.
Supposons que tu entres ton nombre en A1 et que tu veux
qu'il soit automatiquement divisé par 4.
Fais un clic droir sur l'onglet de ta feuille de calcul,
clique sur Visualiser le code... et colle cette macro dans la
feuille vierge qui devrait apparaître :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target <> [a1] Then Exit Sub
Application.EnableEvents = False
[a1] = [a1] / 4
Application.EnableEvents = True
End Sub

Est-ce que ça te convient ?

Serge

"hys56" a écrit dans le message de news:
bonjour à tous j'ai peu de connaissances en excel et je souhaiterais une aide pour ce pb je voudrais que lorsque j'écris un
chiffre dans une cellule celui ci se transforme par division ou multiplication j'ai essayé en faisant par ex :
=/4 mais j'ai une erreur
comment dois-je procéder ? merci de l'aide.



























Avatar
hys56
re et merci
j'ai regardé l'exemple c'est bien sûr ce que je souhaite
il suffit donc que je recopie ce code dans mon ongle
le module est-il nécessaire?
toutefois sur la même feuille je dois effectuer d'autres divisions par 3 ou
par 5 dans des colonnes différentes est-ce que je peux recopier plusieurs
fois la macro en modifiant la plage de cellules?
durdur...
"Tatanka" a écrit dans le message de news:

Un exemple à cette adresse :
http://cjoint.com/?mptEgZ7Vp4

Serge



"Tatanka" a écrit dans le message de news:

Ne te décourage pas tout de suite :-)
Je t'envoie sous peu une exemple sur Cjoint.com

Serge

"hys56" a écrit dans le message de news:

re dsl mais je n'y arrive pas j'ai collé cette macro dans "clic droit
sur onglet et visualiser le code sur la page qui apparait = rien
ensuite j'ai collé dans un module = rien
qu'est ce que je fais de travers??
la première macro fonctionnait à chaque chiffre inscrit il se divisait
en 4 ensuite plus rien j'ai collé la correction mais tjrs rien
je dois inscrire un chiffre dans les cellules d'une même colonne
(T10,T11,T12,...) et avoir une division dans chaque cellule.
mystère?


"Tatanka" a écrit dans le message de
news:
Meilleure ainsi. Avec cette macro,
1) Si tu entres, par exemple, la valeur 12 simultanément
dans plusieurs cellules (Ctrl+Entrée), chaque cellule
sera divisée par 4.
2) Si tu entres du texte, il n'y aura pas de message d'erreur.
3) Si tu « vides » une cellule, 0 n'apparaîtra pas.

Private Sub Worksheet_Change(ByVal Target As Range)
Set inters = Intersect([a1:d10], Target)
If Not inters Is Nothing Then
Application.EnableEvents = False
For Each c In inters
If (IsNumeric(c) And Not IsEmpty(c)) Then c.Value = c / 4
Next c
End If
Application.EnableEvents = True
End Sub

Serge


"Tatanka" a écrit dans le message de
news:
Salut,

Ma dernière macro n'était pas très fiable!
Prudence avec Application.EnableEvents = False.
Si tu constates des anomalies, colle cette macro :
Sub Correction()
Application.EnableEvents = True
End Sub
dans un module standard, dépose le curseur devant
« Application.EnableEvents = True » et tape sur F5.
Tu pourras alors utiliser cette macro si les cellules concernées
sont dans la plage A1:D10 :

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo FIN
Set inters = Intersect([a1:d10], Target)
If Not inters Is Nothing Then
Application.EnableEvents = False
Target = Target / 4
End If
FIN:
Application.EnableEvents = True
End Sub

Serge

"hys56" a écrit dans le message de news:

bonsoir et merci si je veux à présent étendre à d'autres cellules ex
a1, a2 etc qu'est ce que je dois changer?
"Tatanka" a écrit dans le message de
news:
Bonjour,

Je crois bien qu'il te faille passer par une macro de feuille.
Supposons que tu entres ton nombre en A1 et que tu veux
qu'il soit automatiquement divisé par 4.
Fais un clic droir sur l'onglet de ta feuille de calcul,
clique sur Visualiser le code... et colle cette macro dans la
feuille vierge qui devrait apparaître :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target <> [a1] Then Exit Sub
Application.EnableEvents = False
[a1] = [a1] / 4
Application.EnableEvents = True
End Sub

Est-ce que ça te convient ?

Serge

"hys56" a écrit dans le message de news:

bonjour à tous j'ai peu de connaissances en excel et je
souhaiterais une aide pour ce pb je voudrais que lorsque j'écris un
chiffre dans une cellule celui ci se transforme par division ou
multiplication j'ai essayé en faisant par ex :
=/4 mais j'ai une erreur
comment dois-je procéder ? merci de l'aide.































Avatar
Tatanka
Salut,

Si tu changes la valeur d'une seule cellule à la fois
dans des plages nommées, par exemple, un, deux, trois et quatre,
la macro suivante me semble compétente.
Clic droit sur l'onglet de la feuile contenant ces plages nommées,
clique sur Visualiser le code... et colle la macro :

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo FIN
p1 = Intersect(Target, [un]) Is Nothing
p2 = Intersect(Target, [deux]) Is Nothing
p3 = Intersect(Target, [trois]) Is Nothing
p4 = Intersect(Target, [quatre]) 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

Serge


"hys56" a écrit dans le message de news:
re et merci
j'ai regardé l'exemple c'est bien sûr ce que je souhaite
il suffit donc que je recopie ce code dans mon ongle
le module est-il nécessaire?
toutefois sur la même feuille je dois effectuer d'autres divisions par 3 ou par 5 dans des colonnes différentes est-ce que je peux
recopier plusieurs fois la macro en modifiant la plage de cellules?
durdur...
"Tatanka" a écrit dans le message de news:
Un exemple à cette adresse :
http://cjoint.com/?mptEgZ7Vp4

Serge



"Tatanka" a écrit dans le message de news:
Ne te décourage pas tout de suite :-)
Je t'envoie sous peu une exemple sur Cjoint.com

Serge

"hys56" a écrit dans le message de news:
re dsl mais je n'y arrive pas j'ai collé cette macro dans "clic droit sur onglet et visualiser le code sur la page qui
apparait = rien ensuite j'ai collé dans un module = rien
qu'est ce que je fais de travers??
la première macro fonctionnait à chaque chiffre inscrit il se divisait en 4 ensuite plus rien j'ai collé la correction mais
tjrs rien
je dois inscrire un chiffre dans les cellules d'une même colonne (T10,T11,T12,...) et avoir une division dans chaque cellule.
mystère?


"Tatanka" a écrit dans le message de news:
Meilleure ainsi. Avec cette macro,
1) Si tu entres, par exemple, la valeur 12 simultanément
dans plusieurs cellules (Ctrl+Entrée), chaque cellule
sera divisée par 4.
2) Si tu entres du texte, il n'y aura pas de message d'erreur.
3) Si tu « vides » une cellule, 0 n'apparaîtra pas.

Private Sub Worksheet_Change(ByVal Target As Range)
Set inters = Intersect([a1:d10], Target)
If Not inters Is Nothing Then
Application.EnableEvents = False
For Each c In inters
If (IsNumeric(c) And Not IsEmpty(c)) Then c.Value = c / 4
Next c
End If
Application.EnableEvents = True
End Sub

Serge


"Tatanka" a écrit dans le message de news:
Salut,

Ma dernière macro n'était pas très fiable!
Prudence avec Application.EnableEvents = False.
Si tu constates des anomalies, colle cette macro :
Sub Correction()
Application.EnableEvents = True
End Sub
dans un module standard, dépose le curseur devant
« Application.EnableEvents = True » et tape sur F5.
Tu pourras alors utiliser cette macro si les cellules concernées
sont dans la plage A1:D10 :

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo FIN
Set inters = Intersect([a1:d10], Target)
If Not inters Is Nothing Then
Application.EnableEvents = False
Target = Target / 4
End If
FIN:
Application.EnableEvents = True
End Sub

Serge

"hys56" a écrit dans le message de news:
bonsoir et merci si je veux à présent étendre à d'autres cellules ex a1, a2 etc qu'est ce que je dois changer?
"Tatanka" a écrit dans le message de news:
Bonjour,

Je crois bien qu'il te faille passer par une macro de feuille.
Supposons que tu entres ton nombre en A1 et que tu veux
qu'il soit automatiquement divisé par 4.
Fais un clic droir sur l'onglet de ta feuille de calcul,
clique sur Visualiser le code... et colle cette macro dans la
feuille vierge qui devrait apparaître :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target <> [a1] Then Exit Sub
Application.EnableEvents = False
[a1] = [a1] / 4
Application.EnableEvents = True
End Sub

Est-ce que ça te convient ?

Serge

"hys56" a écrit dans le message de news:
bonjour à tous j'ai peu de connaissances en excel et je souhaiterais une aide pour ce pb je voudrais que lorsque j'écris
un chiffre dans une cellule celui ci se transforme par division ou multiplication j'ai essayé en faisant par ex :
=/4 mais j'ai une erreur
comment dois-je procéder ? merci de l'aide.



































Avatar
hys56
je suppose que dans le crochet un deux ou trois j'indique la plage de
cellules?
j'ai essayé et ca ne marche pas
désolé
"Tatanka" a écrit dans le message de news:

Salut,

Si tu changes la valeur d'une seule cellule à la fois
dans des plages nommées, par exemple, un, deux, trois et quatre,
la macro suivante me semble compétente.
Clic droit sur l'onglet de la feuile contenant ces plages nommées,
clique sur Visualiser le code... et colle la macro :

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo FIN
p1 = Intersect(Target, [un]) Is Nothing
p2 = Intersect(Target, [deux]) Is Nothing
p3 = Intersect(Target, [trois]) Is Nothing
p4 = Intersect(Target, [quatre]) 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

Serge


"hys56" a écrit dans le message de news:

re et merci
j'ai regardé l'exemple c'est bien sûr ce que je souhaite
il suffit donc que je recopie ce code dans mon ongle
le module est-il nécessaire?
toutefois sur la même feuille je dois effectuer d'autres divisions par 3
ou par 5 dans des colonnes différentes est-ce que je peux recopier
plusieurs fois la macro en modifiant la plage de cellules?
durdur...
"Tatanka" a écrit dans le message de
news:
Un exemple à cette adresse :
http://cjoint.com/?mptEgZ7Vp4

Serge



"Tatanka" a écrit dans le message de
news:
Ne te décourage pas tout de suite :-)
Je t'envoie sous peu une exemple sur Cjoint.com

Serge

"hys56" a écrit dans le message de news:

re dsl mais je n'y arrive pas j'ai collé cette macro dans "clic droit
sur onglet et visualiser le code sur la page qui apparait = rien
ensuite j'ai collé dans un module = rien
qu'est ce que je fais de travers??
la première macro fonctionnait à chaque chiffre inscrit il se divisait
en 4 ensuite plus rien j'ai collé la correction mais tjrs rien
je dois inscrire un chiffre dans les cellules d'une même colonne
(T10,T11,T12,...) et avoir une division dans chaque cellule.
mystère?


"Tatanka" a écrit dans le message de
news:
Meilleure ainsi. Avec cette macro,
1) Si tu entres, par exemple, la valeur 12 simultanément
dans plusieurs cellules (Ctrl+Entrée), chaque cellule
sera divisée par 4.
2) Si tu entres du texte, il n'y aura pas de message d'erreur.
3) Si tu « vides » une cellule, 0 n'apparaîtra pas.

Private Sub Worksheet_Change(ByVal Target As Range)
Set inters = Intersect([a1:d10], Target)
If Not inters Is Nothing Then
Application.EnableEvents = False
For Each c In inters
If (IsNumeric(c) And Not IsEmpty(c)) Then c.Value = c / 4
Next c
End If
Application.EnableEvents = True
End Sub

Serge


"Tatanka" a écrit dans le message de
news:
Salut,

Ma dernière macro n'était pas très fiable!
Prudence avec Application.EnableEvents = False.
Si tu constates des anomalies, colle cette macro :
Sub Correction()
Application.EnableEvents = True
End Sub
dans un module standard, dépose le curseur devant
« Application.EnableEvents = True » et tape sur F5.
Tu pourras alors utiliser cette macro si les cellules concernées
sont dans la plage A1:D10 :

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo FIN
Set inters = Intersect([a1:d10], Target)
If Not inters Is Nothing Then
Application.EnableEvents = False
Target = Target / 4
End If
FIN:
Application.EnableEvents = True
End Sub

Serge

"hys56" a écrit dans le message de news:

bonsoir et merci si je veux à présent étendre à d'autres cellules
ex a1, a2 etc qu'est ce que je dois changer?
"Tatanka" a écrit dans le message
de news:
Bonjour,

Je crois bien qu'il te faille passer par une macro de feuille.
Supposons que tu entres ton nombre en A1 et que tu veux
qu'il soit automatiquement divisé par 4.
Fais un clic droir sur l'onglet de ta feuille de calcul,
clique sur Visualiser le code... et colle cette macro dans la
feuille vierge qui devrait apparaître :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target <> [a1] Then Exit Sub
Application.EnableEvents = False
[a1] = [a1] / 4
Application.EnableEvents = True
End Sub

Est-ce que ça te convient ?

Serge

"hys56" a écrit dans le message de news:

bonjour à tous j'ai peu de connaissances en excel et je
souhaiterais une aide pour ce pb je voudrais que lorsque j'écris
un chiffre dans une cellule celui ci se transforme par division
ou multiplication j'ai essayé en faisant par ex :
=/4 mais j'ai une erreur
comment dois-je procéder ? merci de l'aide.







































1 2