Récupération texte dans zone d'édition...

Messages postés
25
Date d'inscription
vendredi 4 février 2005
Statut
Membre
Dernière intervention
20 avril 2005
-
Messages postés
57
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
21 juillet 2005
-
Tout d'abord, petite précision: je n'ai pas directement VB, j'utilise le VB d'excel. Si je dis ça, c'est que j'ai la vague impression de ne pas avoir toutes les fonctionnalités de VB. Bref, la question:

J'ai crée une boîte de dialogue ( pour faire une demande de mot de passe), dans cette dialogbox, j'ai inséré une zone d'édition, là ou les gens devront entrer le mot de passe.

Question: je n'arrive pas à "sortir" les caractéres tapés, pour les tester. J'ai essayé:

If ActiveSheet.Shapes("Edit Box 4").Characters.Text = "blablabla" Then

j'ai essayé aussi:

If ActiveSheet.Shapes("Edit Box 4").TextFrame.TextRange.Text = "blablabla" Then

marche pô non plus.

Comme je l'ai dit au début du post, je pense que j'ai des restrictions sur VB, car par exemple, la fonction TextRange n'est pas reconnu (les majuscules ne se mettent pas automatiquement, comme c'est le cas normalement..), je pense aussi que la commande: DoCmd ne fonctionne pas (cf ancien post ou je demande comment fermer une boite de dialog... j'ai toujours pas la solution)

Voilà, qui plus est, je suis un grand novice, donc tout mes codes, je les crée en faisant du plagia de codes trouvés sur le net, donc dans l'ensemble j'ai des fois bien du mal à comprendre

Merci d'avance pour votre aide...

6 réponses

Messages postés
14852
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
26 janvier 2022
160
Passe par une userform, ce sera plus simple.


Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)



NH
Messages postés
57
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
21 juillet 2005

essaye un strcomp(chaine1, chaine2) pour tester...
ici :
If ActiveSheet.Shapes("Edit Box 4").Characters.Text = "blablabla" Then

devient :

If strcomp(ActiveSheet.Shapes("Edit Box 4").Characters.Text ,"blablabla" )= 0 Then

nhormalement ca marche, même en VBA

Pour DoCmd, sous access il marche... sous excel je pense aussi, mais à confirmer.

On ne devrait vivre qu'une minute et demie,
Le temps du premier baiser et du premier demi !
Messages postés
25
Date d'inscription
vendredi 4 février 2005
Statut
Membre
Dernière intervention
20 avril 2005

Merci messieurs,

j'aurai du insister un peu plus: je suis novice. Donc très chère NH, je ne sais pas ce qu'est une userform, peut-être parle tu de remplacer la "zone d'édition" par un "intitulé" ou autre, mais ce serait sympa d'être un peu plus explicite, car je ne possède pas du tout le language informatique (mes études étaient dans l'énergie... rien à voir)

Chmouette, j'ai testé ta ligne.... voilà la réponse:

Erreur d'exécution '438':
Propriété ou méthode non gérée par cet objet

Et VBA se positionne sur la ligne: If StrComp(ActiveSheet.Shapes("Edit Box 4").Characters.Text, "ok") = 0 Then

Merci encore pour votre aide
Messages postés
14852
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
26 janvier 2022
160
Une userform, est un élément de VBA, une fenetre. Pour en créée une, va
sur l'éditeur VBA, puis dans le panneau de gestion du projet, clique
droit, nouveau, userform.


Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)



NH
Messages postés
25
Date d'inscription
vendredi 4 février 2005
Statut
Membre
Dernière intervention
20 avril 2005

OOOOhhhh putain !

Mon chère Henry, tu viens de m'apporter la révélation... je viens juste de cliquer sur userform et en 5 secondes je m'aperçois des possibilités des userform, et de tous les problèmes que j'ai à programmer qui vont s'évaporer grace à ces trucs... un grand merci à toi

J'imagine que j'aurai pleins de questions pour programmer ça (au risque de me répéter, je suis novice ), mais on va attendre la semaine prochaine.

Bon week-end, et encore merci
Messages postés
57
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
21 juillet 2005

salut
donc, pour ton problème, tu passes comme dit NH par un UserForm.
dedans tu mets une TextBox (pour l'exemple tu l'apelle TxtPassword)
dans le code de ton bouton 'Log On', tu mets ta comparaison :

' pour éviter les erreurs d'accès :
Me.txtPassword.setFocus
' comparaison de chaines
If strComp(Me.txtPassword.text, "blabla")=0 then
... ton code...
EndIf
Me.unload 'ferme ton form

normalement ca devrait marcher.

si tu veux absoluement passer par une dialogBox :

Dim StrPassword as string
strPassword = xxxxx.dialogBox 'appel de ta dialogbox
If strComp(StrPassword, "blabla")=0 then
... ton code...
EndIf

La comparaison de 2 chaines de charactères ne peut fonctionner avec '=', c'est pourquoi tu DOIS passer par StrComp(), qui retourne 0 en cas d'égalité des chaines.
pour plus de détails sur cette fonction utilise l'aide de VB.

On ne devrait vivre qu'une minute et demie,
Le temps du premier baiser et du premier demi !