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. Ok c'est bon j'ai réussi a trouver la solution grâce a tes conseils. Merci beaucoup
    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. Oui mais la le boolean prendra sa valeur en fonction de la valeur de la dernière colonne
        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. 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
              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. 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. ok ça marche mais je voudrai changer la valeur de la cellule sélectionnée avant qu'il fasse ça.
                  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. Le problème c'est que je doit utiliser des variables globales et ce code peut être dans le module?
                      1. Contributeur
                        dans ce cas :

                        Range("A2:A2,b3:b3").Select 'ceci selectionnera la sellule A2 et b3 ;)
                        1. Contributeur
                          ce sont deux cellules contigues ou pas ??( ex A1 et A2 ou A1 et b12) ?
                          1. C'est vrai que je ne suis pas très precis :)

                            je voudrais sélectionner deux cellules dans la feuille active
                            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. 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
                                  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 :)