OVH Cloud OVH Cloud

J'aimerais faire A1=A1+B1

20 réponses
Avatar
nicolas
j'aimerais faire une somme cumulé dans une case, des chiffres que je tappe
dans une autre case.

Quand je veux le faire, il dit qu'il y a une référence circulaire.

Je crois que je doit faire sa avec une macro, mais j'y connais pas grand
choses.

Je connais un peux le c et le fortran (avec les function et subroutine)

Je dois crée une nouvelle macro ou cette fonction existe deja?

10 réponses

1 2
Avatar
ru-th
Salut

dans le module de la feuille concernée

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A1:B1]) Is Nothing Then
Application.EnableEvents = False
[A1] = [A1+B1]
Application.EnableEvents = True
End If
End Sub

--
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"nicolas" a écrit dans le message de
news:
j'aimerais faire une somme cumulé dans une case, des chiffres que je tappe
dans une autre case.

Quand je veux le faire, il dit qu'il y a une référence circulaire.

Je crois que je doit faire sa avec une macro, mais j'y connais pas grand
choses.

Je connais un peux le c et le fortran (avec les function et subroutine)

Je dois crée une nouvelle macro ou cette fonction existe deja?




Avatar
nicolas
Je passe quoi comme parametre a la subroutine?
"ru-th" a écrit dans le message de news:

Salut

dans le module de la feuille concernée

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A1:B1]) Is Nothing Then
Application.EnableEvents = False
[A1] = [A1+B1]
Application.EnableEvents = True
End If
End Sub

--
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"nicolas" a écrit dans le message de
news:
j'aimerais faire une somme cumulé dans une case, des chiffres que je
tappe
dans une autre case.

Quand je veux le faire, il dit qu'il y a une référence circulaire.

Je crois que je doit faire sa avec une macro, mais j'y connais pas grand
choses.

Je connais un peux le c et le fortran (avec les function et subroutine)

Je dois crée une nouvelle macro ou cette fonction existe deja?








Avatar
nicolas
je fais une nouvelle macro, puis je lance visual basic editor
la je met le code ci-dedous dans module1
ensuite que dois-je faire?
"ru-th" a écrit dans le message de news:

Salut

dans le module de la feuille concernée

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A1:B1]) Is Nothing Then
Application.EnableEvents = False
[A1] = [A1+B1]
Application.EnableEvents = True
End If
End Sub

--
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"nicolas" a écrit dans le message de
news:
j'aimerais faire une somme cumulé dans une case, des chiffres que je
tappe
dans une autre case.

Quand je veux le faire, il dit qu'il y a une référence circulaire.

Je crois que je doit faire sa avec une macro, mais j'y connais pas grand
choses.

Je connais un peux le c et le fortran (avec les function et subroutine)

Je dois crée une nouvelle macro ou cette fonction existe deja?








Avatar
ru-th
re-
qu'entends-tu par subroutine ?
veux tu dire que chaque fois que tu tapes un chiffre dans une colonne, la
colonne d'à côté s'incrémente ?
Exemple, chaque que fois qu'on tapes un chiffre dans la colonne B cela
incrémente la ligne de la colonne A
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
Application.EnableEvents = False
Cells(Target.Row, 1) = Cells(Target.Row, 1) + Cells(Target.Row, 2)
Application.EnableEvents = True
End If
End Sub

ou.....

autre chose .....

dans l'attente
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"nicolas" a écrit dans le message de
news:
Je passe quoi comme parametre a la subroutine?
"ru-th" a écrit dans le message de news:

Salut

dans le module de la feuille concernée

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A1:B1]) Is Nothing Then
Application.EnableEvents = False
[A1] = [A1+B1]
Application.EnableEvents = True
End If
End Sub

--
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"nicolas" a écrit dans le message de
news:
j'aimerais faire une somme cumulé dans une case, des chiffres que je
tappe
dans une autre case.

Quand je veux le faire, il dit qu'il y a une référence circulaire.

Je crois que je doit faire sa avec une macro, mais j'y connais pas
grand



choses.

Je connais un peux le c et le fortran (avec les function et subroutine)

Je dois crée une nouvelle macro ou cette fonction existe deja?












Avatar
ru-th
C'est une procédure événementielle
dans excel
alt-F11 pour passer dans l'éditeur VBE
dans la petite fenêtre à gauche, project VBAproject, double-clic sur la
feuille qui contient tes données
ou clic droit dessus code

Dans la fenêtre centrale,
au lieu de "général" sélectionner worksheet
soit tu colles la macro
soit tu choisis l'évenement change à la place de "selection change"
et à l'intérieur du bloc
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Tu colles les lignes de codes
End Sub

maintenant quelques commentaires
'l'évenement est le changement de la cellule active ici target
Private Sub Worksheet_Change(ByVal Target As Range)
'si la cellule active est dans la zone A1:B1
If Not Intersect(Target, [A1:B1]) Is Nothing Then
'On stoppe les évenements pour ne pas boucler indéfiniment
'A1+B1 provocant lui un recalcul qui relancera cette procédure
Application.EnableEvents = False
'on additionne
[A1] = [A1+B1]
'on relance le mode évenmentiel
Application.EnableEvents = True
'fin condition
End If
End Sub
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"nicolas" a écrit dans le message de
news:O$$
je fais une nouvelle macro, puis je lance visual basic editor
la je met le code ci-dedous dans module1
ensuite que dois-je faire?
"ru-th" a écrit dans le message de news:

