Méthode Select dans Private Sub

Résolu
Identifiant_Anonyme Messages postés 12 Statut Membre -  
michel_m Messages postés 18903 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

8 réponses

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

      Pourtant, j'avais écris
      macro à installer dans le module de la feuille
      je complète
      et non dans thisworkbook
      0
  4. Identifiant_Anonyme Messages postés 12 Statut Membre 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  7. Identifiant_Anonyme Messages postés 12 Statut Membre 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
    1. Identifiant_Anonyme Messages postés 12 Statut Membre 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
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      lance la macro SOS et tu dis
      0
  8. Identifiant_Anonyme Messages postés 12 Statut Membre 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
  9. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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