OVH Cloud OVH Cloud

Cumul dans une cellule

7 réponses
Avatar
gege
Bonjour,
J'ai un petit probl=E8me =E0 soumettre et avant de faire cela=20
j'ai test=E9 les diff=E9rentes solutions propos=E9es dans ce=20
forum (par Google!) mais cela reste flou encore pour moi.
J'aimerai faire un cumul de sortie de stock sur un tableau=20
de 1000 articles.
Donc j'aimerai le faire en formule ou en vba

J'ai donc essay=E9 :
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
[A2] =3D [A2] + [A1]
End If
End Sub
??? mais comment faire pour les 999 cellules restantes?

Laurent Longre propose la solution en 1998 !!!

| Une solution ind=E9pendante de la version d'Excel utilis=E9e=20
consisterait =E0
| passer par une fonction macro XLM. Contrairement =E0 VBA,=20
les fonctions
| XLM peuvent en effet r=E9cup=E9rer le contenu de la cellule=20
appelante:
|=20
| =3DARGUMENT("Cellule_cumul";1)
| =3DRETOUR(CELLULE.APPELANTE()+Cellule_cumul)

??? kesalo les macros XLM? comment les utilis=E9es ??

Et la solution par it=E9rations ne semble pas convenir!!!
Au secours !!!

Merci d'avance.

j'utilise Xl2000

7 réponses

Avatar
AV
??? mais comment faire pour les 999 cellules restantes?


Private Sub Worksheet_Change(ByVal zz As Excel.Range)
If Not Intersect(zz, [A1:A1000]) Is Nothing Then
zz.Item(1, 2) = zz.Item(1, 2) + [zz]
End If
End Sub

AV

Avatar
gege
Merci pour l'astuce.
Mais je viens de me rendre compte que j'ai oublié de dire
que la cellule des Sorties de stock se met à jour a partir
des données d'un autre classeur (par une formule) et du
coup le worksheet_change n'est pas appelé !!!!GRRRR!!
J'ai testé ta solution manuellement sur la feuille et cela
fonctionne a merveille mais dès que je met la formule ca
ne fonctionne plus.

O Bill pourquoi tu me fais souffrir comme ça ???? :-(

-----Message d'origine-----
??? mais comment faire pour les 999 cellules restantes?


Private Sub Worksheet_Change(ByVal zz As Excel.Range)
If Not Intersect(zz, [A1:A1000]) Is Nothing Then
zz.Item(1, 2) = zz.Item(1, 2) + [zz]
End If
End Sub

AV


.




Avatar
AV
Il y a bien un endroit où se fait une saisie...
Utilise l'évènement Worksheet_Change de cet "endroit là" pour mettre à jour les
données...même si elles sont dans un autre classeur

AV

"gege" a écrit dans le message news:
09d001c367cd$d3f60c20$
Merci pour l'astuce.
Mais je viens de me rendre compte que j'ai oublié de dire
que la cellule des Sorties de stock se met à jour a partir
des données d'un autre classeur (par une formule) et du
coup le worksheet_change n'est pas appelé !!!!GRRRR!!
J'ai testé ta solution manuellement sur la feuille et cela
fonctionne a merveille mais dès que je met la formule ca
ne fonctionne plus.

O Bill pourquoi tu me fais souffrir comme ça ???? :-(

-----Message d'origine-----
??? mais comment faire pour les 999 cellules restantes?


Private Sub Worksheet_Change(ByVal zz As Excel.Range)
If Not Intersect(zz, [A1:A1000]) Is Nothing Then
zz.Item(1, 2) = zz.Item(1, 2) + [zz]
End If
End Sub

AV


.




Avatar
gege
merci je vais developper cette piste !
cordialement

-----Message d'origine-----
Il y a bien un endroit où se fait une saisie...
Utilise l'évènement Worksheet_Change de cet "endroit là"
pour mettre à jour les

données...même si elles sont dans un autre classeur

AV

"gege" a écrit dans le
message news:

09d001c367cd$d3f60c20$
Merci pour l'astuce.
Mais je viens de me rendre compte que j'ai oublié de dire
que la cellule des Sorties de stock se met à jour a partir
des données d'un autre classeur (par une formule) et du
coup le worksheet_change n'est pas appelé !!!!GRRRR!!
J'ai testé ta solution manuellement sur la feuille et cela
fonctionne a merveille mais dès que je met la formule ca
ne fonctionne plus.

O Bill pourquoi tu me fais souffrir comme ça ???? :-(

-----Message d'origine-----
??? mais comment faire pour les 999 cellules restantes?


Private Sub Worksheet_Change(ByVal zz As Excel.Range)
If Not Intersect(zz, [A1:A1000]) Is Nothing Then
zz.Item(1, 2) = zz.Item(1, 2) + [zz]
End If
End Sub

AV


.




.





Avatar
Philippe.R
Bonsoir Alain,
Me suis fait avoir, j'ai répondu dans la deuxième ficelle :-((
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
"AV" a écrit dans le message de news:
??? mais comment faire pour les 999 cellules restantes?


Private Sub Worksheet_Change(ByVal zz As Excel.Range)
If Not Intersect(zz, [A1:A1000]) Is Nothing Then
zz.Item(1, 2) = zz.Item(1, 2) + [zz]
End If
End Sub

AV





Avatar
Philippe.R
Merdum, j'ai oublié de répondre à Ariane !
C'était quoi sa question, Jean Paul ?
;o)))
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
"sabatier" a écrit dans le message de news:
et ariane, alors, philippe, à quoi qu'il sert son fil, voire sa ficelle?
je me suis laissé dire que les gens frappés d'alzheimer enfilaient
facilement les vêtements des autres...je ne sais pas pourquoi mais ton
déviationnement me fait penser à ça...
jps

Philippe.R a écrit:
Bonsoir Alain,
Me suis fait avoir, j'ai répondu dans la deuxième ficelle :-((





Avatar
sabatier
lol

Philippe.R a écrit:
Merdum, j'ai oublié de répondre à Ariane !
C'était quoi sa question, Jean Paul ?
;o)))