Salut

dans le module de la feuille concernée

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A1:B1]) Is Nothing Then
Application.EnableEvents = False
[A1] = [A1+B1]
Application.EnableEvents = True
End If
End Sub

--
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"nicolas" a écrit dans le message de
news:
j'aimerais faire une somme cumulé dans une case, des chiffres que je
tappe
dans une autre case.

Quand je veux le faire, il dit qu'il y a une référence circulaire.

Je crois que je doit faire sa avec une macro, mais j'y connais pas
grand



choses.

Je connais un peux le c et le fortran (avec les function et subroutine)

Je dois crée une nouvelle macro ou cette fonction existe deja?












Avatar
LeSteph
Bonsoir,
non c'est une private sub
que thierry t'a donné
pas dans module1
dans le module de feuil1:
Ouvrir VBE alt+f11
puis afficher l'Explorateur de projet Ctrl+r
DblClic sur Feuil1 de l'explorateur de projet
le module de feuille apparaît
coller le code.
refermer Vba
et entrer les valeurs dans feuil1

leSteph

"nicolas" a écrit dans le message de
news:O$$
je fais une nouvelle macro, puis je lance visual basic editor
la je met le code ci-dedous dans module1
ensuite que dois-je faire?
"ru-th" a écrit dans le message de news:

Salut

dans le module de la feuille concernée

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A1:B1]) Is Nothing Then
Application.EnableEvents = False
[A1] = [A1+B1]
Application.EnableEvents = True
End If
End Sub

--
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"nicolas" a écrit dans le message de
news:
j'aimerais faire une somme cumulé dans une case, des chiffres que je
tappe
dans une autre case.

Quand je veux le faire, il dit qu'il y a une référence circulaire.

Je crois que je doit faire sa avec une macro, mais j'y connais pas
grand



choses.

Je connais un peux le c et le fortran (avec les function et subroutine)

Je dois crée une nouvelle macro ou cette fonction existe deja?












Avatar
LeSteph
Ah!Pardon, Bonsoir Thierry
complèté aussi désolé..
leSteph

"ru-th" a écrit dans le message de
news:
C'est une procédure événementielle
dans excel
alt-F11 pour passer dans l'éditeur VBE
dans la petite fenêtre à gauche, project VBAproject, double-clic sur la
feuille qui contient tes données
ou clic droit dessus code

Dans la fenêtre centrale,
au lieu de "général" sélectionner worksheet
soit tu colles la macro
soit tu choisis l'évenement change à la place de "selection change"
et à l'intérieur du bloc
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Tu colles les lignes de codes
End Sub

maintenant quelques commentaires
'l'évenement est le changement de la cellule active ici target
Private Sub Worksheet_Change(ByVal Target As Range)
'si la cellule active est dans la zone A1:B1
If Not Intersect(Target, [A1:B1]) Is Nothing Then
'On stoppe les évenements pour ne pas boucler indéfiniment
'A1+B1 provocant lui un recalcul qui relancera cette procédure
Application.EnableEvents = False
'on additionne
[A1] = [A1+B1]
'on relance le mode évenmentiel
Application.EnableEvents = True
'fin condition
End If
End Sub
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"nicolas" a écrit dans le message de
news:O$$
je fais une nouvelle macro, puis je lance visual basic editor
la je met le code ci-dedous dans module1
ensuite que dois-je faire?
"ru-th" a écrit dans le message de news:

Salut

dans le module de la feuille concernée

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A1:B1]) Is Nothing Then
Application.EnableEvents = False
[A1] = [A1+B1]
Application.EnableEvents = True
End If
End Sub

--
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"nicolas" a écrit dans le message de
news:
j'aimerais faire une somme cumulé dans une case, des chiffres que je
tappe
dans une autre case.

Quand je veux le faire, il dit qu'il y a une référence circulaire.

Je crois que je doit faire sa avec une macro, mais j'y connais pas
grand



choses.

Je connais un peux le c et le fortran (avec les function et
subroutine)





Je dois crée une nouvelle macro ou cette fonction existe deja?
















Avatar
ru-th
Pas de problème... ;-)
il vaut se répéter que .... de se taire à deux !
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"LeSteph" a écrit dans le message de
news:
Ah!Pardon, Bonsoir Thierry
complèté aussi désolé..
leSteph

"ru-th" a écrit dans le message de
news:
C'est une procédure événementielle
dans excel
alt-F11 pour passer dans l'éditeur VBE
dans la petite fenêtre à gauche, project VBAproject, double-clic sur la
feuille qui contient tes données
ou clic droit dessus code

Dans la fenêtre centrale,
au lieu de "général" sélectionner worksheet
soit tu colles la macro
soit tu choisis l'évenement change à la place de "selection change"
et à l'intérieur du bloc
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Tu colles les lignes de codes
End Sub

maintenant quelques commentaires
'l'évenement est le changement de la cellule active ici target
Private Sub Worksheet_Change(ByVal Target As Range)
'si la cellule active est dans la zone A1:B1
If Not Intersect(Target, [A1:B1]) Is Nothing Then
'On stoppe les évenements pour ne pas boucler indéfiniment
'A1+B1 provocant lui un recalcul qui relancera cette procédure
Application.EnableEvents = False
'on additionne
[A1] = [A1+B1]
'on relance le mode évenmentiel
Application.EnableEvents = True
'fin condition
End If
End Sub
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"nicolas" a écrit dans le message de
news:O$$
je fais une nouvelle macro, puis je lance visual basic editor
la je met le code ci-dedous dans module1
ensuite que dois-je faire?
"ru-th" a écrit dans le message de news:

Salut

dans le module de la feuille concernée

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A1:B1]) Is Nothing Then
Application.EnableEvents = False
[A1] = [A1+B1]
Application.EnableEvents = True
End If
End Sub

--
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"nicolas" a écrit dans le message de
news:
j'aimerais faire une somme cumulé dans une case, des chiffres que
je





tappe
dans une autre case.

Quand je veux le faire, il dit qu'il y a une référence circulaire.

Je crois que je doit faire sa avec une macro, mais j'y connais pas
grand



choses.

Je connais un peux le c et le fortran (avec les function et
subroutine)





Je dois crée une nouvelle macro ou cette fonction existe deja?




















Avatar
nicolas
J'ai fait exactement ce qui est marquer 2 fois et sa marche pas (avec un
nouveau fichier xls pour etre sur)

quand je met un chiffre dans a1, il l'additionne pas a b1

J'ai l'impresion que la macro est pas activer (mais sa veux sans doute rien
dire vu que j'y connais rien)
et tout cas merci bcp d'essayer de m'aider.

"LeSteph" a écrit dans le message de news:
%
Bonsoir,
non c'est une private sub
que thierry t'a donné
pas dans module1
dans le module de feuil1:
Ouvrir VBE alt+f11
puis afficher l'Explorateur de projet Ctrl+r
DblClic sur Feuil1 de l'explorateur de projet
le module de feuille apparaît
coller le code.
refermer Vba
et entrer les valeurs dans feuil1

leSteph

"nicolas" a écrit dans le message de
news:O$$
je fais une nouvelle macro, puis je lance visual basic editor
la je met le code ci-dedous dans module1
ensuite que dois-je faire?
"ru-th" a écrit dans le message de news:

Salut

dans le module de la feuille concernée

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A1:B1]) Is Nothing Then
Application.EnableEvents = False
[A1] = [A1+B1]
Application.EnableEvents = True
End If
End Sub

--
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"nicolas" a écrit dans le message de
news:
j'aimerais faire une somme cumulé dans une case, des chiffres que je
tappe
dans une autre case.

Quand je veux le faire, il dit qu'il y a une référence circulaire.

Je crois que je doit faire sa avec une macro, mais j'y connais pas
grand



choses.

Je connais un peux le c et le fortran (avec les function et
subroutine)

Je dois crée une nouvelle macro ou cette fonction existe deja?
















Avatar
LeSteph
Rebnsoir
si le fichier de thierry marche
mais l'entrée est sur la cellule B
j'envoie l'essai que j'en ai fait sur ta bal.

LeSteph

"nicolas" a écrit dans le message de
news:
J'ai fait exactement ce qui est marquer 2 fois et sa marche pas (avec un
nouveau fichier xls pour etre sur)

quand je met un chiffre dans a1, il l'additionne pas a b1

J'ai l'impresion que la macro est pas activer (mais sa veux sans doute
rien

dire vu que j'y connais rien)
et tout cas merci bcp d'essayer de m'aider.

"LeSteph" a écrit dans le message de news:
%
Bonsoir,
non c'est une private sub
que thierry t'a donné
pas dans module1
dans le module de feuil1:
Ouvrir VBE alt+f11
puis afficher l'Explorateur de projet Ctrl+r
DblClic sur Feuil1 de l'explorateur de projet
le module de feuille apparaît
coller le code.
refermer Vba
et entrer les valeurs dans feuil1

leSteph

"nicolas" a écrit dans le message de
news:O$$
je fais une nouvelle macro, puis je lance visual basic editor
la je met le code ci-dedous dans module1
ensuite que dois-je faire?
"ru-th" a écrit dans le message de news:

Salut

dans le module de la feuille concernée

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A1:B1]) Is Nothing Then
Application.EnableEvents = False
[A1] = [A1+B1]
Application.EnableEvents = True
End If
End Sub

--
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"nicolas" a écrit dans le message de
news:
j'aimerais faire une somme cumulé dans une case, des chiffres que je
tappe
dans une autre case.

Quand je veux le faire, il dit qu'il y a une référence circulaire.

Je crois que je doit faire sa avec une macro, mais j'y connais pas
grand



choses.

Je connais un peux le c et le fortran (avec les function et
subroutine)

Je dois crée une nouvelle macro ou cette fonction existe deja?




















1 2