Ecrire en vba

vba02 Messages postés 5 Date d'inscription mardi 25 octobre 2011 Statut Membre Dernière intervention 25 octobre 2011 - 25 oct. 2011 à 12:09
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 - 25 oct. 2011 à 16:49
Bonjour,

J'ai commencé à écrire un code vba. je dois afficher un message qui invite à saisir un nom. si je clique sur OK, cel enregistre le nom dans un fichier en .txt
si je clique sur annuler, le programme affiche un message 'Fin du programme"
et si je clique sur ok et que je n'ai pas entré de nom, le programme doit afficher un message d'alert "Erreur, le nom est vide".
Pourriez vous m'aider svp?

Merci d'avance
Dim Input As Variant

Input = InputBox("Tapez votre nom ?","Identité",0) 

If Input<> "" Then   
Dim tt, ff
   Const ForReading = 1
   Set tt = CreateObject("Scripting.FileSystemObject")
   Set ff = tt.CreateTextFile("F:\test.txt", True)
   ff.WriteLine (Input)
If VarType(Input) = vbBoolean Then
        MsgBox " Fin du programme"
       
    End If

End If

11 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 231
25 oct. 2011 à 12:20
Bonjour,

je ne suis là qu'en raison de ton titre et vais Y REPONDRE :
Pour "écrire en VBA", on le fait depuis l'éditeur de VBA !
Je refuse de lire le reste, bien évidemment.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
vba02 Messages postés 5 Date d'inscription mardi 25 octobre 2011 Statut Membre Dernière intervention 25 octobre 2011
25 oct. 2011 à 12:24
je suis sur bloc note pour écrire le code
petit omission de ma part, désolé
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 231
25 oct. 2011 à 12:34
On n'écrit pas du code VBA depuis le bloc-notes, mais depuis l'éditeur de VBA.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
NHenry Messages postés 15025 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 novembre 2022 157
25 oct. 2011 à 12:55
Bonjour,

ucfoutu +1

Concernant le code fourni, et rapidement :
- Pour les opérations simples sur les fichiers, ne pas utiliser FSO, mais plutôt l'instruction OPEN et autres.
- InputBox te retourne une chaine vide quand on clique sur annuler, donc, il est difficile de faire la distinction entre annuler et chaine vide.
(Un test entre Nothing ou vbnullstring pourrais peut être t'aider, je crois, mais pas sûr).

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0

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

Posez votre question
vba02 Messages postés 5 Date d'inscription mardi 25 octobre 2011 Statut Membre Dernière intervention 25 octobre 2011
25 oct. 2011 à 13:15
C'est notre prof d'info qui vient de nous montrer avec le bloc note...
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 231
25 oct. 2011 à 13:43
C'est notre prof d'info qui vient de nous montrer avec le bloc note...

S'il l'a fait, il doit avoir ses raisons (assez étranges, mais bon ...). Dans quelles circonstances et pourquoi ? Un tel code ne saurait de toutes manières être applicable si non ensuite copié-collé d'une manière ou de l'autre depuis l'éditeur VBA. A moins que (et ce ne semble vraiment pas être le cas compte tenu du niveau de ce que tu montres) le "prof" en soit déjà à vous enseigner d'autres choses, telles l'ajout dynamique de code, qui passerait par la lecture de fichiers textes (et ce serait là alors un pur exercice de travaux pratiques, que tu voudras bien faire dans un tel cas seul !)


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
vba02 Messages postés 5 Date d'inscription mardi 25 octobre 2011 Statut Membre Dernière intervention 25 octobre 2011
25 oct. 2011 à 13:58
Il nous a donner un power point issu de site internet. Il nous donne des parties de code. Malgre cela je ne m`en sors pas. Sans bases ce n'est pas facile.
J'ai essaye vbnullstring et nothing mais ca ne fonctionne pas.
0
NHenry Messages postés 15025 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 novembre 2022 157
25 oct. 2011 à 14:03
Bonjour,

Comment as-tu testé ?
Comme je l'ai dit, je doutais de cette possibilité, mais je ne l'ai jamais essayée.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
vba02 Messages postés 5 Date d'inscription mardi 25 octobre 2011 Statut Membre Dernière intervention 25 octobre 2011
25 oct. 2011 à 14:20
If input=nothing. Then
Msgbox "Fin du programme"
End if

Voilà comment je l'ai teste. Merci quand même pour ton aide.
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
25 oct. 2011 à 15:16
Bonjour à tous,

Dim Input As Variant


Si je puis me permettre, il vaudrait mieux:
Dim strInput as String (j'ai changé le nom de la variable pour lever toute ambiguïté potentielle avec un mot réservé, de plus il vaut mieux la nommer en fonction de son type).

La fonction InputBox renverra SYSTEMATIQUEMENT une chaîne de caractères, donc tu ne pourras que la tester à "" (donc vide).
Cette fonction est vraiment basique de chez basique, donc à moins d'y être obligé par ton prof', tu peux la bannir.
Utilises plutôt un TextBox à la place.


Calade
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 13
25 oct. 2011 à 16:49
Salut,

ce ne serait pas du VBS car il est effectivement courant d'utiliser le bloc note pour ce langage.

A+
0