problemi con conversione nome mese in numero mese

Anonimo
2024-07-30T09:48:03+00:00

Buongiorno a tutti e grazie in anticipo,

devo inserire su un foglio è excel una serie di informazioni derivanti da diverse combobox e texbox, va tutto bene però non mi trasforma il nome del mese visualizzato sulla combobox in numero che dovrà essere inserito sul file excel. Vi faccio un esempio:

se sulla combobox Cbo_Mese è visualizzato il mese di luglio sul file excel alla colonna F dovrà esserci scritto 7

Grazie

Private Sub Cmb_inserisci_Click()

Dim ur As Integer

Dim startDate As Date

Dim endDate As Date

Dim currentDate As Date

Dim ws As Worksheet

Dim selectedMonth As String

Dim monthNumber As Integer

Dim lastRow As Long

Dim nextRow As Long

Dim i As Integer

Dim dayStart As Integer, dayEnd As Integer

Foglio8.Activate

Set ws = ThisWorkbook.Sheets("Calendario_visita")

dayStart = CInt(Cbo_giorno_da.Value)

dayEnd = CInt(Cbo_giorno_a.Value)

startDate = DateSerial(CInt(Cbo_Anno.Value), MonthNumberFromName(Cbo_Mese.Value), dayStart)

endDate = DateSerial(CInt(Cbo_Anno.Value), MonthNumberFromName(Cbo_Mese2.Value), dayEnd)

nextRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1

currentDate = startDate

Do While currentDate <= endDate

    ws.Cells(nextRow, 1).Value = Cbo\_Clienti.Value 

    ws.Cells(nextRow, 2).Value = Txtagente.Value 

    ws.Cells(nextRow, 3).Value = Txtpromoter.Value 

    ws.Cells(nextRow, 4).Value = Txtarea\_manager.Value 

    ws.Cells(nextRow, 5).Value = Cbo\_Anno.Value 

    ws.Cells(nextRow, 6).Value = monthName(Month(currentDate)) 

    ws.Cells(nextRow, 7).Value = Day(currentDate) 

    ws.Cells(nextRow, 8).Value = Txtcodice\_cliente.Value 

    ws.Cells(nextRow, 9).Value = Txtnota.Value 

    currentDate = currentDate + 1 

    nextRow = nextRow + 1 

Loop 

MsgBox "Dati inseriti con successo!" 

End sub

Function MonthNumberFromName(monthName As String) As Integer

Dim monthNames As Variant 

monthNames = Array("gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", \_ 

                   "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre") 

Dim i As Integer 

For i = LBound(monthNames) To UBound(monthNames) 

    If StrComp(monthNames(i), monthName, vbTextCompare) = 0 Then 

        MonthNumberFromName = i + 1 

        Exit Function 

    End If 

Next i 

MonthNumberFromName = 0 

End Function

Microsoft 365 e Office | Excel | Per il lavoro | Windows

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

7 risposte

Ordina per: Più utili
  1. Gianfranco55 25,190 Punti di reputazione Moderatore volontario
    2024-07-30T14:17:32+00:00

    ciao Eleuterio

    scusami ma non basta

    = (Month(Date)) per avere il numero del mese?

    = MonthName(Month(Date)) per avere il mese in lettere

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2024-07-30T11:41:04+00:00

    dove inserisco la stringa?

    e scrivi:

    se sulla combobox Cbo_Mese è visualizzato il mese di luglio sul file excel alla colonna F dovrà esserci scritto 7

    devi farlo qui:

    ws.Cells(nextRow, 6).Value = Application.Match(monthName, monthNames, 0)
    

    Ma il codice sopra chi l'ha scritto?

    Ciao.

    lo scritto io, informandomi su internet e guardando un pò di video.

    non sono un esperto di VBA.

    ws.Cells(nextRow, 6).Value = Application.Match(monthName, monthNames, 0)
    

    ho messo il codice, ma mi dà errore "errore di compilazione - Argomento non facoltativo" sul primo monthName

    grazie per l'auito

    La risposta è stata utile?

    0 commenti Nessun commento