Selectionner 2 cellules automatiquemen en VBA

Bonjour,

je souhaiterais creer une commande VBA qui des que je selectionne par exemple la cellule B9 elle me selectionne I9 et ainsi de suite B7 me selectionne automatiquement I7. etc......

Please help, c urgent.

MERCI D'AVANCE

9 réponses

  1. Salut,

    A coller dans les propriétés de la feuille (clic droit sur l'onglet/Visualiser le code)
    s'applique à la colonne B, mais peut se restreindre à une partie de la colonne

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect([B:B], Target) Is Nothing Then
    Target.Offset(0, 7).Select
    End If
    End Sub
    0
    1. Bonjour

      Je pense que cela répond à ta demande, autrement apporte des précisions

      Sur l'onget de la feuille d'excel click droit et "visualiser le code" pour coller le code suivant. (Il y a peut-être mieux)

      Private Sub Worksheet_SelectionChange(ByVal Target As Range)

      Dim lIg, cOl
      lIg = Target.Row
      cOl = Target.Column
      Cells(lIg, cOl + 7).Select

      End Sub

      Iama
      0
      1. Attention il y a un probléme

        Excuse je regarde

        Iama
        0
    2. Re,

      Et on peut faire plus court

      Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      If Not Intersect([B:B], Target) Is Nothing Then Target.Offset(0, 7).Select
      End Sub
      0
      1. Salut

        Je viens d'en engranger

        Iama
        0
    3. Salut,
      Merci deja, est ce que quelqu'un peut il m'expliquer en francais ce que ces codes disent. j4arrive pas a capter.

      MERCI D'AVANCE
      0
      1. Au fait voila mon souci en plus clair:

        un exemple: si je selectionne ma cellule A1 ca doit me selectionner la colonne I1, si je selectionne A5 je ve que ca me slectionne automatiquement I5. Le but étant de copier directement les donnees de la colonnes I de la même ligne quand je selectionne une cellule de la colonne A.

        J'espere avoir était clair cette fois.

        je pensais a ecrire une ligne de code qui me memorise les numeros de lignes des cellules selectionnées. Mais j'y arrive pas.

        Si qqun pe m'aider svp.

        Merci encore une fois
        0
        1. Re,

          Grossièrement,

          Private Sub Worksheet_SelectionChange(ByVal Target As Range)

          code macro privé, s'applique à la feuille (Worksheet) si la sélection change

          If Not Intersect([B:B], Target) Is Nothing Then Target.Offset(0, 7).Select

          Si la cellule active (Target) n'est pas en colonne B ne rien faire (Is Nothing) sinon (Then) depuis la cellule active (Target) en B sélectionner la cellule 7 cases à droite (Offset(0,7)

          Fin de procédure (End Sub)

          A+
          Mike-31

          Une période d'échec est un moment rêvé pour semer les graines du savoir.
          0
          1. Contributeur
            Bonjoour,
            Bonjour Mike, comme d'hab... faut lire entre les lignes :-)
            Private Sub Worksheet_SelectionChange(ByVal Target As Range)
                If Not Intersect([A:A], Target) Is Nothing Then
                    Target = Target.Offset(0, 8)
                End If
            End Sub

            A+
            0
            1. Bonjour lermite222,

              Je crois que tu as oublié le phénomène de récursivité !

              Est-ce que je me trompe ?

              Option Explicit
              
              Private Sub Worksheet_SelectionChange(ByVal Target As Range)
              
              
              Private Sub Worksheet_SelectionChange(ByVal Target As Range)
                  Application.EnableEvents = False
                  If Not Intersect([A:A], Target) Is Nothing Then
                      ' Écriture -> Engendre la récursivité d'évènements
                      Target = Target.Offset(0, 8)
                  End If
                  Application.EnableEvents = True
              End Sub
              


              Info
              0
            2. Contributeur
              Bien vu.
              Mais étant donner que l'ont ne sélectionne que la colonne A, le retour sur SelectionChange n'a aucun effet
              EDIT: en fait, bien réflechi... non
              Le fait de modifier la cellule Target déclenche WorcheetChange mais pas SelectionChange, vu que l'ont ne change pas de sélection.
              0
            3. re:

              Même si c'est l'évènement Worksheet_Change qui est déclenché, il l'est pour rien,
              perte de performance.

              Du moins c'est mon avis.

              Cdt

              Info
              0
          2. Salut Lermite,

            Non mais je vais finir par acheter une boule de cristal, dans la demande initiale il était question je site " je selectionne par exemple la cellule B9 elle me selectionne I9 et ainsi de suite B7 me selectionne automatiquement I7"

            Sur le dernier post du demandeur "si je selectionne ma cellule A1 ca doit me selectionner la colonne I1, si je selectionne A5 je ve que ca me slectionne automatiquement I5. Le but étant de copier directement les donnees de la colonnes I de la même ligne quand je selectionne une cellule de la colonne A"

            on ne parle plus de colonne B mais de A, non plus de sélection mais de rapatriement de données
            0
            1. Contributeur
              Re,
              C'est bien ce que j'ai voulu dire, faut sortir la boule de cristal :DD
              Et je ne sais pas si la mienne m'a bien guider ??
              0
          3. cellule A OU B C PAREIL? MOI CE QUI M4IMPORTE C LE PRINCIPE QUON SELECTIONNANT PAR EXEMPLE B9 CA ME SELECTIONNE I9.

            Par contre j'ai une question bete, mais vu que je suis encore debutant sur VBA, je vais quand meme vous poser la question.

            comment faire pour executer le code que vous m'avez donné. il est privé , je sias pas comment faire?
            0
            1. Contributeur
              Clic droit sur le nom de l'onglet (en bas du classeur) >> Visualiser le code.
              Et c'est dans cette fenêtre que tu colle ce que l'ont te montre.
              MAIS UN SEUL A LA FOIS.
              0