Risultati da 1 a 5 di 5

Discussione: Currency Data Type



  1. #1
    L'avatar di Bruno
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Italy
    Età
    66
    Messaggi
    230
    Versione Office
    2016 64 Bit W10
    Likes ricevuti
    80
    Likes dati
    11

    Currency Data Type

    Ciao

    Ho un dubbio e per non utilizzare Variant mi chiedevo quale limite comporta l'utilizzo di:

    Codice: 
    Dim Destinazione As Currency
    
    'per poi caricare il dato con
    Destinazione = CheckFreeSpaceOnDisc(MyDrive)
    Ora il codice rileva correttamente il valore di 225.738.440.704
    Domani quale limite avrò come dimensione fisica del disco con: Destinazione As Currency

  2. #2

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    58
    Messaggi
    1205
    Versione Office
    .
    Likes ricevuti
    446
    Likes dati
    0
    Citazione Originariamente Scritto da Bruno Visualizza Messaggio
    Ciao
    Domani quale limite avrò come dimensione fisica del disco con: Destinazione As Currency
    Dall'help del VBA:
    Le variabili di tipo Currency sono memorizzate come numeri a 64 bit (8 byte) in formato intero, divise per 10.000 in modo da ottenere un numero a virgola fissa con 15 cifre alla sinistra della virgola decimale e 4 cifre alla sua destra. Con questa rappresentazione è possibile specificare un intervallo compreso tra -922.337.203.685.477,5808 e 922.337.203.685.477,5807.
    Ma il punto è che Destinazione dovrebbe essere dichiarata dello stesso tipo del valore restituito dalla function CheckFreeSpaceOnDisc().
    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)

  3. #3
    L'avatar di Bruno
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Italy
    Età
    66
    Messaggi
    230
    Versione Office
    2016 64 Bit W10
    Likes ricevuti
    80
    Likes dati
    11
    Ciao
    Originariamente Scritto da scossa
    Destinazione dovrebbe essere dichiarata dello stesso tipo del valore restituito dalla function CheckFreeSpaceOnDisc().
    La function che ho utilizzato aveva questa dichiarazione:
    Codice: 
    Function CheckFreeSpaceOnDisc(ByVal Drive As String) As Currency
    Ora è tutto più chiaro, volevo esser certo della dichiarazione utilizzata

  4. #4

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    58
    Messaggi
    1205
    Versione Office
    .
    Likes ricevuti
    446
    Likes dati
    0
    Citazione Originariamente Scritto da Bruno Visualizza Messaggio
    Ciao


    La function che ho utilizzato aveva questa dichiarazione:
    Codice: 
    Function CheckFreeSpaceOnDisc(ByVal Drive As String) As Currency
    Ora è tutto più chiaro, volevo esser certo della dichiarazione utilizzata
    Bene, visto che il forum ti è stato d'aiuto che ne diresti di contraccambiare mostrando il codice completo della function, per completezza di informazione e per dare un valore aggiunto alla discussione?
    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)

  5. #5
    L'avatar di Bruno
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Italy
    Età
    66
    Messaggi
    230
    Versione Office
    2016 64 Bit W10
    Likes ricevuti
    80
    Likes dati
    11
    Ciao
    Ho completato il ciclo allego un esempio
    Il codice prima di copiare una cartella verifica che ci sia lo spazio disponibile nelle altre unità presenti: D E ecc...

    Codice: 
    'in un modulo
    Option Explicit
    'Caricare il Riferimento Microsoft Scripting
    
    
    'Declaration of API:
    Private Declare Function SHGetDiskFreeSpace Lib "shell32" Alias "SHGetDiskFreeSpaceA" (ByVal pszVolume As String, pqwFreeCaller As Currency, pqwTot As Currency, pqwFree As Currency) As Long
    
    
    Sub Click()
      Dim MyDrive$, MyDriveDir$
      Dim Origine As Currency
      Dim Destinazione As Currency
      Dim fso As New FileSystemObject
      Dim ds As Object
      'loop through all drives
      For Each ds In fso.Drives
        If ds.DriveType = 2 Then
          MyDrive = ds.DriveLetter
          On Error Resume Next
          MyDriveDir = Dir(MyDrive & ":\", 5)
          If MyDriveDir = "" Or IsError(MyDriveDir) Then
            MsgBox "No disk is in Drive " & MyDrive
          Else
            'MsgBox "Drive " & MyDrive & " has a disk and is ready!"
            If MyDrive = "C" Then
                Origine = GetFolderSize("C:\Windows") 'Modificare voce
            Else
                Destinazione = CheckFreeSpaceOnDisc(MyDrive)
                If Destinazione > Origine Then
                    MsgBox "Memoria disponibile in questa unità:  " & Destinazione & vbLf & "Ok Copio Cartella in " & MyDrive
                End If
            End If
          End If
          Err.Clear
        End If
      Next ds
    End Sub
    
    
    
    
    
    
    'gives free size in bytes or -1 if errors occured
    Function CheckFreeSpaceOnDisc(ByVal Drive As String) As Currency
      Dim FreeForCaller As Currency, Tot As Currency, Free As Currency
      
      On Error GoTo fehler
      If Drive = "" Then GoTo fehler
      If Len(Drive) = 1 Then Drive = Drive & ":\"
      If Len(Drive) = 2 And Right$(Drive, 1) = ":" Then Drive = Drive & "\"
      
      SHGetDiskFreeSpace Drive, FreeForCaller, Tot, Free
      FreeForCaller = FreeForCaller * 10000
      Tot = Tot * 10000
      Free = Free * 10000
      CheckFreeSpaceOnDisc = FreeForCaller
    
    
    Exit Function
    fehler: CheckFreeSpaceOnDisc = -1
    End Function
    
    
    Public Function GetFolderSize(ByVal strFolder As String) As Long
        Dim fso As FileSystemObject
        
        Set fso = New FileSystemObject
       
        GetFolderSize = fso.GetFolder(strFolder).Size
        Set fso = Nothing
    End Function
    File Allegati File Allegati

Discussioni Simili

  1. Come ottenere la data di nascita partendo dall'anno. Una DATA.DIFF inversa ?
    Di ProgrammD69 nel forum Domande su Excel in generale
    Risposte: 9
    Ultimo Messaggio: 31/03/18, 11:31
  2. [Risolto] estraendo da un data base la data non viene riconosciuta
    Di vitangelo nel forum Domande su Excel in generale
    Risposte: 8
    Ultimo Messaggio: 11/02/17, 16:46
  3. AutoFill(Destination, Type)
    Di Giorgio1989 nel forum Domande su Excel VBA e MACRO
    Risposte: 3
    Ultimo Messaggio: 12/01/17, 12:18
  4. [Risolto] COnvertire Testo contenente Data in Inglese in Data in Italiano
    Di cnbgpp69d nel forum Domande su Excel in generale
    Risposte: 5
    Ultimo Messaggio: 06/11/16, 21:55
  5. Formato variabile CURRENCY con .. 3 decimali
    Di GioPL nel forum Domande su Excel VBA e MACRO
    Risposte: 6
    Ultimo Messaggio: 28/09/16, 09:14

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
  •