Méthode Select dans Private Sub

Résolu
Identifiant_Anonyme Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -  
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   -
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

A voir également:

8 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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   Statut Membre Dernière intervention   1
 
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   Statut Membre Dernière intervention   1
 
Je crois qu'il y a un mot de passe, c'est DDDD
8))
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
:-(

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   Statut Membre Dernière intervention   1
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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   Statut Membre Dernière intervention   1
 
:((

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   Statut Membre Dernière intervention   1
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
lance la macro SOS et tu dis
0
Identifiant_Anonyme Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   1
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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