Caricare dati in combobox

Anonimo
2010-03-23T11:34:46+00:00

Voglio gestire l'inserimento di una data tramite 3 combobox

combo1 = giorni, combo2 = mesi e combo3 = anni

volevo sapere se c'era modo di caricare i dati senza fare riferimento a elenchi su foglio con rowsource, insomma l'idea era quella che sapendo che i giorni di un mese sono al massimo 31, far caricare direttamente alla combo1 i numeri da 1 a 31, stessa cosa per i mesi da 1 a 12 e a limite per anni a me interessa dal 2000-2020.

Vi ringrazio e buona giornata.

Ciao

Antonio

Microsoft 365 e Office | Installare, riscattare, attivare | Per la casa | Altro

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2010-03-23T13:55:35+00:00

Ho trovato una vecchia macro (che mi aveva passato il grande Norman, un abbraccio) ed ho adattato

<cut>  

unica pecca che non mi accetta lo zero davanti all' 1, si potrebbe eventualmente impostare le combo in formato "01" ecc. anzichè "1" ? Grazie e buona serata.

Io non ho capito dove la utilizzi. Il codice che posto carica tre ComboBox presenti in una UserForm all'inizializzazione della stessa, con gli 0 davanti ai valori singoli di giorni e mesi:

Private Sub UserForm_Initialize()

    Dim i As Long

    With Me

        With .ComboBox1

            .Clear

            For i = 1 To 31

                .AddItem Format(i, "0#")

            Next

        End With

        With .ComboBox2

            .Clear

            For i = 1 To 12

                .AddItem Format(i, "0#")

            Next

        End With

        With .ComboBox3

            .Clear

            For i = 1900 To 2099

                .AddItem i

            Next

        End With

    End With

End Sub

Fai sapere se hai risolto, grazie.


Mauro Gamberini - Microsoft© MVP(Excel) - http://www.maurogsc.eu/

La risposta è stata utile?

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2010-03-23T13:52:02+00:00

Lo zero davanti ai numeri è non significativo, proprio perchè sono considerati numeri, ma se tu inserisci il valore come stringa allora puoi inserirli a tuo piacimento.

In questo esempio viene forzata la formattazione dei numeri di giorni e mesi con due caratteri, trasformandoli in stringa (la funzione Format$() fa appunto questo).

Sub CaricaCombo() Dim i As Long

With Me 'Resetta il contenuto della combo .ComboBox1.Clear 'Carica i giorni del mese. For i = 1 To 31 .ComboBox1.AddItem Format$(i, "00") Next i

'Resetta il contenuto della combo
.ComboBox2.Clear
'Carica i mesi.
For i = 1 To 12
  .ComboBox2.AddItem Format$(i, "00")
Next i

'Resetta il contenuto della combo
.ComboBox3.Clear
'Carica gli anni.
For i = 1900 To 2099
  .ComboBox3.AddItem i
Next i

End With

End Sub

Dipende poi da come scrivi il resto del codice, ed alloccorrenza dovrai convertire il risultato in valore numerico. Avrai comunque necessità di fare una verifica del contenuto (per accertarti che il giorno esista per il mese indicato e che l'anno sia o non sia bisestile), qunidi non dovrebbe essere un problema. :-)

Ciao

Roberto


Roberto Restelli

Microsoft MVP - Office Systems - Outlook

************************************************

Le FAQ del newsgroup di Outlook: http://www.msoutlook.it

************************************************

Se la risposta ti ha aiutato clicca su "Vota come Utile".

La risposta è stata utile?

0 commenti Nessun commento

2 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2010-03-23T17:47:52+00:00

    "Lo zero davanti ai numeri è non significativo, proprio perchè sono considerati numeri, ma se tu inserisci il valore come stringa allora puoi inserirli a tuo piacimento."

    Ciao Roberto, si per le date tanto poi le riporto in una text con:

    TextBox2 = ComboBox1 & "/" & ComboBox2 & "/" & ComboBox3

    e

    TextBox6 = ComboBox4 & "/" & ComboBox5 & "/" & ComboBox6

    Grazie per il codice che va benissimo.

    <----------

    "Io non ho capito dove la utilizzi. Il codice che posto carica tre ComboBox presenti in una UserForm all'inizializzazione della stessa, con gli 0 davanti ai valori singoli di giorni e mesi:"

    Ciao Mauro, lo avevo messo sotto Activate della userform comunque và benissimo anche il tuo esempio di codice.

    Ringrazio entrambi per le veloci risposte e la cortesia.

    Ciao

    Antonio

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2010-03-23T13:10:35+00:00

    Ho trovato una vecchia macro (che mi aveva passato il grande Norman, un abbraccio) ed ho adattato

        Dim i As Long

        Set WB = ThisWorkbook

        Set SH = WB.Sheets("ARCHIVIO")

        With Me   

            For i = 1 To 31

                .ComboBox1.AddItem i

     .ComboBox4.AddItem i

            Next i       

            For i = 1 To 12

                .ComboBox2.AddItem i

     .ComboBox5.AddItem i

            Next i       

            For i = 1900 To 2099

                .ComboBox3.AddItem i

     .ComboBox6.AddItem i

            Next i       

        End With

    unica pecca che non mi accetta lo zero davanti all' 1, si potrebbe eventualmente impostare le combo in formato "01" ecc. anzichè "1" ? Grazie e buona serata.

    Ciao

    Antonio

    La risposta è stata utile?

    0 commenti Nessun commento