È soltanto un Pokémon con le armi o è un qualcosa di più? Vieni a parlarne su Award & Oscar!

Excel Forum Per condividere esperienze su Microsoft Excel

Ricerca tra due date

  • Messaggi
  • OFFLINE
    prinztegame
    Post: 40
    Registrato il: 27/09/2011
    Città: TRIESTE
    Età: 50
    Utente Junior
    2003
    00 16/07/2019 11:46
    Buongiorno a tutti, vorrei un piccolo aiuto con un codice vba per cercare tra due date specifiche.

    Nel Foglio1 ho una serie di nomi in colonna A, una serie di date in colonna B e nelle celle E1 ed E2 introduco la data di inizio e la data di fine della mia ricerca . Il codice dovrebbe copiare i dati che rientrano all'interno delle date inserite e copiarli nel Foglio2, ma ciò non avviene né tantomeno ottengo un errore o altro.

    Di seguito il codice:

    Sub ESTRAI()

    Dim lastrow As Long, erow As Long, i As Long
    Dim mydate As Date, StartDate As Date, EndDate As Date

    lastrow = Foglio1.Cells(Rows.Count, 1).End(xlUp).Row
    Foglio1.Range("A1").Select

    For i = 2 To lastrow

    StartDate = Foglio1.Range("E1").Value
    EndDate = Foglio1.Range("E2").Value

    mydate = Cells(i, 2)

    If mydate >= StartDate And mydate <= EndDate Then
    erow = Foglio2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
    Range(Cells(i, 1), Cells(i, 2)).Copy Destination:=Foglio2.Cells(erow, 1)
    End If

    Next i

    End Sub
    Ringrazio anticipatamente chi potrà darmi una mano.

    Prinz
    Excel 2003 SP3
  • OFFLINE
    dodo47
    Post: 2.325
    Registrato il: 06/04/2013
    Utente Veteran
    2010
    00 16/07/2019 12:15
    non succede nulla perchè nel foglio1 col B non c'è nessuna data compresa tra il 1 e 2 gennaio 18😉

    Ti suggerisco, inoltre di mettere le seguenti istruzioni:

    StartDate = Foglio1.Range("E1").Value
    EndDate = Foglio1.Range("E2").Value

    prima del ciclo for, altrimenti tutte le volte le legge inutilmente, basta 1 sola volta

    saluti



    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    prinztegame
    Post: 40
    Registrato il: 27/09/2011
    Città: TRIESTE
    Età: 50
    Utente Junior
    2003
    00 16/07/2019 12:46
    Ciao Domenico, grazie per avermi fatto notare la data errata (in effetti doveva essere 01/02/2018) e grazie anche per il suggerimento riguardo le istruzioni prima del ciclo For.

    Ma nonostante tutto il codice continua a non funzionare...qualche altro suggerimento?


    Massimo
    Excel 2003 SP3
  • OFFLINE
    dodo47
    Post: 2.326
    Registrato il: 06/04/2013
    Utente Veteran
    2010
    00 16/07/2019 12:55
    la risposta è sempre la stessa, in col B del foglio1 non c'è nessuna data compresa tra 1/2/18 e 2/2/18......, cioè le date poste in E1 e E2


    edit: accorciamo, che ci scrivi in E1 e E2 ?


    [Modificato da dodo47 16/07/2019 13:01]
    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    prinztegame
    Post: 41
    Registrato il: 27/09/2011
    Città: TRIESTE
    Età: 50
    Utente Junior
    2003
    00 16/07/2019 13:09
    Ciao Domenico, premetto che ho risolto il problema che era il command button associato alla macro e ti ringrazio per il tempo dedicatomi.

    In ogni caso in E1 avevo scritto 01/01/2018 mentre in E2 01/02/2018.


    Un saluto a tutti,

    Massimo
    Excel 2003 SP3
  • OFFLINE
    dodo47
    Post: 2.327
    Registrato il: 06/04/2013
    Utente Veteran
    2010
    00 16/07/2019 13:13
    Si, ho visto solo ora.

    ciao



    Domenico
    Win 10 - Excel 2016