Méthode Select dans Private Sub

Résolu/Fermé
Identifiant_Anonyme Messages postés 12 Date d'inscription vendredi 9 mai 2014 Statut Membre Dernière intervention 20 juin 2014 - 28 mai 2014 à 11:32
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 29 mai 2014 à 07:38
Bonjour,

Le code suivant génère l'erreur : La méthode Select de la classe Range a échoué.

Savez-vous comment contourner le problème, sachant que je n'ai qu'une seule feuille dans mon classeur ?

Merci beaucoup.


Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

'Eviter selection multiple
ActiveSheet.Cells(Target.Row, Target.Column).Select

' Cocher resultats
If ActiveCell.Column = 3 Or ActiveCell.Column = 9 Then
ActiveCell.Value = "V"
Selection.Offset(0, 1).Value = ""
Selection.Offset(0, 2).Value = ""
ElseIf ActiveCell.Column = 4 Or ActiveCell.Column = 10 Then
ActiveCell.Value = "N"
Selection.Offset(0, -1).Value = ""
Selection.Offset(0, 1).Value = ""
ElseIf ActiveCell.Column = 5 Or ActiveCell.Column = 11 Then
ActiveCell.Value = "V"
Selection.Offset(0, -1).Value = ""
Selection.Offset(0, -2).Value = ""
End If

End Sub

8 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
28 mai 2014 à 12:42
Bonjour, comme tu n'as qu'une feuille il est inutile d'appeler "workbook"

macro à installer dans le module de la feuille
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Col As Byte
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
With Target
Col = .Column
Select Case Col
Case 3, 9
.Value = "V"
.Offset(0, 1) = ""
.Offset(0, 2) = ""
Case 4, 10
.Value = "N"
Target.Offset(0, -1) = ""
ActiveCell.Offset(0, -2) = ""
Case 5, 11
.Value = "N"
.Offset(0, -1) = ""
.Offset(0, -2) = ""
End Select
End With
Application.EnableEvents = True
End Sub

Sub SOS()
'dépannage pour réamorcer les macros événementielles en cas de sortie intempestive de la procédure
Application.EnableEvents = True
End Sub

0
Identifiant_Anonyme Messages postés 12 Date d'inscription vendredi 9 mai 2014 Statut Membre Dernière intervention 20 juin 2014 1
28 mai 2014 à 13:30
Bonjour Michel,

J'aurais besoin que la macro se déclenche à chaque changement de cellule. Malheureusement, je n'arrive pas à faire fonctionner ton code...
Le fichier joint, si tu as deux minutes pour regarder... C'est un petit loto foot

https://www.cjoint.com/?3ECnDRixz5D
0
Identifiant_Anonyme Messages postés 12 Date d'inscription vendredi 9 mai 2014 Statut Membre Dernière intervention 20 juin 2014 1
28 mai 2014 à 13:34
Je crois qu'il y a un mot de passe, c'est DDDD
8))
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
28 mai 2014 à 14:37
:-(

Pourtant, j'avais écris
macro à installer dans le module de la feuille
je complète
et non dans thisworkbook
0
Identifiant_Anonyme Messages postés 12 Date d'inscription vendredi 9 mai 2014 Statut Membre Dernière intervention 20 juin 2014 1
28 mai 2014 à 14:42
Tout à fait, c'est bien ce que j'ai fait, mais voyant que ça ne fonctionnait pas, j'ai essayé dans Thisworkbook, et évidemment, rien de plus.

Depuis tout à l'heure je réessaye, mais visiblement j'ai du mal, je n'arrive à rien de bon.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
28 mai 2014 à 14:46
J'ai essayé avec victoire du brésil en cliquant sur la cellule colonne 4 à coté de Brésil: ca a bien écrit V et donner 3 points au Brésil


Terminé
0
Identifiant_Anonyme Messages postés 12 Date d'inscription vendredi 9 mai 2014 Statut Membre Dernière intervention 20 juin 2014 1
28 mai 2014 à 14:52
:((

Est-ce que tu voudrais bien m'envoyer ton fichier, dans lequel ça fonctionne ?
Parce que moi, j'ai enlevé tous mes modules, effacé thisworkbook et créé un nouveau module pour y mettre ton code, et... rien ne se passe.
0
Identifiant_Anonyme Messages postés 12 Date d'inscription vendredi 9 mai 2014 Statut Membre Dernière intervention 20 juin 2014 1
28 mai 2014 à 14:58
En créant un nouveau classeur non plus, pas de réaction et possibilité de sélectionner plusieurs cellules en même temps (ce que If Target.Count > 1 Then Exit Sub devrait interdire, il me semble).
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
28 mai 2014 à 16:33
lance la macro SOS et tu dis
0
Identifiant_Anonyme Messages postés 12 Date d'inscription vendredi 9 mai 2014 Statut Membre Dernière intervention 20 juin 2014 1
29 mai 2014 à 01:51
Bonjour,

J'ai finalement réussi à faire fonctionner le code, mais en l'insérant bien dans thisworkbook, et en modifiant le début :

With Target
If .Count > 1 Then Exit Sub
Select Case .Column
Case 3, 9
etc.

Impossible par contre de le faire fonctionner depuis un module standard, même avec la meilleure volonté...
Sans doute un mystère qui restera dans l'ombre.

Je mets en résolu, merci encore et à bientôt !

II
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
29 mai 2014 à 07:38
Ce n'est pas un module Standard mais un MODULE FEUILLE !!!!

pourtant j'ai écris et ré écris

macro à installer dans le module de la feuille


Désespérant d'essayer d'aider
0