Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [VBA] macro che accetta e non accetta tipo di variabile

    Ciao a tutti,
    ho realizzato una macro in excel che mi funziona e non...
    spiego un po la mia macro in cosa consiste sperando di esser più chiaro...
    la macro deve confrontare delle celle e se il loro contenuto è uguale la macro passa alla cella accanto e prende il contenuto che è un numero e lo inserisco in una variabile somma es. somma=somma+Cells(riga,colonna).
    La variabile somma è di tipo double in quanto la somma può essere un valore con la virgola.La macro accetta e non accetta questa variabile somma pur contenendo gli stessi numeri nelle celle del foglio di lavoro(quando tento di eseguire la macro...).Ho notato che se eseguo la macro una volta dichiarando la variabile somma di tipo double e una volta di tipo variant funziona bene ma se provo ad eseguire due volte di seguito la macro lasciando invariato il tipo alla variabile somma mi da errore..perchè avviene questo?cosa posso fare per risolvere il problema? le celle hanno come formato generale cioè quello di default che dovrebbe andar benissimo.
    Spero di esser stato chiaro e che mi possiate aiutare a risolvere il problema...

  2. #2
    Hai provato semplicemente a non dichiarare il tipo della variabile e lasciar fare ad excel?
    In genere se la cava benissimo da solo.

    Comunque senza vedere il codice è difficile darti una risposta però così, a naso, direi che lasci qualche dato sporco da qualche parte sul foglio perché quella è l'unica area che sopravvive fra una esecuzione e l'altra quindi se la prima va bene e la seconda male mi viene da pensare solo questo.
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  3. #3
    Grazie per la tua disponibilità nel avermi risposto...
    ho provato ad assegnare la macro ad un "bottone" e non mi da più errori(non so perchè...)
    Io ho realizzato una macro con due sub routine e ho preferito poi utilizzare le variabili in modo globale in quanto entrambe manipolano le stesse variabili...se non dichiaro il tipo di variabile come tu mi consigli excel la variabile somma come la vedrebbe?locale alla sub routine oppure globale? scusa se ti pongo questa domanda ma è da poco che uso le macro...

  4. #4
    Il fatto che sia locale o globale non ha nessuna relazione col tipo di dati che deve contenere.

    Per definire una variabile globale devi semplicemente definirla al di fuori delle sub mentre per lasciare che sia excel a determinarne il tipo non devi essere tu a indicarglielo:
    codice:
    DIM somma
    PRIVATE SUB routine1()
       somma = 5
    END SUB
    PRIVATE SUB routine2()
       MsgBox somma
    END SUB
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  5. #5
    Ciao perdonami ma forse mi sono espresso male oppure non ho capito bene la tua risposta...
    descrivo meglio la mia seconda domanda:
    tu mi hai consigliato di usare una variabile non definendo il tipo così excel si occupa da solo cosa fare.Io avendo due sub routine che lavorano sulle stesse variabili e una di queste è la variabile somma come interpreta excel la variabile somma non definita sia nella sub routine 1 e nella 2 come la stessa variabile?(quindi globale ) oppure sono due variabili somma differenti...?Ottenendo un risultato "errato"...
    Grazie per la tua disponibilità ....

    Spero di esser stato chiaro nel descrivere il mio dubbio.


    Per la domanda fatta inizialmente nel post diciamo che non sto avendo più errori da quando ho assegnato la macro ad un "bottone".(non saprei dirti perchè non da più errore).

  6. #6
    Originariamente inviato da Lastfire
    ...come interpreta excel la variabile somma non definita sia nella sub routine 1 e nella 2 come la stessa variabile?(quindi globale ) oppure sono due variabili somma differenti...?
    Ti ho già risposto:

    Originariamente inviato da NonCeLaFaccio+
    Per definire una variabile globale devi semplicemente definirla al di fuori delle sub
    cosa non è chiaro?

    Hai provato a togliere tutte le definizioni attuali di somma e a scrivere semplicemente

    codice:
     DIM somma
    fuori dalle SUB e vedere che succede?

    Riguardo al perchè non dia più errori da quando hai assegnato la macro ad un pulsante non so proprio che dirti perchè non ho elementi per risponderti.
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  7. #7
    Ok...avevo capito io male...grazie per la tua disponibilità...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.