Pourquoi sous VBA l'instruction SELECT ne fonctionne-t-elle plus ?

Anonyme
2023-01-29T14:12:59+00:00

Exemple :

 If intColDerCell = 80 And intLigneDerCell < 43 Then Cells(intLigneDerCell, intColDerCell).Select 

mais hélas dans bien d'autres cas aussi.

Ce "dysfonctionnement" est erratique depuis quelques temps.

Autre "particularisme" lorsque SELECT est refusé il s'avère que la croix (QUITTER) en haut à droite doit être cliquée 3 fois pour enfin agir.

Pour info il s'agit d'une programmation (type "modeste" ERP) contenant une bonne centaine de procédures concernées ainsi que des centaines de nom de cellules.

Remerciements

YC

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

7 réponses

  1. DanielCo 107.7K Points de réputation
    2023-01-29T16:32:42+00:00

    Dans un module standard, mets :

    Public ResAdr As String

    Dans le module ThisWorkbook :

    Private Sub Workbook_Open()
    Sheets("Feuil1").Select
    ResAdr = ActiveCell
    End Sub
    (pour la feuille "Feuil1").

    Dans le module de la feuille "Feuil1" :

    Private Sub Worksheet_Activate()
    ResAdr = ActiveCell.Address
    End Sub

    Private Sub Worksheet_Change(ByVal Target As Range)
    Range(ResAdr).Select
    End Sub

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ResAdr = ActiveCell.Address
    End Sub

    Dans la macro Worksheet_Change, il faut généralement ajouter une limite à l'exécution, sinon, elle s'exécute sur toute la feuille.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2023-01-29T16:16:51+00:00

    Effectivement.

    Dans le cas de cette procédure je me positionne sur une cellule (initiale !)

    je frappe un texte

    Touche entrée

    Les variables enregistre les coordonnées de cette cellule

    je souhaiterai revenir alors sur la cellule "initiale"

    Ce dispositif a toujours bien fonctionné ainsi que des centaines d'autres via un SELECT

    mais depuis quelque temps. C'est "au petit bonheur la chance"

    Ma solution ERP n'est alors plus fiable.

    Cordialement.

    YC

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. DanielCo 107.7K Points de réputation
    2023-01-29T15:55:22+00:00

    "Dans cette procédure,

    Via Cells(intLigneDerCell, intColDerCell).Select (dans ce cas précis je souhaiterai revenir sur la cellule initiale"

    Je n'ai pas trop compris. Qu'est-ce que tu appelles la "cellule initiale" ? Celle qui était sélectionnée avant le "Select" ?

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2023-01-29T15:44:14+00:00

    Merci à vous DanielCo pour votre prompte réponse.

    Les valeur retournée sont justes :

    Les valeur obtenues sont : intColDerCell = 80 et intLigneDerCell = 19

    et puisqu'il s'agit de la position initiale d'un saisie l'ActiveCell suivante est bien debugée en CB20.

    Dans cette procédure,

    Via Cells(intLigneDerCell, intColDerCell).Select (dans ce cas précis je souhaiterai revenir sur la cellule initiale

    Cordialement.

    YC

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. DanielCo 107.7K Points de réputation
    2023-01-29T14:42:27+00:00

    Bonjour,

    Exécute :

    Dim Even
    Even = Application.EnableEvents
    Application.EnableEvents = False
    Debug.Print intLigneDerCell & " " & intColDerCell
    If intColDerCell = 80 And intLigneDerCell < 43 Then _
    Cells(intLigneDerCell, intColDerCell).Select
    Debug.Print ActiveCell.Address
    Application.EnableEvents = Even

    Si la sélection ne s'effectue pas, quelles sont les valeurs récupérées (dans la fenêtre d'exécution de l'éditeur VB).

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire