STOP à 15 caractères !

  • Initiateur de la discussion Initiateur de la discussion thombar
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

thombar

Guest
Bonjour, y a t'il un moyen pour que dans une plage de cellule, on limite la saisie à 15 caractères dans chacune d'elles.

De façon plus précise :
Pour que rien n'apparaisse lorsque l'on veut entrer le seizième caractère dans la cellule active... que le curseur n'avance plus.

merci de votre aide !!!
 
Bonne nuit tout le Monde

José ça y est je l'ai retrouver @+Thierry as Capitaine Flam et sa bande de copain et même sa petite amie LOL.

flam.gif


cyberlabe.gif


futuremen.gif



joan3.gif



@+ Salim
 
Hi hi hi Merci Salim,

Bon alors j'ai retrouvé... Mais niet pour ce cas de figure... Sur un UserForm un ActiveX CommandButton peut avoir la Propriété Défault = True, pas sur un ActiveX CommandButton OLEObject... Snif...

Alors je me suis rabattu sur l'évènement de TextBox "KeyPress" mais là par contre cet événement KeyPress ne se déclenche pas lorsque l'utilisateur appuie sur TAB, ENTRÉE, Une touche de directionn, Une touche qui déplace le focus d'un contrôle à un autre... Arf...... Re Snif !

Enfin bon je ne désespère pas, avec les ressources que nous avons sur XLD...

Sinon pour la même chose sur UserForm, il suffit de mettre CommandButton hors zone d'affichage du UserForm et de lui attribuer la Propriété Défault = True... Puis un code comme ceci....... Et hop !!! Finger In the Noze !!!

Private Sub CommandButtonDefault_Click()
Dim CTRLArray As Variant

For Each CTRLArray In Array(TextBox1, TextBox2, TextBox3, TextBox4, _
                         TextBox5, TextBox6, TextBox7, TextBox8)

  If CTRLArray.Value = "" Then
   On Error Resume Next
   CTRLArray.SetFocus
   Exit Sub
  End If

Next CTRLArray
End Sub

Bonne nuit à tous et toutes
@+Thierry
 
Bonjour,

Très content de voir que vous aimez les challenges, et d'avoir ameuté autant de monde !! Surtout les extraterrestre de la bande.

En simple petit scarabée que je suis, j'ai testé les petits fichiers attachés, et à chaque fois que je veux entrer un sixième caractère, j'ai le message suivant : Runtime error 1004 - Activate method of OLEObject class failed et me propose de débugger cette ligne :

If Len(Me.OLEObjects("TextBox" & Num).Object.Text) > 4 Then Me.OLEObjects("TextBox" & Num + 1).Activate


Je fais peut-être pas ce qu'il faut.....;-)
 
DEMO sur OLEObjects en Boucle avec Activate

Bonjour Thombar, le Fil, le Forum

Ah tiens c'est très embêtant comme message le Run Time Error 1004... Je viens de re-tester ce fichiers sous Win XP Pro, Office XP Pro et tout fonctionne.

J'ai developpé ce programme sous Win 2000 / Office 2000, hier soir je l'ai testé de chez moi sous Win Me / Office 2000 sans problème non plus...

Donc j'en arrive à des questions ?

1) Quelle Version d'Excel Utilises-tu ? (Windows aussi)
2) Quand tu dis "j'ai testé les petits fichiers attachés" on parle bien des fichiers tel quel, sans aucune tentative d'adaptation sur un autre classeur ?

Pour faire avancer le Schmiliblic, deux petites choses :

1) Si il y a quelqu'un qui me lit et qui travaille sous Excel 97... si il peut essayer un des fichiers (le mien ou la version de Yeahou, ça n'a pas d'importance) et nous dire si il n'a pas le même "trouble" que Thombar...

2) Si Thombar peut faire un essai tout simple sur un classeur vierge, il dessine deux TextBox ActiveX (Barre d'Outils Contrôles) il s'assure qu'elle se nomme bien respectivement "TextBox1" et "TextBox2" par un click droit en mode Design et "Propriété"... Puis il met ce code dans le Private Module de la Feuille où se trouve les deux TextBox et met ce code :
Private Sub TextBox1_Change()
Me.OLEObjects("TextBox2").Activate
End Sub
Puis il tape un caractère dans la TextBox1...

Si ça ne passe pas il essaie ceci aussi depuis un module standard
Sub ActivateTextBox2()
ActiveSheet.OLEObjects("TextBox2").Activate
End Sub

Et si c'est encore un fiasco, on essaie ceci :
Sub KillTextBox2()
ActiveSheet.OLEObjects("TextBox2").Delete
End Sub

Enfin on verra bien...

Bon Appétit
@+Thierry
 
Bonjour (ou Re, je sais plus) @+Thierry, yeahou, thombar,

J'ai essayé sur XL97/Win98. Même problème que thombar.
Erreur 1004
La méthode Activate de la classe OLEObject à échoué.
Puis debug sur la ligne :

If Len(Me.OLEObjects("TextBox" & Num).Object.Text) > 4 Then Me.OLEObjects("TextBox" & Num + 1).Activate

Je regarde si je peux vous être utile avec ma version. Mais laissez-moi le temps de comprendre votre code d'outre-Voie Lactée ;°))

José
 
Bon ben je sèche...

L'erreur se trouve bien après le then. D'ailleur le message est clair : C'est la méthode Activate qui échoue.

J'ai essayé différentes choses :
- Mettre le nom en dur au lieu de la concaténation
- Mettre l'index au lieu du nom
- Enlever OLEObjects (= Me.TextBox2.Activate)
Dans ce cas curieusement, j'ai le même message parlant de la classe OLEOBjects.
- Si on fait ? Me.OLEObjects(1).Name dans la fenêtre exécution, ça passe. Idem pour la méthode .Select.
Donc j'en conclus que l'objet est bien reconnu.

En fouinant un peu, j'ai trouvé un doc chez microsoft (LiseXL8.doc). Je vous joint un extrait qui parle des OLEObjects. Enfin un peu en rapport (voir le tableau à l'intérieur). Peut-être que ça peut vous donner des pistes.

Good luck les amis.

José
 

Pièces jointes

Tiens, curieux j'avais pas remarqué.
Le message dit classe OLEObject (sans s), alors que la classe est bien avec un s. J'ai essayé d'enlever le s, mais j'ai une erreur de compilation.

Serait-ce en rapport ?

José
 
bonjour Thombar , José , @+Thierry, Salim ,Yeahou ,Yvon ,Eric et Pascal


à mon avis , pour Excel97 pas de résultat sans "Select" , ( comme lors de l'utilisation des CommandButton )

Private Sub TheBloodyDigitInExcess(Num As Byte)
'testé avec excel97,Win95
If Num < 50 Then
If Len(Me.OLEObjects("TextBox" & Num).Object.Text) > 4 Then
Range("A1").Select
Me.OLEObjects("TextBox" & Num + 1).Activate
End If
Else
If Len(Me.OLEObjects("TextBox" & Num).Object.Text) > 4 Then
Range("A1").Select
Me.OLEObjects("TextBox1").Activate
End If
End Sub


bon apres midi
michel
MichelXld
 
Re la moitié du Forum (Je cite pas les noms, c'est trop long LOL !)

Champion du monde Michel !
Ca marche sur 97...

Comme dirait @+Thierry, on te décerne le label XLD Compliant !

Big Merci. Encore une énigme résolue par XLD LOL !

Bonne soirée.

José
 
Bonjour Michel, et la Moitié du Forum !!! (l'autre moitié est déjà parti en Wouikend ou Wouacances)

Arf oui c'est encore à coup de Select qu'il marche ce vieux machin, et pourtant, Michel, tu me l'avais déjà dit et même adapté certaines de mes démos... Mais le temps passe et depuis il y a encore eu une nouvelle version d'Office !

Un jour, on en sera à la Version Excel XPerIntraSensorial 2010 et on aura qu'à viser une cellule avec les yeux pour que VirtualBrainApplicator la traite (je l'ai vu en beta test démo sur Pluton lol), mais on aura encore quelqu'un qui aura besoin d'un Select parcequ'il est sous ce bon vieux Excel 97 !

Et merci à toi Michel !! et comme on dit en Belgique l'Union Fait La Force !

Bon Wouik Hand à tous et toutes
@+Thierry
 
Salut Temjeh et l'hémisphère sud de la planète XLD,

Pour l'instant, le record il est plutôt Lien supprimé sans vouloir te décevoir. LOL !

Livre Guiness des records bientôt ?

Allez, je lance le concours de l'été avant de partir en vacances.
Une pinte de bière Guiness à celui ou celle qui trouve le fil le plus long sur XLD !
Les règles du jeu sont déposées chez Maître Kanter, huissier sur Pluton. Disponible sur demande à cette adresse : [mail]eygenraam.thierry@laposte.net[/mail] ;°))
Evidemment : jeu sans obligation d'achat. LOL !

Bonne chance les amis.

José
 
Bon, vacances nécessaires voire indispensables.

Je voulais un lien qui affiche @+Thierry en bleu souligné.

Ratée ma blague.

Je sais je m'en remets une couche....

A mon retour j'imprime la FAQ et je la mange.

José
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
1 K
Réponses
0
Affichages
753
Retour