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
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
-
Remplace Target.Offset(0, 1).Select par [A1].Select
-
Contributeurbonjour, 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? -
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
-
-
@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.
-
-
Contributeurje me demande si tu as inséré le code VBA au bon endroit: est-il bien associé à la bonne feuille?
-
-
-
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? -
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 -
-
-
merci paul
et merci yg
vous m'avez bien aidé