IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Problème de blocage avec Worksheet_Change


Sujet :

Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    responsable machine à café
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : responsable machine à café

    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Par défaut Problème de blocage avec Worksheet_Change
    Bonjour à tous,
    j'ai un petit problème lors du fonctionnement de l'une de mes macro.
    Celle-ci intervient lorsqu'une partie de la feuille est modifiée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    On Error GoTo GestionErreur
    Application.ScreenUpdating = False
     
    If Not Intersect(Target, Range("A1:E10")) Is Nothing Then
        If Selection.Count <> 1 Then
            For Each Target In Selection
                If (Target.Row >= 1 And Target.Row <= 10 And Target.Column >= 1 And Target.Column <= 5) Then Target.Interior.ColorIndex = 3
            Next Target
        Else
            If Intersect(Target, Range("A1:E10")) Is Nothing Then Exit Sub
            If (Target.Row >= 1 And Target.Row <= 10 And Target.Column >= 1 And Target.Column <= 5) Then Target.Interior.ColorIndex = 3
        End If
    End If
     
    GestionErreur:
     
    End Sub
    A l'issu de cette macro mes cellules sont bien modifiées si elles sont situées dans le range "A1:E10".
    Cependant mon problème arrive dès que je souhaite insérer/supprimer une ligne même en dehors du range "A1:E10".
    L'état "prêt" s'affiche dans la barre d'état mais l'excel est bloqué !
    Seul l'appui sur ESPACE puis ENTRER semble dévérouiller la situation.

    Quelqu'un a-t-il déjà rencontré le problème ?
    Quelqu'un connait-il la parade ?

    Merci d'avance

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut Riri80 et le forum
    Ta macro est extrêmement bizarre :
    - GestionErreur ? : à moins que ce ne soit que pour le poste que tu l'ais supprimée.

    - je vois bien ScreenUpdating = False, mais pas de remise à True ???

    - Tu testes que target appartient bien à A1:E10, puis tu parles de selection ???? Et tu utilises la variable target (For Each Target In Selection) ???

    Expliques ce que tu veux faire, parce que là, je ne vois pas ton but

    Target : variable système contenant les cellules modifiées.
    Moi je verrais plutôt une macro du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo GestionErreur
    'Déclaration ----------------------------
    Dim Plage As Range
    Dim Cel As Range
    'MEI ------------------------------------
    Application.ScreenUpdating = False
    'validité -------------------------------
    If Intersect(Target, Range("A1:E10")) Is Nothing Then GoTo Sortie
    'Traitement -----------------------------
    Set Plage = Intersect(Target, Range("A1:E10"))
    'Plage=cellules modifiées de A1:E10
    For Each Cel In Plage
    'Pour chaque cellule de plage
        Cel.Interior.ColorIndex = 3
        'cellule en rouge
    Next Cel
    Sortie:
        Application.ScreenUpdating = True
        Exit Sub
    GestionErreur:
        MsgBox Err.Description, vbOKOnly, "Erreur n°" & Err.Number
        Resume Sortie
    End Sub
    mais je ne sais pas ce que tu veux faire
    A+

  3. #3
    Membre confirmé
    Profil pro
    responsable machine à café
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : responsable machine à café

    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Par défaut
    Merci pour ta réponse Gorfael.
    En fait, je n'ai rien mis dans GestionErreur car je ne veux rien a faire en cas d'erreur
    Ma macro est en fait développée pour un petit planning perso.
    Les mises en forme conditionnelles étant limitées à 3 dans excel, je veux écrire une macro qui réagit à la frappe clavier.
    Par exemple, si je tappe les initiales XX dans une cellule alors, la cellule devient bleu, si je tappe ZZ, la cellule devient rouge, ...etc

    J'ai donc un onglet avec tous mes codes couleurs. Lors de l'ouverture du classeur, je charge ce code couleur dans une variable public tableau.

    Avec la macro que j'ai cité, tout marche nikel dans l'onglet du planning.
    Mon seul problème concerne l'insertion et la suppression de ligne.
    Je vais tester ta version du code car cela est bcp plus rigoureux que ce que j'ai pu faire

    Edit :
    J'ai testé ton code et ça fonctionne parfaitement. Je ne suis plus embêté par les insertion/suppression.

    Encore merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de blocage avec l'émulateur sous Eclipse
    Par mimosas dans le forum Android
    Réponses: 0
    Dernier message: 13/01/2012, 18h24
  2. Problème avec Worksheet_Change
    Par athos7776 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/04/2011, 15h21
  3. Problème avec Worksheet_Change
    Par Le POlonais dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/12/2007, 09h54
  4. Problème dans requête avec count()
    Par BadFox dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/07/2003, 18h02
  5. Problèmes de versions avec Xalan, Xerces et Java
    Par honeyz dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 05/06/2003, 10h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo