Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di natasha
    Registrato dal
    Sep 2000
    Messaggi
    1,307

    VBA: una funzione predefinita che restituisce il nome del mese, dato un numero?

    Buongiorno a tutti,
    esiste in VBA una funzione predefinita che restituisce il nome del mese ("Gennaio", "Febbraio",....) se gli passo un numero compreso fra 1 e 12 (o fra 0 e 11)?
    Kisses,

    Nat

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,464

    Moderazione

    Ho spostato anche questa discussione.

    Tutti i quesiti relativi a Visual Basic vanno inseriti all'interno di quest'area.

    Per altri dubbi, consulta il Regolamento.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Ciao..una funzione specifica per quello che hai chiesto non esiste, cmq potresti sempre fare ciò tramite un select case:

    codice:
    Private Sub Form_Load()
    
    MsgBox Mese(2)
    
    End Sub
    
    Public Function Mese(ByVal Numero As Byte) As String
    
    Select Case Numero
    
        Case Is = 1
        Mese = "Gennaio"
        
        Case Is = 2
        Mese = "Febbraio"
    
        Case Is = 3
        Mese = "Marzo"
    
        Case Is = 4
        Mese = "Aprile"
    
        'ecc..
        
        Case Else
        MsgBox "Il numero inserito non è valido", vbCritical, "Errore"
        
    End Select
    
    End Function
    Cmq tanto per darti una idea di come procedere..

    Ciao

  4. #4
    io VBA non lo conosco, ma in VB6 o VB.NET usando il comando Format puoi fare quello che dici tu:

    codice:
    dim strMese as string
      
      strMese=Format(now,"mmmm")
    dovrebbe essere così.... ma non so se funziona in VBA.

    ciao ciao
    I database... la mia passione + o -

  5. #5
    Utente di HTML.it L'avatar di natasha
    Registrato dal
    Sep 2000
    Messaggi
    1,307
    Format va bene anche in VBA.
    Però, non so come passargli un numero fra 1 e 12, e farmi restituire il mese: ad esempio, un ciclo che riempia un array con i nomi dei mesi, utilizzando Format?
    Kisses,

    Nat

  6. #6
    Utente di HTML.it L'avatar di natasha
    Registrato dal
    Sep 2000
    Messaggi
    1,307
    Basta rifletterci un pò...

    Private Sub cmdProva_Click()
    Dim iCount As Integer

    For iCount = 1 To 12
    MsgBox Format(Day(Now()) & "/" & iCount & "/" & Year(Now()), "mmmm")
    Next
    End Sub

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Il giorno non e' necessario e se vuoi il mese in maiuscolo usi la StrConv ...

    MsgBox StrConv(Format(iCount & "/" & Year(Now()), "mmmm"), vbProperCase)

    In realta', dato che i mesi non dipendono dall'anno corrente, basta anche un anno costante ...

    MsgBox StrConv(Format(iCount & "/2000", "mmmm"), vbProperCase)

  8. #8
    Utente di HTML.it L'avatar di natasha
    Registrato dal
    Sep 2000
    Messaggi
    1,307
    Ciao oregon, fa piacere conoscere un MVP!
    Buono a sapersi che il giorno non è necessario, le costanti cablate nel codice mi fanno allergia (), ed al posto della StrConv() io userei la UCase().
    A parte questo, ripeto, piacere di averti "conosciuto"!

  9. #9
    Utente di HTML.it L'avatar di natasha
    Registrato dal
    Sep 2000
    Messaggi
    1,307
    Forse puoi rispondere anche ad un'altra domanda che ho postato: quale proprietà impostare per una combobox per impedire all'utente di scriverci dentro.

  10. #10
    basta che scegli come stile della combo : DropDownList

    Ciao Ciao
    I database... la mia passione + o -

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.