si changement dans plage alors remplissage cellule

  • Initiateur de la discussion Initiateur de la discussion zesuila
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

zesuila

XLDnaute Occasionnel
Bonjour
Comment peut on faire pour remplir une cellule précise lorsque une plage a été modifié.
Plus clairement (enfin j'espère !!!)
Si dans la plage A4:F21 :
cellule C6 modifiée alors En G6 = username de la personne qui a modifiée la cellule
cellule d8 modifié alors en G8 = username de la personne qui a modifiée la cellule
et ainsi de suite...

suis sûr que vous allez me concoter cela en quelques secondes, que dis-je quelques millièmes de secondes 😀

merci
 
Re : si changement dans plage alors remplissage cellule

Bonjour zesuila, le forum,

Quelques minutes quand même...

A placer dans le code de la feuille :

Code:
Private Sub worksheet_Change(ByVal Target As Range)
Dim ref As Range
Set ref = Intersect(Target, Range("A4:F21"))
If ref Is Nothing Then Exit Sub
For Each ref In ref
Range("G" & ref.Row) = Application.UserName
Next
End Sub

A+
 
Re : si changement dans plage alors remplissage cellule

Bonjour zesuila,

Voici le code VBA à mettre dans l'événement Change de ta feuille de calcul.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Set cel = Application.Intersect(Range("A1:F21"), Target)
If Not cel Is Nothing Then
  ActiveSheet.Cells(Target.Row, 7) = Application.UserName
End If

End Sub

Espérant t'avoir aidé.

Cordialement.
 
Re : si changement dans plage alors remplissage cellule

Bonjour job75, papou-net

Merci de votre aide
Alors j'ai d'abord essayé le code de job75, et là ô merveille cela fonctionne parfaitement.

Puis j'ai essayé celui de papou-net (pas de jaloux !) et là petite erreur (qui soit dit en passant m'est souvent revenu dans mon programme avec la variable cel

le message est erreur de compilation - variable non définie
et en jaune :Set cel = Application.Intersect(Range("B4:AF21"), Target)

pourquoi je ne sais pas mais même si je prends la version de job, j'aimerai savoir pourquoi la version de papou-net ne fonctionne pas dans mon programme (car bien sûr elle fonctionne parfaitement dans une nouvelle feuille)
 
Re : si changement dans plage alors remplissage cellule

Re,

Différences :

- une seule cellule en colonne G sera renseignée à chaque modification chez Papou-net, alors que j'étudie toutes les cellules de la plage modifiée

- sa variable cel n'est pas déclarée, ce qui entraine une erreur s'il y a Option Explicit

Edit : oui zesuila, c'est ça pour le UserName

A+
 
Dernière édition:
Re : si changement dans plage alors remplissage cellule

Hello Forum, Zesuila, Papou-net, Job,

Viens mettre mon grain de sel vert 😀

Les pros, pourquoi ne pas user celle-ci
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A4:F21")) Is Nothing Then
 Cells(Target.Row, 7) = Application.UserName & " - " & Date & " - " & Time
End If
End Sub
Qui est plus courte ? Moins efficace ? Ou idem ?

En plus, il y a la date et l'heure na 😀 😀

Cdt, Hulk.
 
Dernière édition:
Re : si changement dans plage alors remplissage cellule

Re,

Range("G" & ref.Row) = Environ("UserName") & " " & Date

ou encore :

Range("G" & ref.Row) = Environ("UserName") & " " & Now

Edit : salut Hulk 🙂, vois mes remarques précédentes

A+
 
Dernière édition:
Re : si changement dans plage alors remplissage cellule

Re,

Différences :

- une seule cellule en colonne G sera renseignée à chaque modification chez Papou-net, alors que j'étudie toutes les cellules de la plage modifiée

- sa variable cel n'est pas déclarée, ce qui entraine une erreur s'il y a Option Explicit

Edit : oui zesuila, c'est ça pour le UserName

A+

Re-bonjour zesuila,
Bonjour job75, Hulk, BOISGONTIER,

Pour répondre à job75 : il n'est utile de balayer toute la plage que si l'on modifie un groupe de cellules (avec Ctrl + Entrée, par exemple). Dans une démarche habituelle, modification d'une seule cellule, le programme sera plus rapide, du moins si la plage concernée est très étendue.

Pour répondre à Hulk, l'événement SelectionChange s'applique à chaque changement de cellule, ce qui fait que la macro s'exécute même si l'on ne modifie aucune cellule. Ca peut là aussi ralentir le programme lorsque la plage est étendue. De plus, dans cet événement, je pense que Target s'applique à la nouvelle sélection et non à la précédente (à vérifier) ?

Pour ce qui me concerne, j'ai effectivement l'habitude de ne pas déclarer mes variables sur des programmes aussi courts, va falloir que je me corrige.

Bien cordialement à tous.
 
Re : si changement dans plage alors remplissage cellule

Re,

Bon ben... j'n'ai pas compris Job.

Tu veux dire que si je déclare les variables le code que je propose ne joue plus ?
Parce que j'ai essayé et ça marche. (Pas vraiment important, mais si tu pouvais m'éclairer)

Par contre oui faut plutôt le mettre dans le Change et pas dans le SelectionChange.

Cdt, Hulk.
 
Re : si changement dans plage alors remplissage cellule

bonjour Hulk,
oui job75 a raison, le fait que option explicit soit présent dans mon code, gêne la variable "cel" (voir donc post de job75 pour l'explication)

finalement j'avais fais un "mix" du code de job75 et du tien 😎
cela donne :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ref As Range
Set ref = Intersect(Target, Range("A4:AF21"))
If ref Is Nothing Then Exit Sub
For Each ref In ref
Range("AH" & ref.Row) = Environ("UserName") & " - " & Date
Next
End Sub

puis entretemps j'ai reçu une notification de job75 qui me confirmait ma ligne ! bref c'est donc OK
merci

je vais aller voir quand même le fichier de jacques
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

P
Réponses
2
Affichages
1 K
PAGLICED
P
A
Réponses
1
Affichages
1 K
Astragor
A
Retour