Risultati da 1 a 11 di 11

Discussione: MsgBox



  1. #1
    L'avatar di roky48
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Bari
    Età
    69
    Messaggi
    275
    Versione Office
    Excel 2013
    Likes ricevuti
    1

    MsgBox

    Buongiorno a tutti.
    Ho creato una MsgBox che allego, ma quando la eseguo ... o su SI .... o su NO, mi esegue ugualmente il ripristino. Dove sbaglio? Grazie

    Codice: 
    Sub Reset1()
    ' Reset1 Macro
    'Dim response As Variant
    response = MsgBox("Eseguo il Ripristino ? ", vbYesNo)
    If response = vbNo Then
    Range("L1").Select
    End If
    Ultima modifica fatta da:cromagno; 04/07/16 alle 21:08 Motivo: Inserito codice tra i tag CODE...

  2. #2
    L'avatar di tanimon
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    _
    Messaggi
    258
    Versione Office
    Excel 2007
    Likes ricevuti
    36
    Likes dati
    4

    Re: MsgBox

    ciao
    io farei questa modifica:
    Codice: 
    Sub Reset1()
    ' Reset1 Macro
    'Dim response As Variant
    Dim response As String
    response = MsgBox("Eseguo il Ripristino ? ", vbYesNo)
    If response = vbNo Then
    Range("L1").Select
    End If
    poi bisognerebbe vedere il file ed il resto del codice in base all'obiettivo.....

    Ciao
    Frank
    Excel 2007 win7 - Ogni Progetto è composto da Micro Progetti: PRIMA risolvi quelli, e PRIMA raggiungi il completamento del Progetto!
    Domanda: "Come avranno fatto gli utilizzatori di Excel VBA, quando non esisteva il registratore di macro?"

  3. #3
    L'avatar di Gianfranco55
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Vicenza
    Età
    62
    Messaggi
    2076
    Versione Office
    2016
    Likes ricevuti
    553
    Likes dati
    117

    Re: MsgBox

    Ciao
    cosa deve fare la macro?
    cosa si intende per ripristino?
    è selezionare L1 ?

    se si
    prova
    Codice: 
    Sub Reset1()
    ' Reset1 Macro
    'Dim response As Variant
    Dim response As String
    response = MsgBox("Eseguo il Ripristino ? ", vbYesNo)
    If response = vbNo Then
    Exit Sub
    Else
    Range("L1").Select
    End If
    End Sub

  4. I seguenti utenti hanno dato un "Like"


  5. #4
    L'avatar di roky48
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Bari
    Età
    69
    Messaggi
    275
    Versione Office
    Excel 2013
    Likes ricevuti
    1

    Re: MsgBox

    Ciao Tanimon grazie per l'interessamento, ma pur facendo quella modifica su NO esegue ugualmente il ripristino.

    ----------Post unito in automatico----------

    Perfetto Gianfranco ora è OK. Grazie

  6. #5

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    57
    Messaggi
    1022
    Versione Office
    .
    Likes ricevuti
    366
    Likes dati
    0

    Re: MsgBox

    Ciao Frank,
    Citazione Originariamente Scritto da tanimon Visualizza Messaggio
    ciaoio farei questa modifica:[CODE]Dim response As String
    non sarebbe la scelta migliore visto che il valore restituito da MsgBox è un numero :-)
    Valori restituiti da MsgBox
    Costante Valore Descrizione
    vbOK
    1
    Pulsante OK premuto
    vbCancel
    2
    Pulsante Annulla premuto
    vbAbort
    3
    Pulsante Termina premuto
    vbRetry
    4
    Pulsante Riprova premuto
    vbIgnore
    5
    Pulsante Ignora premuto
    vbYes
    6
    Pulsante Sì premuto
    vbNo
    7
    Pulsante No premuto
    La dichiarazione corretta è:
    Codice: 
    Dim response As VbMsgBoxResult
    ----------Post unito in automatico----------

    Citazione Originariamente Scritto da scossa Visualizza Messaggio
    ... visto che il valore restituito da MsgBox è un numero
    Per l'esattezza un Long:
    Codice: 
    ?VarType(vbNo) -> 3 (intero lungo)
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  7. I seguenti 3 utenti hanno dato un "Like" a scossa per questo post:


  8. #6
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    72
    Messaggi
    1115
    Versione Office
    2010
    Likes ricevuti
    143
    Likes dati
    1

    Re: MsgBox

    è meglio non dimensionare che farlo male

  9. I seguenti utenti hanno dato un "Like"


  10. #7

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    57
    Messaggi
    1022
    Versione Office
    .
    Likes ricevuti
    366
    Likes dati
    0

    Re: MsgBox

    Ciao,
    Citazione Originariamente Scritto da patel Visualizza Messaggio
    è meglio non dimensionare che farlo male
    menti a te stesso

    Se dichiari "male" una variabile (come in questo caso string anziché long) quasi sempre, purtroppo, ci mette una pezza la conversione implicita del VBA e dove non riesce questa, usando Option Explicit ci pensa il debugger a obbligarti a rimediare.
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  11. #8
    L'avatar di roky48
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Bari
    Età
    69
    Messaggi
    275
    Versione Office
    Excel 2013
    Likes ricevuti
    1

    Re: MsgBox

    Grazie patel ..... Grazie Scossa per i suggerimenti ..... Utilissimi
    Io da Voi ho sempre da Imparare ..... Grazie ancora Michele

  12. #9
    L'avatar di tanimon
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    _
    Messaggi
    258
    Versione Office
    Excel 2007
    Likes ricevuti
    36
    Likes dati
    4

    Re: MsgBox

    La dichiarazione corretta è:
    Codice: 
    Dim response As VbMsgBoxResult
    ed il mio callo da "cazziate di Scossa" si è inspessito ancora un pochino.....Lol :-)

    Devo dire che senza avere mai approfondito quanto da Lui segnalato,
    ho sempre definito i MsgBox come String, pensando che il valore restituito ne fosse il testo del messaggio
    e quindi una stringa........... non un valore

    Morale:
    leggi la Guida in Linea!

    Ciao
    Frank
    Excel 2007 win7 - Ogni Progetto è composto da Micro Progetti: PRIMA risolvi quelli, e PRIMA raggiungi il completamento del Progetto!
    Domanda: "Come avranno fatto gli utilizzatori di Excel VBA, quando non esisteva il registratore di macro?"

  13. #10

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4025
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923

    Re: MsgBox

    Citazione Originariamente Scritto da tanimon Visualizza Messaggio
    La dichiarazione corretta è:
    Codice: 
    Dim response As VbMsgBoxResult
    ed il mio callo da "cazziate di Scossa" si è inspessito ancora un pochino.....Lol :-)
    Ciao Frank,
    allora siamo in due

    non sapevo dell'esistenza di "VbMsgBoxResult" (anche io non ho mai approfondito a dovere ), mi limitavo a dichiarare come "Variant":

    Codice: 
    Dim response
    Grande scossa

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  14. #11
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    ferrara
    Età
    41
    Messaggi
    2074
    Versione Office
    office pro 2010
    Likes ricevuti
    440
    Likes dati
    241

    Re: MsgBox

    Ma... scusate...

    A parte puntualizzazioni su quale tipo di dati dimensionare una variabile; La macro proposta in topic funziona benissimo e NON è vero che il flusso del programma sia sempre lo stesso a seconda che io scelga il pulsante [YES] piuttosto che il [NO]

    Alla domanda "Eseguo il Ripristino ? "

    [YES] -> il flusso passa all' interno del costrutto IF
    [NO] -> il flusso NON passa all' interno del costrutto.

    Facendo quello che gli è stato imposto dal programmatore:

    Codice: 
        If response = vbNo Then
    
            '...
        End If
    Prescindendo il fatto che sembra un referendum italiano, il vatto che la variabile discussa sia variant non è affatto un problema.
    Oltretutto, in un contesto dove una variabile è palesemente superflua.

    Codice: 
    Sub Reset1()    If MsgBox("Eseguo il Ripristino ? ", vbYesNo) = vbNo Then
            Range("L1").Select
        End If
    End Sub
    In quanto msgbox, oltre ad essere una SubRoutine che fa apparire una finestra, è anche una funzione che restituisce un valore legato al pulsante premuto.


    In fine, per dare un senso a tutto, porrei la domanda, logicamente sensata con l' azione dentro al costrutto IF:

    "Vuoi selezionare la cella L1 ? "

    Codice: 
    ...    If MsgBox("Vuoi selezionare la cella L1 ? ", vbYesNo) = vbNo Then
    ...
    Poi renderei il costrutto un pò più diretto e meno referendario :D :D


    SE "Vuoi selezionare la cella L1" ALLORA
    seleziono la cella L1
    FINE DEL SE

    Codice: 
    Sub Reset1()    If MsgBox("Eseguo il Ripristino ? ", vbYesNo) = vbYes Then
            Range("L1").Select
        End If
    End Sub
    ...
    naturalemtne funziona anche:
    Codice: 
    Sub Reset1()    Dim Variabile As String
        Variabile = MsgBox("Eseguo il Ripristino ? ", vbYesNo)
        If Variabile = vbYes Then
            Range("L1").Select
        End If
    End Sub
    Ed in questo caso funziona con qualsiasi dichiarazione di variabile tra quelle provate:
    integer
    Long
    string
    Variant

Discussioni Simili

  1. Inserire msgbox con condizione su foglio excel
    Di Bremen nel forum Domande su Excel VBA e MACRO
    Risposte: 5
    Ultimo Messaggio: 21/02/17, 11:18
  2. Personalizzare MSGBOX
    Di dautattmaui nel forum Domande su Excel VBA e MACRO
    Risposte: 6
    Ultimo Messaggio: 30/09/16, 16:14
  3. Msgbox per attivazione macro
    Di max72 nel forum Domande su Excel VBA e MACRO
    Risposte: 41
    Ultimo Messaggio: 06/09/16, 01:22
  4. Problema con MsgBox
    Di roky48 nel forum Domande su Excel VBA e MACRO
    Risposte: 9
    Ultimo Messaggio: 17/07/16, 20:52

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •