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

cs_marsupio Messages postés 25 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 20 avril 2005 - 24 mars 2005 à 16:06
chmouette Messages postés 57 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 21 juillet 2005 - 25 mars 2005 à 10:49
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

NHenry Messages postés 15118 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 11 mai 2024 159
24 mars 2005 à 16:25
Passe par une userform, ce sera plus simple.


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



NH
0
chmouette Messages postés 57 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 21 juillet 2005
24 mars 2005 à 16:32
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 !
0
cs_marsupio Messages postés 25 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 20 avril 2005
24 mars 2005 à 17:32
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
0
NHenry Messages postés 15118 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 11 mai 2024 159
24 mars 2005 à 17:36
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
0

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

Posez votre question
cs_marsupio Messages postés 25 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 20 avril 2005
25 mars 2005 à 10:44
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
0
chmouette Messages postés 57 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 21 juillet 2005
25 mars 2005 à 10:49
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 !
0
Rejoignez-nous