Problème Selction vba

Résolu
Bonjour,

Je voudrais selectionner une cellule automatiquement après un SelectionChange, es ce possible?
Configuration: Windows XP
Firefox 1.5.0.1

17 réponses

  1. Contributeur
    Bonjour

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Cells(2, 5).Activate ' cells(ligne,colonne)

    End Sub

    j'espere que ca ré^ponsd à ta question :)
    1. En faite je fais ça mais a l'intérieur une fonction dans un module car elle prend en compte des variables globales. Et ça ne marche pas.
      1. Contributeur
        Ah ben si tu dis pas tout aussi ;)

        donc tu est dans un module, et tu veux sélectionner une cellule (ou plusieurs ??) d'une feuille (ou de la feuille active ??)
        1. C'est vrai que je ne suis pas très precis :)

          je voudrais sélectionner deux cellules dans la feuille active
          1. Contributeur
            ce sont deux cellules contigues ou pas ??( ex A1 et A2 ou A1 et b12) ?
            1. Contributeur
              dans ce cas :

              Range("A2:A2,b3:b3").Select 'ceci selectionnera la sellule A2 et b3 ;)
              1. Le problème c'est que je doit utiliser des variables globales et ce code peut être dans le module?
                1. Contributeur
                  oui il peut :

                  ex
                  public Var1,Var2

                  sub Masub1()

                  Var1="A2"
                  Var2="B3"
                  MaSub2

                  end sub

                  sub MaSub2()

                  Range(Var1 & ":" & Var1 & "," & Var2 & ":"& Var2).Select
                  '=>Range("A2:A2,b3:b3").Select

                  end sub
                  1. ok ça marche mais je voudrai changer la valeur de la cellule sélectionnée avant qu'il fasse ça.
                    1. C'est bon en faite j'ai stocké les valeurs dans deux variables a la fin de ma fonction, et j'active la cellule avec les anciennes variables.

                      Merci quand même. Bonne continuation
                      1. Contributeur
                        donc si je comprend tout...

                        en a2 on a 3 par ex

                        l'utilisateur selectionne A4 et tu voudrais changer A2 en 4 par ex et selectionner A6 et b12 ?? bon, j vois pas trop pourquoi mais bon :

                        dans SelectionChange:

                        cells(2,1)=4
                        Range("A6:A6,b12:b12").Select

                        je pense que ca peut t aider aussi.. (toujours dans le selction_change)
                        ceci pour savoir quel cellule l'utilisateur à sélectionner : Target.AddressLocal
                        1. En faite j'ai 4 cellules (A1 B1 C1 D1), les quatres doivent être rempli pour pouvoir déprotégé la cellule E1, donc je doit vérifier après chaque changement de variable, et le problème c'est que je n'est pas qu'une ligne
                          1. Contributeur
                            Bon, on y arrive :p Faut TOUT me dire.. :)
                            Je suppose que tu sait comment déprtéger et reprotéger en vba

                            dans selection_change :

                            CellEnCours = Target.AddressLocal
                            LigneEnCours = Right(CellEnCours, 1)

                            OnPeutPasEcrire = False
                            For NumCol = 1 To 4
                            If Cells(LigneEnCours, NumCol) = "" Then OnPeutPasEcrire = True
                            Next
                            If OnPeutPasEcrire Then
                            Cells(LigneEnCours, 5) = "Protect"
                            'ici ton code pour proteger
                            Else
                            Cells(LigneEnCours, 5) = "ok"

                            'ici ton code pour pour E
                            End If
                            1. Oui mais la le boolean prendra sa valeur en fonction de la valeur de la dernière colonne
                              1. Contributeur
                                non

                                OnPeutPasEcrire = False 'donc on peut ecrire...
                                For NumCol = 1 To 4
                                If Cells(LigneEnCours, NumCol) = "" Then OnPeutPasEcrire = True ' si au moins 1 fois ca vaut "" alors à la fin OnPeutPasEcrire =true vu que je fais rien si c'est différent de ""
                                Next
                                1. Ok c'est bon j'ai réussi a trouver la solution grâce a tes conseils. Merci beaucoup