Problème Selction vba

Résolu
Pantxo1986 Messages postés 64 Date d'inscription   Statut Membre Dernière intervention   -  
Pantxo1986 Messages postés 64 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je voudrais selectionner une cellule automatiquement après un SelectionChange, es ce possible?

17 réponses

jjsteing Messages postés 1670 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
Pantxo1986 Messages postés 64 Date d'inscription   Statut Membre Dernière intervention   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
jjsteing Messages postés 1670 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
Pantxo1986 Messages postés 64 Date d'inscription   Statut Membre Dernière intervention   1
 
C'est vrai que je ne suis pas très precis :)

je voudrais sélectionner deux cellules dans la feuille active
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jjsteing Messages postés 1670 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
Pantxo1986 Messages postés 64 Date d'inscription   Statut Membre Dernière intervention   1
 
non elles ne sont pas contigues
0
jjsteing Messages postés 1670 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
Pantxo1986 Messages postés 64 Date d'inscription   Statut Membre Dernière intervention   1
 
Le problème c'est que je doit utiliser des variables globales et ce code peut être dans le module?
0
jjsteing Messages postés 1670 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
Pantxo1986 Messages postés 64 Date d'inscription   Statut Membre Dernière intervention   1
 
ok ça marche mais je voudrai changer la valeur de la cellule sélectionnée avant qu'il fasse ça.
0
Pantxo1986 Messages postés 64 Date d'inscription   Statut Membre Dernière intervention   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
jjsteing Messages postés 1670 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
Pantxo1986 Messages postés 64 Date d'inscription   Statut Membre Dernière intervention   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
jjsteing Messages postés 1670 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
Pantxo1986 Messages postés 64 Date d'inscription   Statut Membre Dernière intervention   1
 
Oui mais la le boolean prendra sa valeur en fonction de la valeur de la dernière colonne
0
jjsteing Messages postés 1670 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
Pantxo1986 Messages postés 64 Date d'inscription   Statut Membre Dernière intervention   1
 
Ok c'est bon j'ai réussi a trouver la solution grâce a tes conseils. Merci beaucoup
0