Risultati da 1 a 13 di 13

Discussione: Dim di tutte variabli in function a Double



  1. #1
    L'avatar di zio_tom
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Veneto
    Messaggi
    526
    Versione Office
    2010 - Win10
    Likes ricevuti
    64
    Likes dati
    17

    Dim di tutte variabli in function a Double

    forse è una domanda banale
    ma ho cercato, forse male, ma non riesco a trovare se è possibile:
    fare il DIM di tutte le variabili a Double, senza ripetere tutte le variabili usate
    l'ideale sarebbe fare DIM as Double di tutte le variabili magari menzionando le eccezzioni, tipo le stringhe
    invento:
    DIM tutte as Double
    Dim a, b, c as String

  2. #2

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6795
    Versione Office
    2013
    Likes ricevuti
    718
    Likes dati
    164

    Re: Dim di tutte variabli in function a Double

    Ciao zio_tom

    Ho visto più volte la dichiarazione di più variabili fatta in questo modo (anche sul sito CPearson quindi un'autorità in materia):

    Dim var1, var2, ..... varN As Tipo

    Alfredo

  3. #3
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3339
    Versione Office
    2013 PC
    Likes ricevuti
    483
    Likes dati
    49

    Re: Dim di tutte variabli in function a Double

    Citazione Originariamente Scritto da zio_tom Visualizza Messaggio
    forse è una domanda banale
    ma ho cercato, forse male, ma non riesco a trovare se è possibile:
    fare il DIM di tutte le variabili a Double, senza ripetere tutte le variabili usate
    l'ideale sarebbe fare DIM as Double di tutte le variabili magari menzionando le eccezzioni, tipo le stringhe
    invento:
    DIM tutte as Double
    Dim a, b, c as String
    Se ho ben capito potresti usare il trova e sostituisci

    ciao

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  4. #4
    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: Dim di tutte variabli in function a Double

    a questo link dovrebbe esserci qualche chiarimento:

    https://support.microsoft.com/it-it/kb/843144


    comunque.
    utilizzando il metodo:
    Dim Var1, Var2, Var3 as Double

    si dichiaro come Double SOLO l ultima variabile. le altre, quelle non esplicitate, saranno Variant.

    quindi o ci si fa bastare variant oppure bisogna dichiararle. ... suppongo :)

  5. #5
    L'avatar di zio_tom
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Veneto
    Messaggi
    526
    Versione Office
    2010 - Win10
    Likes ricevuti
    64
    Likes dati
    17

    Re: Dim di tutte variabli in function a Double

    Vedo che ho generato un po' di confusione
    io vorrei che tutte le variabili con un solo comando, senza doverle ripetere "Dim a As Double, b As Double, c As Double, d As Double, e As Double" (essendo deverse decine) si possano dichiarare tutte ad esempio Double od altro, e dichiarare esplicitamente solamente quelle che si vogliono diverse duindi "Dim w As String, q As String, y As String, j As String"
    E' charo che sono noti i consueti modi di dichiarare le variabile, dichiarandole richiamandole una ad una

    PS: In rete alcuni affermano che "Dim a As Double, b As Double, c As Double, d As Double, e As Double" sia uguale a "Dim a, b, c, d, e As Double".

  6. #6
    L'avatar di Raffaele_53
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Binasco
    Età
    64
    Messaggi
    506
    Versione Office
    2007
    Likes ricevuti
    85
    Likes dati
    7

    Re: Dim di tutte variabli in function a Double

    Sono d'accordo con dracoscrigno
    Dim a As Double, b As Double, c As Double, d As Double, e As Double" questa è giusta
    Dim a, b, c, d, e As Double (e = double), le altre sono variant

  7. #7

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6795
    Versione Office
    2013
    Likes ricevuti
    718
    Likes dati
    164

    Re: Dim di tutte variabli in function a Double

    Ciao a tutti

    Rettifico quanto detto prima (mi ero fermato alla prima taverna).

    Questo lo stralcio completo di quanto riportato sul sito CPearson

    Codice: 
    Pay Attention To Variables Declared With One Dim Statement
    
    VBA allows declaring more than one variable with a single Dim statement. I don't like this for stylistic reasons, but others do prefer it. However, it is important to remember how variables will be typed. Consider the following code: 
    Dim J, K, L As Long
    
    You may think that all three variables are declared as Long types. This is not the case. Only L is typed as a Long. The variables J and K are typed as Variant. This declaration is functionally equivalent to the following: 
    Dim J As Variant, K As Variant, L As Long
    
    You should use the As Type modifier for each variable declared with the Dim statement: 
    Dim J As Long, K As Long, L As Long
    Ha ragione quindi Dracoscrigno che ha ripreso i concetti qui sopra riportati.

    Alfredo

  8. #8

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

    Re: Dim di tutte variabli in function a Double

    Citazione Originariamente Scritto da zio_tom Visualizza Messaggio
    PS: In rete alcuni affermano che "Dim a As Double, b As Double, c As Double, d As Double, e As Double" sia uguale a "Dim a, b, c, d, e As Double".
    In molti linguaggi è così, di certo non in VBA.

    In VBA, se proprio puoi usare due compromessi:
    - il primo è di utilizzare i caratteri di dichiarazione (% per int: Var1%, $ per string: var2$ ....);
    - il scondo è usare l'istruzione Deftipo a livello di modulo:

    Codice: 
    DefInt I
    DefLng L
    
    Sub prova()
      Dim iVar1
      Dim iVar2
      Dim lVar3
      Debug.Print VarType(iVar1)
      Debug.Print VarType(iVar2)
      Debug.Print VarType(lVar3)
    End Sub
    ----------Post unito in automatico----------

    Ovviamente la scelta delle lettere è libera, ma è preferibile che, per chiarezza, richiami il tipo di dato (quindi i per integer, s per string ....)

    Dim iVar1, iVar2, lVar3
    iVar1 e iVar2 saranno Integer e lVar3 sarà Long
    Ultima modifica fatta da:scossa; 12/07/16 alle 20:13
    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)

  9. I seguenti 2 utenti hanno dato un "Like" a scossa per questo post:


  10. #9
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3209
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155

    Re: Dim di tutte variabli in function a Double

    Salve a tutti

    @scossa
    ciao Marco. Le tue aggiunte in successione mi hanno portato a fare delle prove.

    Domanda: Premesso che le variabili è sempre meglio dichiararle (e per quanto mi riguarda, ad una ad una) ho notato che nella finestra immediata il valore rappresentante la variabile è influenzato dalla lettera indicata davanti alla variabile ANCHE SE LA VARIABILE NON é DICHIARATO.
    E' così?

    La prova da me fatta (manomettendo il tuo) usa questo codice:
    Codice: 
    DefInt I
    DefLng L
    
    
    Sub prova()
      'Dim iVar1
      'Dim iVar2
      'Dim lVar3
      Debug.Print VarType(iVar1)
      Debug.Print VarType(iVar2)
      Debug.Print VarType(iVar3)   'qui ho premesso una " i "
    End Sub
    La risposta è tre volte 2 e non due volte 2 ed una volta 3 (come, secondo me, avrebbe dovuto essere).

    Ciao a tutti,
    Mario

  11. #10
    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: Dim di tutte variabli in function a Double

    salve a tutti.

    premettendo che non so l inglese quì pare ci sia molto su def_tipovariabile

    https://msdn.microsoft.com/en-us/lib...(v=vs.60).aspx


    le le ultime 5 righe dell articolo sembrano molto interessanti:

    DefInt A-Z
    Dim TaxRate As Double

    Deftype*statements don't affect elements of*user-defined types*because the elements must be explicitly declared.

  12. #11

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

    Re: Dim di tutte variabli in function a Double

    Citazione Originariamente Scritto da Marius44 Visualizza Messaggio
    Salve a tutti
    valore rappresentante la variabile è influenzato dalla lettera indicata davanti alla variabile ANCHE SE LA VARIABILE NON é DICHIARATO.
    Certo, in pratica per default le variabili che iniziano con quella lettera verranno dimensionate come stabilito con Deftipo, anche senza l'istruzione Dim (come del resto avviene normalmente con Variant). Ovviamente sarebbe sempre doveroso l'uso di Option Explicit per obbligare a dichiarare le variabili utilizzate.

    N.B.: parlavo di compromesso perché è pur sempre una scelta che va a discapito della chiarezza del codice.
    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)

  13. #12
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3209
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155

    Re: Dim di tutte variabli in function a Double

    Salve a tutti

    @scossa
    Grazie per la risposta.

    @dracoscrigno
    Se è vero, come dici, che non ti "piace" l'inglese prova a mettere "Deftipo" in italiano nella Guida di VBA e troverai la stessa cosa in italiano.

    Ciao,
    Mario

  14. I seguenti utenti hanno dato un "Like"


  15. #13
    L'avatar di zio_tom
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Veneto
    Messaggi
    526
    Versione Office
    2010 - Win10
    Likes ricevuti
    64
    Likes dati
    17

    Re: Dim di tutte variabli in function a Double

    Qindi la soluzione del mio problema è:
    fisso che tutte le variabili siano Double
    DefDbl a-z
    e poi dichiaro le eccezzioni
    Dim pippo As String, pluto As String ecc ecc

Discussioni Simili

  1. [Risolto] Tutte le combinazioni
    Di ferposso61 nel forum Domande su Excel in generale
    Risposte: 9
    Ultimo Messaggio: 09/02/17, 00:30
  2. Copia foglio con tutte le protezioni
    Di Pedro nel forum Foglio di calcolo su altre Piattaforme
    Risposte: 3
    Ultimo Messaggio: 21/10/16, 14:48
  3. Problema ricalcolo automatico function vba
    Di sarena76 nel forum Domande su Excel VBA e MACRO
    Risposte: 9
    Ultimo Messaggio: 07/09/16, 19:26
  4. Inserire Guida Function personalizzate
    Di zio_tom nel forum Domande su Excel VBA e MACRO
    Risposte: 12
    Ultimo Messaggio: 02/01/16, 15:54
  5. UDF disponibile su tutte le cartelle di lavoro
    Di Gerardo Zuccalà nel forum Domande su Excel VBA e MACRO
    Risposte: 20
    Ultimo Messaggio: 23/11/15, 18:11

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
  •