› Sviluppare funzionalita su Microsoft Office con VBA › errore misterioso
-
AutoreArticoli
-
Scusate, ma ho un altro problema che spero di poter risolvere. Sto creando un gioco (per i miei nipotini) dove bisogna indovinare una frase nascosta. Tutto va bene, ma ad un certo punto ho un errore che mi sta facendo perdere la testa. Si tratta di un stralcio di programma VBA Excel che recita questo:
Sub Vocale() ripetivocale2: GIOC1 = "Pingo Pallino" VOC = UCase(InputBox(GIOC1 & " SCEGLI LA VOCALE", , , 7000, 8500)) If VOC <> "A" Or VOC <> "E" Or VOC <> "I" Or VOC <> "O" Or VOC <> "U" Then MsgBox ("DEVI SCEGLIERE UNA VOCALE") GoTo ripetivocale2 End If Debug.Print GIOC1 & " ha scelto la vocale " & VOC End SubIl mistero (almeno per me lo è) sta nel fatto che non riconosce la vocale e non esce mai dal loop.
Allego lo stralcio del codice e ringrazio.
Allegati:
You must be logged in to view attached files.Il mistero (almeno per me lo è) sta nel fatto che non riconosce la vocale e non esce mai dal loop.
Allego lo stralcio del codice e ringrazio
Non deve essere in Or , ma in And
Prova così:
Sub vocale() Dim giocatore As String Dim vocale As Variant Dim valido As Boolean valido = False giocatore = "Pinco Pallino" Do vocale = UCase(Application.InputBox(giocatore & " Scegli la vocale", Type:=2)) If vocale <> False Then If vocale = "A" Or vocale = "E" Or vocale = "I" Or vocale = "O" Or vocale = "U" Then valido = True Else MsgBox giocatore & " devi scegliere la vocale!" End If Else Exit Sub End If Loop Until valido MsgBox giocatore & " hai scelto la vocale " & vocale End SubSe vuole usare la sua macro senza utilizzare IF <> False
Sub Vocale() ripetivocale2: GIOC1 = "Pingo Pallino" VOC = UCase(InputBox(GIOC1 & " SCEGLI LA VOCALE", , , 7000, 8500)) If VOC <> "A" And VOC <> "E" And VOC <> "I" And VOC <> "O" And VOC <> "U" Then MsgBox ("DEVI SCEGLIERE UNA VOCALE") GoTo ripetivocale2 End If MsgBox GIOC1 & " ha scelto la vocale " & VOC End SubOvvio!!!!!! Grazie Oscar. Non so come ho fatto a non accorgermi di un errore così banale e marchiano!!!! Davvero imperdonabile! Grazie a te e grazie a tutti per le vostre proposte.
Ma cosa succede se premi su ANNULLA nella InputBox?
Hai provato la mia proposta al post #51009?
If VOC <> "A" And VOC <> "E" And VOC <> "I" And VOC <> "O" And VOC <> "U" Then
E via ottimizzando:
If InStr("AEIOU", VOC) = 0 Then msgbox "Devi inserire una vocale" goto ripetivocale2 End IfLa proverò di certo. Grazie
Grazie Alex
GoTo ripetivocale2
Grazie. Lo farò. Sai sono autodidatta. Voglio imparare bene il VB anche per tenermi in esercizio con la mente. Beh, sai, ho una certa età e vorrei unire l'utile al dilettevole.
Ciao
Ottimo e lodevole! Qui siamo un po' tutti autodidatti. Sull'eta'... beh l'eta' non conta, quando si e' giovani dentro
io vorrei spezzare non una ma 100, 1000, ed anche più lance,
a favore di chi come Oscar dà consigli per risolvere quesiti senza particolari indicazioni dal richiedente
rispetto a chi "cerca di risolverli" applicando le proprie conoscenze previa "delucidazione"
dal richiedente circa l'obiettivo da raggiungere.
Ottimo e lodevole! Qui siamo un po' tutti autodidatti. Sull'eta'... beh l'eta' non conta, quando si e' giovani dentro
Grazie. Una domanda. Idee per seguire qualche corso serio?
io vorrei spezzare non una ma 100, 1000, ed anche più lance,
Sono perfettamente d'accordo
Ottimo e lodevole! Qui siamo un po' tutti autodidatti. Sull'eta'... beh l'eta' non conta, quando si e' giovani dentro

