Visibilità variabili



  • Visibilità variabili
    di Rocky (utente non iscritto) data: 01/06/2011

    Ciao ragazzi,
    ho provato ha scrivere la procedura di una variabile vista a livello di modulo che si trova in excel x tutti - la sintassi basic nella parte della visibilità alla pag.2 di 2 ma non ottenuto nessun risultato, cosa c'è di sbagliato nel codice?
    il codice è:
     
    Private sub visualizza()
    Dim numero1 As Integer
    Dim numero2 As integer
    Dim numero3 As integer
    Numero1 = 15
    Numero2 = 5
    Numero3 = sottrazione (numero1,numero2)
    MsgBox "Il risultato della differenzaè: "& numero3, vbInformation, "differenza"



  • di Mrt (utente non iscritto) data: 01/06/2011

    Prova così

    ciao
     
    Private Sub visualizza()
    Dim numero1 As Integer
    Dim numero2 As Integer
    Dim numero3 As Integer
    numero1 = 15
    numero2 = 5
    numero3 = numero1 - numero2
    MsgBox "Il risultato della differenza è: " & numero3, vbInformation, "differenza"
    End Sub


  • Visibilità variabili
    di Rocky (utente non iscritto) data: 02/06/2011

    Ciao mrt,
    il problema consistene nel fatto che quando vado ad eseguire la macro, nella finestra non c'è nulla e quindi non posso eseguirla. forse l'errore sta nella parte iniziale:
    private sub visualizza.....



  • di Mrt (utente non iscritto) data: 02/06/2011

    In quale finestra non c'è nulla, spiegati meglio



  • di Rocky (utente non iscritto) data: 08/06/2011

    Ciao mrt,
    in riferimento alla tua risposta, in alto a sinistra del foglio excel 2007 c'è un' icona dove c'è scritto macro. cliccando sulla stessa si apre la finestra di macro dove ci sono i vari comandi: esegui, modifica.... in quella finestra non risula nessuna sub da eseguire riguardo al codice che t'ho inviato. però per capire il problema a cui mi riferisco, se ti è possibile cerca excel vba x tutti-la sintassi basic. cliccando sulla prima ricerca vai sul foglio relativo alla visibilità dove troverai quella parte relativa alla visibilità delle "fuction" e delle "sub" al fine di verificare se c'è un errore nel codice.

    grazie per la tua disponibiltà e scusa se mi sono prolungato un po'.



  • di Mrt (utente non iscritto) data: 08/06/2011

    Allora, per lanciare la macro (usa quella d me modificata) fai così:

    1) nuova cartella di excel

    2) click destro su barra dei comandi

    3) personalizza barra di accesso rapido

    4) aggiungi dalla sche sviluppo il pulsante visual basic

    5) lancia il visual basic con il pulsante aggiunto

    6)dal menu del visual basic così aperto, scegli "inserisci" e aggiungi un modulo.

    7) copia nel suddetto modulo la macro

    8) posizionati col mouse sul testo appena copiato , tasto destro, esegui...

    oppure, aggiungi un pulsante su un foglio di excel e assegna la macro a quel pulsante.

    ciao



  • di Rocky (utente non iscritto) data: 16/06/2011

    Ciao mrt,
    scusami se sono ripetitivo, ciò che non riesco a capire è questo: una volta scritta quella procedura nel modulo1 visibile a livello di modulo che significato ha da sola tale procedura? perchè eliminando il termine private la macro può essere eseguita e va bene. inserendo il termine private che non riesco a capire se dopo aver scritto tale procedura devo scrivere delle sub facendo riferimento a tale procedura.

    ciao e grazie della tua disponibilità



  • di Rocky (utente non iscritto) data: 16/06/2011

    Ciao mrt,
    scusami se sono ripetitivo, ciò che non riesco a capire è questo: una volta scritta quella procedura nel modulo1 visibile a livello di modulo che significato ha da sola tale procedura? perchè eliminando il termine private la macro può essere eseguita e va bene. inserendo il termine private che non riesco a capire se dopo aver scritto tale procedura devo scrivere delle sub facendo riferimento a tale procedura.

    ciao e grazie della tua disponibilità



  • di Mrt (utente non iscritto) data: 16/06/2011

    Allora, l'istruzione "private" non serve a rendere eseguibile una sub ma fa si che una sub sia accessibile a tutte le routine all'interno dello stesso modulo.
    per esempio, puoi avere un progetto vba con più moduli, le sub dichiarate come private sono disponibili e richiamabili solo all'interno del modulo stesso, quelle pubbliche sono disponibili e richiamabili da tutte le sub di tutti i moduli.

    per eseguire una sub puoi attribuirla ad un oggetto (pulsante, checkbox,ecc.) o associarla ad un evento(es. workbook.open, worksheets.activate, worksheetchange,ecc.)
    ti allego file di esempio.
    ciao



  • di Mrt (utente non iscritto) data: 16/06/2011

    Nel file di esempio, ho assegnato la macro ad un pulsante sul foglio1 e l'ho associata anche all'evento "change" del suddetto foglio1.

    ciao



  • di Rocky (utente non iscritto) data: 20/06/2011

    Cia mrt,
    scusami ma non riesco a trovare il file che mi hai inviato. letto il messaggio dove posso trovarlo?

    grazie



  • di Mrt (utente non iscritto) data: 22/06/2011

    Ti riallego il file


  • Combobox
    di Rocky (utente non iscritto) data: 28/06/2011

    Ciao mrt,
    innanzitutto grazie per la tua disponibilità ed il tuo aiuto per aver chiarito alcuni dubbi. però c'è un altro problema: ho creato, sempre con excel vba, una userform1 dove ho inserito una combobox1 e una textbox1. ciò che non riesco a capire perchè una volta selezionato un elemento della combobox1 senzz button non si inserisce nella listbox1 con il codice che ho scritto.

    grazie

     
    Il codice che  è:
    Private Combobox1_Change()
    TexTBox1.Text = Combobox1. SelectedItem
    End sub



  • di Mrt (utente non iscritto) data: 29/06/2011

    Add.item è un metodo proprio delle combobox , non si usa con le text box.

    usa il codice sotto e vedrai che funziona
     
    Sub ComboBox1_Change()
    TextBox1.Text = ComboBox1.Text
    End Sub



  • di Mrt (utente non iscritto) data: 29/06/2011

    Ho visto solo ora il file che hai allegato.

    con il codice che hai scritto non funzionerà mai.

    prima devi popolare la combobox1 con i dati che ti interessano(puoi ricavare i dati per esempio, da un range di celle di un foglio di lavoro, ecc.) con il comando additem nell'evento initialize della userform1, dopo, con l'evento change della combobox1 , vai a compilare la textbox1. vedi codice sotto
    ciao
     
    Sub UserForm_Initialize()
    ComboBox1.AddItem "A"
    End Sub
    
    Sub ComboBox1_Change()
    TextBox1.Text = ComboBox1.Text
    End Sub
    


  • Combobox
    di Rocky (utente non iscritto) data: 06/07/2011

    Sei grande mrt,
    grazie a te ogni difficoltà è superata.inoltre
    sto creando per esercitarmi un foglio excel con dei dati e una userform con dei comandi. in caso di difficoltà posso contare sulla tua disponibilità?

    saluti rocky



  • di Mrt (utente non iscritto) data: 06/07/2011

    Certo, non sono un guru di vba ma qualcosina la so.

    se hai bisogno posta pure.
    ciao