Worksheet_SelectionChange

Résolu
Bonjour;
j'ai des problèmes avec la fonction worksheet_SelectionChange
excel ne réagit pas à ma macro
normalement cette macro me permet de bloquer les colonnes C , I à K, si on clique sur une cellule de ces colonnes excel nous renvoie a A1

voici ma macro
Private Sub worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("c:c, I:K"), Target) Is Nothing Then 'selection des colonnes
Target.Offset(0, 1).Select
End If
End Sub

merci de m'aider

5 réponses

  1. merci paul

    et merci yg

    vous m'avez bien aidé
    0
    1. Contributeur
      je me demande si tu as inséré le code VBA au bon endroit: est-il bien associé à la bonne feuille?
      0
      1. comment le savoir
        0
      2. au faite j'ai ajouté
        feuil6.select en deuxième ligne
        Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        feuil6.select
        If Not Intersect(Range("C:C, I:K"), Target) Is Nothing Then
        0
      3. Contributeur
        @amo-51Deux façons de vérifier si le code est associé à la bonne feuille:
        Dans l'éditeur VBA, dans l’Explorateur de projets, si tu double cliques sur la "bonne" feuille de calcul, vois-tu le code à droite?
        Quand tu cliques dans le code, quel est l'élément grisé dans l'explorateur de projet?
        0
      4. j'ai bien suivi tes orientations

        je n'ai pas trouvé ma macro dans aucune des feuilles soit de 1 à 6

        question où est ma macro

        ceci étant donner, j'ai comme même une solution
        j'ai écris ma macro sur la feuille 6
        merci

        reste que, je ne sais pas encore où se trouve la première macro (initial)
        merci de m'expliquer
        0
      5. Peut etre qu'elle est dans le module 1
        0
    2. Bonjour amo-51,

      Mon 1er message était pour sélectionner la cellule A1 ;
      suite au message de yg_be, je propose 2 autres codes.

      1er code VBA :

      
      Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If Not Intersect(Range("C:C, I:K"), Target) Is Nothing Then
          ' sélection de la colonne de la cellule active (C, I ou K)
          Target.EntireColumn.Select
        End If
      End Sub
      
      

      2ème code VBA :

      
      Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If Not Intersect(Range("C:C, I:K"), Target) Is Nothing Then
          ' sélection des 3 colonnes C, I et K
          Range("C:C, I:I, K:K").Columns.Select
        End If
      End Sub
      
      

      Merci de me donner ton avis.

      Cordialement
       
      0
      1. bonjour

        merci mes messieurs pour votre aide

        mais ca marche toujours pas

        bon ce que je veux est simple
        je m'explique

        j'aimerai bloquer la saisie dans les colonnes C et I jusqu'à K

        merci de m'aider
        0
      2. @amo-51 
        Bonjour,

        1) Quel est le nom exact de la feuille où tu veux bloquer la saisie ?
            "Feuil6" ? autre ? à supposer que ce soit "Feuil6", le code VBA
            doit être placé dans Feuil6 : Alt F11 pour aller sur Visual Basic ;
            côté gauche, en haut, fais un double-clic sur Feuil6 => à droite :
            page de code de Feuil6.

        2) Tu as écris : « bloquer la saisie dans les colonnes C et I jusqu'à K ».
            Pourquoi vouloir le faire par VBA ? sur "Feuil6", sélectionne ta colonne C
            et tes colonnes I à K ; clic droit sur la sélection, Format de cellule, onglet
            Protection : ☑ Verrouillée (mais normalement c'est déjà coché) ; après
            protection de "Feuil6", c'est alors impossible de saisir dans les cellules
            verrouillées => tes colonnes sont bien bloquées.
         
        Si tu tiens absolument à le faire par une macro événementielle VBA :

        
        Private Sub Worksheet_SelectionChange(ByVal Target As Range)
            ActiveSheet.Unprotect
            Range("C:C, I:K").Columns.Locked = True
            ActiveSheet.Protect
        End Sub
        
        

        Mais c'est inutile de faire ce travail à chaque fois que tu cliques
        sur une cellule de ces colonnes ! enfin, c'est toi qui vois...

        À te lire pour avoir ton avis.
         
        0
    3. Contributeur
      bonjour, j'ai testé ton code initial, et l'amélioration proposée par paul. les deux fonctionnent bien, ne permettent pas de sélectionner les colonnes que tu souhaites protéger. celui de paul renvoie à A1, tandis que le tien déplace la sélection vers la droite.
      je me demande si tu as inséré le code VBA au bon endroit: est-il bien associé à la bonne feuille?
      0
      1. Remplace Target.Offset(0, 1).Select par [A1].Select
        0
        1. Merci pour votre aide mais ca n'a pas marché
          0