a favore di chi come Oscar dà consigli per risolvere quesiti senza particolari indicazioni dal richiedente
rispetto a chi "cerca di risolverli" applicando le proprie conoscenze previa "delucidazione"
dal richiedente circa l'obiettivo da raggiungere.
Sono solo parzialmente d'accordo con te. Nei tredici anni in cui questo forum mi ha ospitato, ho applicato tutte le tecniche possibili: dal didatticismo esasperato all'attendismo piu' sfrontato. Non esistono metodi e cure certe per venire incontro alle esigenze degli utenti, ognuno si pone con l'atteggiamento che puo' offrire in quel momento (dipende dal tempo, dalla voglia, dalla conoscenza dell'argomento, eccetera). Oscar e Alex non sono in competizione fra loro! E spesso se non si chiedono dettagli all'utente si rischia di suggerire soluzioni fuorvianti o poco interessanti o solo poco funzionali. Approcci diversi ma che mirano al medesimo risultato, ossia la soddisfazione del cliente... e ricordando sempre che vale la premessa del nostro regolamento
(da non dimenticare!)
Anch'io sono parzialmente d'accordo ricordo di diversi anni fa un amico mi chiese di fargli un favore , io gli feci un romanzo nei minimi dettagli quando glielo diedi mi disse ma perchè hai fatto tutto quelle cose ti avevo chiesto solo una minima parte di quello che hai fatto , non ho saputo rispondergli
La richiesta di Semiuccio era molto chiara (la mia macro non riconosce la vocale) Pur congratulandomi con Alex per il bellissimo lavoro svolto e sempre gentile con tutti e molto disponibile
In parole povere Luca il mio amico le avrebbe risposto perchè hai fatto tutto quello quando avevo chiesto solo la soluzione alla mia macro ?
io vorrei spezzare non una ma 100, 1000, ed anche più lance,
se il punto fosse ma non credo, la soddisfazione del cliente,
al post #51022, Semiuccio ha scitto:
"Sono perfettamente d'accordo"
non ho intenzione di cambiare il Mondo nè tanto meno il mondo di questo forum:
c'è sempre chi la pensa diversamente da noi, ed è cosa buona e giusta!
post scriptum
spero di non essermi perso qualcosa dalla premessa del Regolamento
ma non credo, la soddisfazione del cliente,
Be' ma perche' no? A volte anche fare didattica e incuriosire i propri utenti produce la soddisfazione di entrambe le parti
spero di non essermi perso qualcosa dalla premessa del Regolamento
non fraintendere, non era un richiamo ma soltanto un modo per ricordare che questo forum non si presta a offrire consulenza gratuita fine a se stessa, ma si cerca di stimolare l'autoapprendimento. A volte serve stendere codice mirato, a volte bastano le nozioni generali, a volte i predicozzi del sottoscritto (se leggi indietro nei vecchissimi post, ne troverai tanti)
non fraintendere, non era un richiamo
nessun problema
ieri sera ho già inoltrato allo Staff del Forum la mia richiesta di cancellazione dell'account.
Forse ci rivedremo da qualche altra parte in rete.
Buona serata
ieri sera ho già inoltrato allo Staff del Forum la mia richiesta di cancellazione dell'account.
Mi dispiace
ieri sera ho già inoltrato allo Staff del Forum la mia richiesta di cancellazione dell'account
Ma dai!! Mi sembra un po' esagerato.
-
AutoreArticoli
