Résolu Affecter une macro à la modification de cellules Excel

Chelmon01

Nouveau membre
Bonjour,

Voici mon petit problème :

Je dois entrer des données dans un formulaire Excel et à chaque fois, entrer la date et l'heure d'encodage dans la colonne suivante.

J'ai déjà fais de petite macro et les affecter à un bouton mais je ne sais pas comment affecter une macro à l’événement "modification de cellule.

En outre, je crois que c'est à la feuille ou à la colonne que je dois affecter la macro, sinon, je vais devoir affecter la macro à chaque cellule susceptible d'être modifiée.

Merci pour votre aide sur ce petit problème.
 

zeb

Modérateur
Meilleure réponse
Salut,

Voilà quelqu'un qui débute, mais qui me semble bien au fait de ce qu'il cherche.
Or donc sois le bienvenu et trouve ici une solution.

Il n'y a pas d'événement associé à une cellule. D'ailleurs le type cellule n'existe même pas en VBA/Excel !

On se rattache donc à l'événement Change de l'objet feuille.
En VB, ça se dit : Sub Worksheet_Change(ByVal Target As Range)

Tu remarqueras que les cellules sur lesquelles un changement a été observé sont données en paramètre.


Ainsi, veux-tu faire ta saisie dand la colonne D (n°4) et voir apparaître les dates dans la colonne de droite ?
Voici comment faire :
Code:
Sub Worksheet_Change(ByVal Target As Range)
	If Target.Column = 4 Then Target.Offset(0, 1).Value = Now
End Sub

Il y a un petit soucis avec ce code.
En effet, Target peut être un ensemble de plusieurs cellules.

Alors soit on vérifie que l'ensemble est constitué d'une seule cellule et on jette l'utilisateur si ce n'est pas le cas ...


Code:
Sub Worksheet_Change(ByVal Target As Range)
	If Target.Count > 1 Then
		MsgBox "Une seule cellule !", vbCritical
		Exit Sub
	End If
		
	...
		
End Sub

... soit on les traite toutes.
Code:
Sub Worksheet_Change(ByVal Target As Range)
	Dim cell As Range
	For Each cell In Target
		If cell.Column = 4 Then cell.Offset(0, 1).Value = Now
	Next
End Sub
 

Chelmon01

Nouveau membre
Clair, net et précis.

Exactement ce qu'il me fallait.

Merci !!!!!

Et surtout, ca marche.
 

zeb

Modérateur
En général, j'ai une démarche plus pédagogique, je fais chercher un peu, je fais réfléchir le novice.
A lire ta demande, j'ai compris que je pouvais me permettre de te donner la réponse directement, que tu en tirerais la quintessence par toi-même.

A bientôt
;)
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 128
Messages
6 717 848
Membres
1 586 373
Dernier membre
https://forum.tomshardwar
Partager cette page
Haut