Saisie clavier limitée à une cellule...

CDavid2007

XLDnaute Nouveau
Salut à tous,

Je souhaite limiter l'entrée clavier à une seule et unique cellule quelle que soit la cellule active. Je ne sais comment faire sachant que je souhaite quand même laisser actif la modification du tableau entier à l'aide du bouble-clic de la souris via des macros...

Avez-vous une idée ?

Merci pour vos réponses...
 

flosan27

XLDnaute Nouveau
Re : Saisie clavier limitée à une cellule...

Salut,

Peut-être pas très orthodoxe mais çà devrait marcher :

A chaque changement de cellule dans excel, renvoyer vers ta cellule à modifier (A1 par exemple). Mais comme il ne faut pas que çà perturbe tes autres macros, il faut rajouter un témoin sur tes autres macros pour désactiver les renvois.



Sub mamacro()
mamacrotourne = 1

End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If mamacrotourne <> 1 Then
Range("A1").Select
End If
End Sub


A+
 

CDavid2007

XLDnaute Nouveau
Re : Saisie clavier limitée à une cellule...

C'est une bonne alternative.... à laquelle j'avais déjà pensée... comme tu dis flosan27 pas très orthodoxe. L'astuce ne réside t'elle pas en fait dans l'utilisation d'une macro complémentaire ou d'une commande spécifique à Excel ? S'il n'y a pas de commande spécifique à Excel il faut donc passer par une macro au moment même de la saisie clavier.
La question serait donc : comment interagir au moment même de la saisie clavier dans la bonne cellule même si une cellule différente est active ? N'existe t'il pas une commande d'interception des touches du clavier permettant une redirection de l'entrée vers la cellule désirée ?

Merci pour votre aide
 
Dernière édition:

wilfried_42

XLDnaute Barbatruc
Re : Saisie clavier limitée à une cellule...

Bonjour à tous

Regarde dans la protection des feuilles, ne pas empecher la selection, mais permet de ne mettre en saisie que la cellule desirée

ensuite une macro evennementielle sur le double click pour 1 deproteger la feuille, puis debloquer la cellule reproteger la feuille

ensuite une macro evennementielle sur modification de cellule avec deprotection de la feuille, bloccage de la cellule, et reprotection de la feuille

je ne sais pas si je suis tres claire :confused:
 

excalibur

XLDnaute Impliqué
Re : Saisie clavier limitée à une cellule...

bonjour le fil comme le dit l ami wilfried tu devrais t oriente sur un truc de ce style

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Selection <> [a1] Then
Protect Password:="toto"
Else
Unprotect Password:="toto"
End If
End Sub
 

wilfried_42

XLDnaute Barbatruc
Re : Saisie clavier limitée à une cellule...

re:

d'apres ce que j'ai compris, tu desites saisir uniquement dans une seule cellule mais sans empecher la selection des autres

donc : verouiller toute les cellules sauf celle qui doit etre saisie, effectuer une protection de la feuille (Menu Outils / Proteger la feuille) tout en laissant la possibilité de selection

Un double click te permettrait de modifier une cellule proteger
Donc : Sur l'evennement du double click deproteger la feuille, deverouiller la cellule, faire la saisie........

à La selection d'une autre cellule ne pa pouvoir la modifier
donc : Reverouiller la cellule et proteger la feuille

voir fichier en exemple

pour acceder aux macros : click droit sur le nom de la feuille / Voir le code
 

Pièces jointes

  • protection.xls
    21.5 KB · Affichages: 72
  • protection.xls
    21.5 KB · Affichages: 74
  • protection.xls
    21.5 KB · Affichages: 73
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Saisie clavier limitée à une cellule...

bonjour a tous

@ wilfried

Apparemment le double click permet la saisie dans n'importe quelle cellule

Par ailleurs je suis surpris par

Code:
If Target.Address = "C6" Then Exit Sub

