ricerca data



  • ricerca data
    di hello (utente non iscritto) data: 09/10/2013 00:13:12

    Ciao,
    nell'eseguire la macro prova ricevo il seguente errore:
    Tipo non corrispondente

    La macro è simile a prova2 dove invece uso i numeri e la ricerca funziona correttamente


     
    Sub prova()
    Dim MaxRighe As Integer
    Dim Indice As Integer
    Dim giorno As String
    giorno = Date
    MsgBox (giorno)
    MaxRighe = Sheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row + 1
    Indice = Application.Match(giorno, Sheets("Foglio1").Range("A1:A20"), 0)
    MsgBox (Indice)
    End Sub
    
    
    Sub prova2()
    Dim MaxRighe As Integer
    Dim Indice As Integer
    MaxRighe = Sheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row + 1
    Indice = Application.Match(4, Sheets("Foglio1").Range("D1:D20"), 0)
    MsgBox (Indice)
    End Sub



  • di Vecchio Frac data: 09/10/2013 09:31:33

    Match non funzionerà perchè non troverà una corrispondenza esatta.
    Stai cercando un valore stringa (hai convertito la data in una stringa) ma nella colonna A è presente un valore di data (che è un numero).
    Prova a dichiarare "Dim giorno As Long" e vedrai che funzionerà.

    Per inciso, perchè usi Match e non Find? sarebbe più semplice e anche più performante.
    Inoltre tieni presente che Indice potrebbe essere oltre la 32768.ma e quindi va dichiarato as Long, altrimenti solleverà un errore di Overflow.





  • di hello (utente non iscritto) data: 09/10/2013 22:37:55

    grazie mille, mettendo il tipo Long come mi hai detto ha funzionato!!!