Problème Selction vba

Résolu
Pantxo1986 Messages postés 65 Statut Membre -  
Pantxo1986 Messages postés 65 Statut Membre -
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. jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   181
     
    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 :)
    0
  2. Pantxo1986 Messages postés 65 Statut Membre 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.
    0
  3. jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   181
     
    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 ??)
    0
  4. Pantxo1986 Messages postés 65 Statut Membre 1
     
    C'est vrai que je ne suis pas très precis :)

    je voudrais sélectionner deux cellules dans la feuille active
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   181
     
    ce sont deux cellules contigues ou pas ??( ex A1 et A2 ou A1 et b12) ?
    0
  7. Pantxo1986 Messages postés 65 Statut Membre 1
     
    non elles ne sont pas contigues
    0
  8. jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   181
     
    dans ce cas :

    Range("A2:A2,b3:b3").Select 'ceci selectionnera la sellule A2 et b3 ;)
    0
  9. Pantxo1986 Messages postés 65 Statut Membre 1
     
    Le problème c'est que je doit utiliser des variables globales et ce code peut être dans le module?
    0
  10. jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   181
     
    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
    0
  11. Pantxo1986 Messages postés 65 Statut Membre 1
     
    ok ça marche mais je voudrai changer la valeur de la cellule sélectionnée avant qu'il fasse ça.
    0
  12. Pantxo1986 Messages postés 65 Statut Membre 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
    0
  13. jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   181
     
    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
    0
  14. Pantxo1986 Messages postés 65 Statut Membre 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
    0
  15. jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   181
     
    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
    0
  16. Pantxo1986 Messages postés 65 Statut Membre 1
     
    Oui mais la le boolean prendra sa valeur en fonction de la valeur de la dernière colonne
    0
  17. jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   181
     
    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
    0
  18. Pantxo1986 Messages postés 65 Statut Membre 1
     
    Ok c'est bon j'ai réussi a trouver la solution grâce a tes conseils. Merci beaucoup
    0