XL 2010 contrôler les modifications dans un range

alias_2003

XLDnaute Occasionnel
Bonjour,
Dans la feuille "Création", j'aimerais suivre les changements dans le texte saisie dans les colonnes B à D.
Pour cela, j'ai dupliqué mon tableau 100 colonnes plus loin.
Ensuite en cas de modification (c'est à dire un texte différent pas simplement une resaisie du même texte), je compare ensuite le texte saisie dans cellule que que compare à la cellule (même ligne, colonne +100).
En cas de changement, une messagebox s'affiche pour valider ou non ces changements.

Voici un fichier exemple. Mon soucis est que la messagebox s'affiche plusieurs fois et que le code que j'ai écrit ne convient pas totalement, puisque toutes les cellules de ma plage sont testées. J'aimerais que la vérif se fasse uniquement pour la cellule que l'on pense être modifiée.
Merci beaucoup pour votre aide,
Amicalement
 

Pièces jointes

  • exemple.xlsm
    19.2 KB · Affichages: 36

Paf

XLDnaute Barbatruc
Bonjour,

Mon soucis est que la messagebox s'affiche plusieurs fois et que le code que j'ai écrit ne convient pas totalement, puisque toutes les cellules de ma plage sont testées. J'aimerais que la vérif se fasse uniquement pour la cellule que l'on pense être modifiée.

Pas sûr de comprendre (?) : si c'est vous qui avez écrit ce code, vous savez bien que vous avez fait une boucle sur toute la plage !! Il suffirait de la supprimer et d'adapter.

Une solution possible:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Range("B2").CurrentRegion.Columns(1)) Is Nothing Then
    Target = UCase(Target)
End If
If Not Intersect(Target, Range("B2").CurrentRegion) Is Nothing Then
    If Target <> Target.Offset(0, 100) Then
        If MsgBox("Etes-vous sûr de vouloir modifier cette entrée ?", vbYesNo Or vbExclamation Or vbDefaultButton1, "Modification d'une entrée") = vbYes Then
            Target.Offset(0, 100) = Target
        Else
            Target = Target.Offset(0, 100)
        End If
    End If
End If
Application.EnableEvents = True
End Sub

A+
 

sousou

XLDnaute Barbatruc
Bonjour,
J'ai trouver étrange ta façon de faire, mais peut-être que je n'ai pas bien compris ta demande!
J'ai donc fait à ma façon A voir si c'est bien le résultat recherché?

Paf, je vois que tu te poses les mêmes questions!
 

Pièces jointes

  • exemple.xlsm
    17.4 KB · Affichages: 33

Discussions similaires

Statistiques des forums

Discussions
312 330
Messages
2 087 338
Membres
103 524
dernier inscrit
Smile1813