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à
    Cireggio Italy
    Età
    66
    Messaggi
    141
    Versione Office
    2016 64 Bit
    Likes ricevuti
    38
    Likes dati
    6

    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à
    57
    Messaggi
    1016
    Versione Office
    .
    Likes ricevuti
    366
    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à
    Cireggio Italy
    Età
    66
    Messaggi
    141
    Versione Office
    2016 64 Bit
    Likes ricevuti
    38
    Likes dati
    6
    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à
    57
    Messaggi
    1016
    Versione Office
    .
    Likes ricevuti
    366
    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à
    Cireggio Italy
    Età
    66
    Messaggi
    141
    Versione Office
    2016 64 Bit
    Likes ricevuti
    38
    Likes dati
    6
    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. [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, 17:46
  2. AutoFill(Destination, Type)
    Di Giorgio1989 nel forum Domande su Excel VBA e MACRO
    Risposte: 3
    Ultimo Messaggio: 12/01/17, 13:18
  3. [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, 22:55
  4. Formato variabile CURRENCY con .. 3 decimali
    Di GioPL nel forum Domande su Excel VBA e MACRO
    Risposte: 6
    Ultimo Messaggio: 28/09/16, 10:14
  5. Come ottenere la data di nascita partendo dall'anno. Una DATA.DIFF inversa ?
    Di ProgrammD69 nel forum Domande su Excel in generale
    Risposte: 8
    Ultimo Messaggio: 03/07/16, 20: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
  •