on ne devrait pas avoir
Code:
If Target.Address = "$C$6" Then Exit Sub
'ou
If Target.Address(0,0) = "C6" Then Exit Sub
 

wilfried_42

XLDnaute Barbatruc
Re : Saisie clavier limitée à une cellule...

re:, bonjour pierrejean:)

tu as raison pierre-jean, j'ai testé la C6 mais une seule fois, la 2eme m'aurait posé un probleme (franchement pas bon sur ce coup là --> tests bacles)

je corriges et remplace le fichier

merci encore

je cite David
Je souhaite limiter l'entrée clavier à une seule et unique cellule quelle que soit la cellule active. Je ne sais comment faire sachant que je souhaite quand même laisser actif la modification du tableau entier à l'aide du bouble-clic de la souris via des macros...
 
Dernière édition:

CDavid2007

XLDnaute Nouveau
Re : Saisie clavier limitée à une cellule...

Tout ceci est bien intéressant.... d'ailleurs je crois qu'il s'agit du genre de code que j'aurais à insérer dans mes macros....

J'ai compris l'astuce mais je ne parviens pas à voir comment l'adapter à mes besoins. Pour être plus clair, je joins le fichier Excel sur lequel je travaille. Mon but est de permettre la saisie clavier dans la case "SCAN" uniquement tout en laissant les modifications que peuvent apporter au tableau les autres macros par l'action d'un double-clic sur une case sans pour autant activer la saisie dans cette case mais en lançant une macro qui modifie le contenue du tableau....

L'inconvénient est que mon tableau dépasse la limite de taille permise sur les serveurs malgré une compression le réduisant à 72 Ko. Je l'ai donc compressé avec 7Zip en deux fichiers. Pour le décompresser, il faut tout d'abord renommer les archives en supprimant l'extension .ZIP à la fin pour ensuite les décompresser avec 7Zip. J'ai volontairement supprimé certaines fonctionnalités du tableau pour l'alléger. D'où quelques erreurs si on clic sur les boutons associés à des macros.

Merci pour votre aide

PS : le double-clic s'effectue dans le "Tableau de saisie" de la feuille "Pointage" aprés avoir démarrer le chrono en appuyant sur le bouton "Départ"
 

Pièces jointes

  • Compétition VTT v4.7z.001.zip
    48 KB · Affichages: 42
  • Compétition VTT v4.7z.002.zip
    24.1 KB · Affichages: 27
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Saisie clavier limitée à une cellule...

Re

@ Wilfried
C'est bien moi ça : je releve une petite imprecision et dans la foulée je me permets d'oublier de lire l'enoncé du problème !!

@ Dydy
Une proposition a tester

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set isect = Application.Intersect(Target, Range("A4:J13"))
If isect Is Nothing Then
  Range("O1").Select
End If
End Sub
 

CDavid2007

XLDnaute Nouveau
Re : Saisie clavier limitée à une cellule...

Re-Salut à tous,

Une petite rectification dans ton code pierrejean : non pas "O1" mais "P1".

J'ai compris l'astuce et cela correspond à peu prêt.

Pour compléter le tout, il faudrait que je le combine avec une interception d'événement pour tester la sélection de cette cellule non pas toute les secondes mais toutes les demi-seconde...

En gros, je cherche à faire un test sur la cellule "P1" toutes les demi-seconde. Si celle-ci n'est pas active, alors je la sélectionne par un Range("P1").Select pour qu'elle soit active. Sinon c'est qu'elle l'ai déjà, et doit donc le rester.

Je sais qu'il est possible de l'adapter facilement à mon code pour faire un test toutes les secondes (en même temps que l'horloge) mais le but est de le faire toutes les demi-secondes. Ce qui change la donne. Je dois donc rajouter une nouvelle interception d'événement.

Pourriez-vous m'aider juste à trouver l'astuce pour faire un test sur une cellule toutes les demi-secondes ?

Merci pour votre aide
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 413
Messages
2 088 199
Membres
103 763
dernier inscrit
p.michaux