Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Automatisation des saisies ??

E

Eric

Guest
Bonsoir à tous & à toutes,
grace aux bons conseils de SylSyl, de Moxom & de Michel, j'ai réussi à avancer dans mes fichiers. En effet, je suis amené à faire de longues donc fastidieuses saisies de chiffres.

Avec les # codes obtenus :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 7 Then
Cells(Target.Row + 1, 1).Select
End If
End Sub


Private Sub WorkSheet_Change(ByVal Target As Range)
If Len(Range("F1")) = 7 And IsNumeric(Range("F1")) Then
Range("A2").Select
End If
End Sub
je pensais pouvoir faire une synthèse du genre :

if len(Target.column) = 7 then
Cells(Target.Row + 1, 1).Select

MAIS en VAIN.
J'ai bidouillé toute l'après midi main NIET.

Il doit exister une solution qui automatise le passage
à la cellule du dessous que l'on désigne; et ce sans intervention de la
touche ENTRER, si un nombre de 7 chiffres est
saisi, Non ????

A bientôt de vous lire & bonnes fêtes de fin d'année

Eric
 
V

Valérie

Guest
Bonjour le forum,

C'est vraiment en vitese que je passe par là alors j'espère ne pas te faire perdre ton temps mais il est évident que en demandant :
If len(Target.column) = 7 C le numéro de la clonne qui doit comporter 7 chiffres en fait c impossible il faut que tu testes Target et non pas Target.column

Donc on obtient un truc du style : If len(Target) = 7 ...

Bon courage
Valérie
 
R

Roland

Guest
Re Salut Eric
Sympa ton problème de saisie ...
Je pense que la fonction KEYPRESS et consoeurs devraient nous aider ( je dit nous car je cherche encore ).
Malheureusement dans l'immédiat je n'arrive la faire fonctionner qu'au sein d'un UserForm qu'il faudrait ouvrir pour commencer la saisie globale ( la doc indique que KeyPress est efficiente sur une feuille sans contrôle mais point de succès pour l'instant ).
Si tu as vraiment de trés nombreuses saisies cela peut valoir le coup de persévérer.
A+ Roland
 
R

Roland

Guest
ReRe Bonjour Eric
Voici un petit bout de code qui fonctionne et qui j'espère pourra te servir.
Il faut le loger dans une la feuille et y placer un TextBox1 pour la saisie.
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If Len(TextBox1.Text) = 7 Then
ActiveCell = TextBox1.Text
TextBox1.Text = ""
Cells(ActiveCell.Row + 1, ActiveCell.Column).Activate
TextBox1.Activate
End If
End Sub
Je te fais parvenir le prog par mail car je ne suis pas encore équipé WinZip.
Si tu veux que la saisie soit possible sur n'importe quelle feuille, je te conseille d'adapter avec un UserForm pour y loger le TextBox
 
E

Eric

Guest
Bonsoir Roland ainsi qu'à tous & à toutes. Je vous présente mes meilleurs voeux pour cette année nouvelle.

Roland, je tiens à te remercier pour le temps passé à résoudre mon problème. La soluce est bonne et je vais m'attacher à résoudre le problème car en cas de mauvaise saisie, je dois fermer le USF, rectifier la valeur, relancer la macro et hop !! tout a disparu car l'auto_open initialize toute les données de la feuille.

Je pensais que sans formalisme, l'on pouvais intervenir dans une feuille d'Excel mais ce n'est pas le cas apparemment.

En réalité je n'ai pas tant de données que cela à saisir mais j'apprecie le confort apporté par les macros d'EXCEL & WORD dans le sens où j'économise du temps que je peux ainsi consacrer à une autre tâche.

Encore merci de ta contribution et de celle des autres (& vous êtres NOMBREUX & NOMBREUSES) à un débutant qui en est encore au point de faire & décortiquer des macros pour pouvoir découvrir & appliquer un bout de code que je ne sais même pas déchiffrer MAIS le PRINCIPAL C'est que CELA FONCTIONNE ....

A ++ Eric
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…