Formule sans formule

Le
Lulu la Nantaise 2
Bonjour à toutes et à tous,
Ca doit être assez facile, mais je me prends la tête :
Je voudrais si je modifie une cellule "C(n)L(n)" je veux mettre dans
la "C(n+1)L(n)" le résultat d'un calcul.
De même, si j'efface le contenu de la cellule "C(n)L(n)" j'efface le
contenu de la cellule "C(n+1)L(n)"
Merci de votre aide
Lulu
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #4663451
Bonjour,

Calcul dynamique avec VBA

-On peut saisir la date en colonne C
-On peut saisir le nb de jours en colonne D

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect([c2:c13], Target) Is Nothing And Target.Count = 1
Then
Target.Offset(0, 1) = Target.Offset(0) - Target.Offset(0, -1) + 1
End If
If Not Intersect([d2:d13], Target) Is Nothing And Target.Count = 1
Then
Target.Offset(0, -1) = Target.Offset(0, -2) + Target - 1
End If
Application.EnableEvents = True
End Sub

http://cjoint.com/?irrpuVO4g7

JB

On 17 août, 16:51, Lulu la Nantaise 2
Bonjour à toutes et à tous,
Ca doit être assez facile, mais je me prends la tête... :
Je voudrais si je modifie une cellule "C(n)L(n)" je veux mettre dans
la "C(n+1)L(n)" le résultat d'un calcul.
De même, si j'efface le contenu de la cellule "C(n)L(n)" j'efface le
contenu de la cellule "C(n+1)L(n)"
Merci de votre aide
Lulu


Lulu la Nantaise
Le #4663371
J'ai ma réponse... mais c'est quoi Application.EnableEvents = False et True
?

Merci beaucoup




"JB"

Bonjour,

Calcul dynamique avec VBA

-On peut saisir la date en colonne C
-On peut saisir le nb de jours en colonne D

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect([c2:c13], Target) Is Nothing And Target.Count = 1
Then
Target.Offset(0, 1) = Target.Offset(0) - Target.Offset(0, -1) + 1
End If
If Not Intersect([d2:d13], Target) Is Nothing And Target.Count = 1
Then
Target.Offset(0, -1) = Target.Offset(0, -2) + Target - 1
End If
Application.EnableEvents = True
End Sub

http://cjoint.com/?irrpuVO4g7

JB

On 17 août, 16:51, Lulu la Nantaise 2
Bonjour à toutes et à tous,
Ca doit être assez facile, mais je me prends la tête... :
Je voudrais si je modifie une cellule "C(n)L(n)" je veux mettre dans
la "C(n+1)L(n)" le résultat d'un calcul.
De même, si j'efface le contenu de la cellule "C(n)L(n)" j'efface le
contenu de la cellule "C(n+1)L(n)"
Merci de votre aide
Lulu


JB
Le #4663341
Le code VBA de la procédure Sub Worksheet_Change() est exécuté à
chaque fois qu'une cellule est modifiée dans une feuille, que ce soit
directement par la saisie de l'opérateur ou par programme.

Afin d'éviter le déclenchement d'événements intempestifs lorsque le
programme modifie le contenu de cellules, on utilise
Application.EnableEvents úlse pour désactiver la gestion des
événements. On la réactive lorsque le traitement est termiiné.
En cours de mise au point, si le programme est stoppé avant la
réactivation des événements, il faut quitter Excel et l'ouvrir à
nouveau pour que la gestion des événements soit à nouveau active.

http://boisgontierjacques.free.fr/pages_site/evenements.htm#EnableEvents

JB

On 17 août, 18:56, "Lulu la Nantaise"
J'ai ma réponse... mais c'est quoi Application.EnableEvents = False e t True
?

Merci beaucoup

"JB"

Bonjour,

Calcul dynamique avec VBA

-On peut saisir la date en colonne C
-On peut saisir le nb de jours en colonne D

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect([c2:c13], Target) Is Nothing And Target.Count = 1
Then
Target.Offset(0, 1) = Target.Offset(0) - Target.Offset(0, -1) + 1
End If
If Not Intersect([d2:d13], Target) Is Nothing And Target.Count = 1
Then
Target.Offset(0, -1) = Target.Offset(0, -2) + Target - 1
End If
Application.EnableEvents = True
End Sub

http://cjoint.com/?irrpuVO4g7

JB

On 17 août, 16:51, Lulu la Nantaise 2


Bonjour à toutes et à tous,
Ca doit être assez facile, mais je me prends la tête... :
Je voudrais si je modifie une cellule "C(n)L(n)" je veux mettre dans
la "C(n+1)L(n)" le résultat d'un calcul.
De même, si j'efface le contenu de la cellule "C(n)L(n)" j'efface le
contenu de la cellule "C(n+1)L(n)"
Merci de votre aide
Lulu- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Lulu la Nantaise
Le #4663311
Merci beaucoup de ces enseignements !
Lulu

"JB"
Le code VBA de la procédure Sub Worksheet_Change() est exécuté à
chaque fois qu'une cellule est modifiée dans une feuille, que ce soit
directement par la saisie de l'opérateur ou par programme.

Afin d'éviter le déclenchement d'événements intempestifs lorsque le
programme modifie le contenu de cellules, on utilise
Application.EnableEvents úlse pour désactiver la gestion des
événements. On la réactive lorsque le traitement est termiiné.
En cours de mise au point, si le programme est stoppé avant la
réactivation des événements, il faut quitter Excel et l'ouvrir à
nouveau pour que la gestion des événements soit à nouveau active.

http://boisgontierjacques.free.fr/pages_site/evenements.htm#EnableEvents

JB

On 17 août, 18:56, "Lulu la Nantaise"
J'ai ma réponse... mais c'est quoi Application.EnableEvents = False et
True
?

Merci beaucoup

"JB"

Bonjour,

Calcul dynamique avec VBA

-On peut saisir la date en colonne C
-On peut saisir le nb de jours en colonne D

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect([c2:c13], Target) Is Nothing And Target.Count = 1
Then
Target.Offset(0, 1) = Target.Offset(0) - Target.Offset(0, -1) + 1
End If
If Not Intersect([d2:d13], Target) Is Nothing And Target.Count = 1
Then
Target.Offset(0, -1) = Target.Offset(0, -2) + Target - 1
End If
Application.EnableEvents = True
End Sub

http://cjoint.com/?irrpuVO4g7

JB

On 17 août, 16:51, Lulu la Nantaise 2


Bonjour à toutes et à tous,
Ca doit être assez facile, mais je me prends la tête... :
Je voudrais si je modifie une cellule "C(n)L(n)" je veux mettre dans
la "C(n+1)L(n)" le résultat d'un calcul.
De même, si j'efface le contenu de la cellule "C(n)L(n)" j'efface le
contenu de la cellule "C(n+1)L(n)"
Merci de votre aide
Lulu- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Publicité
Poster une réponse
Anonyme