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

Macros et VBA Excel Discussion :

Problème de code VBA Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Employé de sécurité
    Inscrit en
    Novembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Employé de sécurité
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2019
    Messages : 3
    Par défaut Problème de code VBA Excel
    Bonjour,
    J'ai fait une ligne de code afin de changer de couleur les collaborateurs présents ou non dans un fichier excel.
    Je ne veux pas que les utilisateurs utilisant cette feuille puisse toucher autre chose que le changement de couleur par double clic de la cellule, du coup je protège le fichier.
    Les noms de collaborateurs sont dans la colonne "C" et des responsables "I". En début de liste de la colonne "C" se trouve aussi le responsable de la semaine (Qui est forcement aussi dans la colonne "I"). Le bute est qu'en cas de double clique sur le nom d'un responsable, il change de couleur autant dans la colonne "I" qu'en entête de la "C".
    Le changement de couleur fonctionne bien, mais du moment que l'on double clique sur le responsable de la semaine, le fichier se retrouve déverrouillé...
    J'ai regardé en pas à pas, le pourquoi du comment, et le code se stoppe du moment qu'il arrive sur la ligne 11. Du coup, il ne va pas jusqu'au re-verrouillage de la feuille...
    Je ne comprends pas pourquoi, est ce que vous pourriez m'aider ?

    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
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        Cancel = True
        If Not Intersect(Target, [C12,C14,C16,C18,C20,C22:C23,C27:C32,I3:I10]) Is Nothing Then
            FPresence.Unprotect ("XXXXX")
            If Target.Count > 1 Then Exit Sub
            If Target.Offset(0, 1) = "" Then Exit Sub
            Target.Font.ColorIndex = IIf(Target.Font.ColorIndex = 3, 4, 3)
     
            If Target.Column = 9 And Target.Row >= 3 And Target.Row <= 10 Then
                If Cells(3, 4).Text = Cells(Target.Row, 10).Text Then
                    Cells(3, 3).Font.ColorIndex = Cells(Target.Row, 9).Font.ColorIndex
                End If
            End If
            FPresence.Protect ("XXXXX")
        End If
    End Sub

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 205
    Par défaut
    bonjour,
    Mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        Cancel = True
        If Not Intersect(Target, [C12,C14,C16,C18,C20,C22:C23,C27:C32,I3:I10]) Is Nothing Then
            FPresence.Protect Password:="XXXXX", UserinterfaceOnly:=True
            If Target.Count > 1 Then Exit Sub
            If Target.Offset(0, 1) = "" Then Exit Sub
            Target.Font.ColorIndex = IIf(Target.Font.ColorIndex = 3, 4, 3)
            If Target.Column = 9 And Target.Row >= 3 And Target.Row <= 10 Then
                If Cells(3, 4).Text = Cells(Target.Row, 10).Text Then
                    Cells(3, 3).Font.ColorIndex = Cells(Target.Row, 9).Font.ColorIndex
                End If
            End If
        End If
    End Sub
    A+

  3. #3
    Candidat au Club
    Homme Profil pro
    Employé de sécurité
    Inscrit en
    Novembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Employé de sécurité
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2019
    Messages : 3
    Par défaut
    Parfait, ça fonctionne, merci beaucoup.

    Saurais-tu me dire pourquoi mon code plantait ?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 205
    Par défaut
    Bonjour,
    En fait c'est un peu nébuleux... Ton code est mal fichu : Tu déverrouilles ta feuille et puis tu donnes la possibilité (avec 2 Exit Sub) d'aller faire un tour ailleurs sans reprotéger le bouzin. Je n'ai fait qu'éviter de déprotéger la feuille (ce qui me paraissait le plus gênant). Quoi qu'il arrive ta feuille restera protégée.

    Pourquoi le code plantait sur la ligne 11, je n'en ai pas la moindre idée. Syntaxiquement il n'y a pas d'erreur après... Peut-être un problème de cellules fusionnées ?
    A priori il ne me semble y avoir aucun rapport entre le plantage et ma correction. Bien au contraire : La feuille reste protégée mais le code s'exécute de toute façon ! Donc mon code ne supprime pas l'erreur, il évite seulement les courants d'air....

    A+

Discussions similaires

  1. [XL-2016] Problème de code vba dans une formulaire personalisé sur excel v2016
    Par ShadeKode dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/06/2018, 01h47
  2. problème code VBA excel somme
    Par stefmines dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/05/2012, 17h08
  3. Code VBA excel form et modules
    Par Cptnikita dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/10/2007, 10h15
  4. Problème avec un code Vba Excel
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 23/10/2007, 16h43

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