XL 2010 contrôler les modifications dans un range

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 !

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

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+
 
- 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

Réponses
30
Affichages
549
Retour