Condividi:        

ricerca di un periodo fra due date

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

ricerca di un periodo fra due date

Postdi rotella » 29/06/10 18:47

Ciao a tutti ho bisogno di un aiuto: ho creato un form in vba con due textbox e un pulsante che all'interno delle text inserisco due date es. 23/04/2009 e 21/06/2010 ho bisogno di ricercare tutti i dati che ho in una tabella, dal 23/04/2009 al 21/06/2010 e copiarli in un' altra tabella per copiare non ho problemi questa parte è ok mi interessa la ricerca. ciao e grazie in anticipo
rotella
Utente Junior
 
Post: 17
Iscritto il: 29/05/10 09:10

Sponsor
 

Re: ricerca di un periodo fra due date

Postdi Flash30005 » 29/06/10 22:36

Esegui un ciclo For...next

esempio:
se hai le date dalla cella A2 alla cella A100 (puoi calcolare le righe se occorre)

Codice: Seleziona tutto
For RR = 2 To 100
If Range("A" & RR).value >= ValoreTextBox1 and Range("A" & RR).value <= ValoreTextBox2 Then
Call TuaMacroCheCopia
endif
next RR


Fai sapere
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: ricerca di un periodo fra due date

Postdi rotella » 29/06/10 23:07

Scusa forse mi sono spiegato male le date sono tutte in una colonna di una tabella con vari campi dalla colonna A alla W la data è nella colonna D. cmq grazie e scusa se mi sono spiegato male
rotella
Utente Junior
 
Post: 17
Iscritto il: 29/05/10 09:10

Re: ricerca di un periodo fra due date

Postdi Flash30005 » 29/06/10 23:39

Ho ancora confusione e sinceramente ora mi sta venendo anche il dubbio che stai parlando di Database e non di excel
gli elementi tabella e Vba sono propri di Access
però poi dici
rotella ha scritto:con vari campi dalla colonna A alla W la data è nella colonna D.

e questo è proprio di excel
ma continuo a non capire perché parli di
rotella ha scritto: le date sono tutte in una colonna di una tabella

Se si parla di una colonna si può parlare della colonna A o B o C ma poi parli di campi dalla colonna A alla W
e qui mi perdo

Potresti inviare un'immagine di cosa hai?

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: ricerca di un periodo fra due date

Postdi rotella » 30/06/10 10:36

Scusa ma allora sono io che sono dislessico non riesco mai a spiegarmi si in pratica ho creato un db su fogli excel
rotella
Utente Junior
 
Post: 17
Iscritto il: 29/05/10 09:10

Re: ricerca di un periodo fra due date

Postdi Flash30005 » 30/06/10 13:14

rotella ha scritto:....si in pratica ho creato un db su fogli excel

:eeh: :?:
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: ricerca di un periodo fra due date

Postdi rotella » 30/06/10 14:46

ciao flash ti ho messo in confusione se vuoi ti posto il file dimmi dove postarlo. ciao
rotella
Utente Junior
 
Post: 17
Iscritto il: 29/05/10 09:10

Re: ricerca di un periodo fra due date

Postdi Flash30005 » 30/06/10 15:03

Sarà pure un po' di stress da parte mia...
ma veniamo a noi
se non ci sono dati sensibili oppure puoi modificare questi dati invia il file seguendo la procedura indicata qui
utilizzando Rapidshare o altri server host inserendo, poi, il link fornito nel forum
se, invece, hai problemi con i dati puoi inviarmi il link in MP

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: ricerca di un periodo fra due date

Postdi Anthony47 » 30/06/10 17:20

Non sei dislessico, solo che usi una terminologia propria di un db (es Access) e non hai mai scritto che lavori con Excel.

C' e' anche da notare che la macro di Flash e' quella che ti serve per fare la ricerca, come da tua richiesta iniziale; se la data e' nella colonna D, allora basta che nell' istruzione "If Range("A" & RR).value etc etc" sostituisci la A con la D. Se il problema e' come fare la copia dalla tabella di origine a quella di destinazione, allora invece di Call TuaMacroCheCopia userai qualcosa come Cells(RR,1).Resize(23).Copy Destination:=LaTuaDestinazione

C'e' anche da ricordare che hai scelto di usare dei textbox, che quindi ti restituiranno delle stringhe, mentre le date nelle celle excel hanno un loro formato (vedi help on line alla voce "Informazioni sulle date e i sistemi di data"); dovrai quindi convincere i tuoi utenti a scrivere nei textbox le date in "un formato predefinito" e poi, per fare il confronto, convertire le date di excel nello stesso formato.
Se ad esempio gli utenti scrivono 29-06-2010 userai
If Format(Range("D" & RR).Value, "dd-mm-yyyy") >= TextBox1.Text And Format(Range("D" & RR).Value, "dd-mm-yyyy") <= TextBox2.Text Then


Ciao, fai sapere dove arrivi.
Avatar utente
Anthony47
Moderatore
 
Post: 19419
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: ricerca di un periodo fra due date

Postdi rotella » 30/06/10 20:35

rotella
Utente Junior
 
Post: 17
Iscritto il: 29/05/10 09:10

Re: ricerca di un periodo fra due date

Postdi Anthony47 » 30/06/10 23:08

Non hai detto che cosa hai fatto con i suggerimenti che ti ho dato e dove sei arrivato...

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19419
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: ricerca di un periodo fra due date

Postdi rotella » 01/07/10 08:53

scusa anthony ho fatto solo casino
rotella
Utente Junior
 
Post: 17
Iscritto il: 29/05/10 09:10

Re: ricerca di un periodo fra due date

Postdi Flash30005 » 01/07/10 09:39

Cerchiamo, allora, di fare un po' di ordine
Errori nel codice FrmricercaDate: CmdAvvia_Click
Ci sono due End Sub ed un Endif di troppo (vedi alla fine della macro e cancella queste scritture)
------

Inoltre...
Codice: Seleziona tutto
            Worksheets("Storico").Range("A" & indi).Copy Destination:=Worksheets("Ricerche").Range("A" & numriga) 'Documento
            Worksheets("Storico").Range("B" & indi).Copy Destination:=Worksheets("Ricerche").Range("B" & numriga) 'Data
            Worksheets("Storico").Range("C" & indi).Copy Destination:=Worksheets("Ricerche").Range("C" & numriga) 'Reparto
            Worksheets("Storico").Range("D" & indi).Copy Destination:=Worksheets("Ricerche").Range("D" & numriga) 'Isola
            Worksheets("Storico").Range("E" & indi).Copy Destination:=Worksheets("Ricerche").Range("E" & numriga) 'Codice Articolo
            Worksheets("Storico").Range("F" & indi).Copy Destination:=Worksheets("Ricerche").Range("F" & numriga) 'Operatore
            Worksheets("Storico").Range("G" & indi).Copy Destination:=Worksheets("Ricerche").Range("G" & numriga) 'Descrizione
            Worksheets("Storico").Range("H" & indi).Copy Destination:=Worksheets("Ricerche").Range("H" & numriga) 'Quantità
            Worksheets("Storico").Range("I" & indi).Copy Destination:=Worksheets("Ricerche").Range("I" & numriga) 'Tipo di ordine
            Worksheets("Storico").Range("J" & indi).Copy Destination:=Worksheets("Ricerche").Range("J" & numriga) 'Scarto Previsto
            Worksheets("Storico").Range("K" & indi).Copy Destination:=Worksheets("Ricerche").Range("K" & numriga) ' Media Prevista
            Worksheets("Storico").Range("L" & indi).Copy Destination:=Worksheets("Ricerche").Range("L" & numriga) 'Cliente
            Worksheets("Storico").Range("M" & indi).Copy Destination:=Worksheets("Ricerche").Range("M" & numriga) 'Note
            Worksheets("Storico").Range("N" & indi).Copy Destination:=Worksheets("Ricerche").Range("N" & numriga) 'Criticità
            Worksheets("Storico").Range("O" & indi).Copy Destination:=Worksheets("Ricerche").Range("O" & numriga) 'Data Produzione
            Worksheets("Storico").Range("P" & indi).Copy Destination:=Worksheets("Ricerche").Range("P" & numriga) 'Ora Inizio Produzione
            Worksheets("Storico").Range("Q" & indi).Copy Destination:=Worksheets("Ricerche").Range("Q" & numriga) 'Ora Fine Produzione
            Worksheets("Storico").Range("R" & indi).Copy Destination:=Worksheets("Ricerche").Range("R" & numriga) 'Totale Fermo
            Worksheets("Storico").Range("S" & indi).Copy Destination:=Worksheets("Ricerche").Range("S" & numriga) 'Causa Fermo
            Worksheets("Storico").Range("T" & indi).Copy Destination:=Worksheets("Ricerche").Range("T" & numriga) 'N° Pezzi prodotti
            Worksheets("Storico").Range("U" & indi).Copy Destination:=Worksheets("Ricerche").Range("U" & numriga) 'N° Pezzi Scardo
            Worksheets("Storico").Range("V" & indi).Copy Destination:=Worksheets("Ricerche").Range("V" & numriga) 'Causa Scarto
            Worksheets("Storico").Range("W" & indi).Copy Destination:=Worksheets("Ricerche").Range("W" & numriga) 'Fine Produzione

Per copiare più celle consecutive della stessa riga non è necessario copiare cella per cella (come hai fatto e riportato qui sopra)
ma con una unica riga di codice ottieni la stessa cosa di quanto postato sopra, es.:
se vuoi (o puoi) copiare l'intera riga (dalla colonna A all colonna IV, e oltre)
Codice: Seleziona tutto
 Worksheets("Storico").Rows(indi & ":" & indi).Copy Destination:=Worksheets("Ricerche").Rows(numriga & ":" & numriga)

o parte di riga come nel tuo caso(da A a W):
Codice: Seleziona tutto
Worksheets("Storico").Range("A" & indi & ":W" & indi).Copy Destination:=Worksheets("Ricerche").Range("A" & numriga)


Però, malgrado questo, avrai ancora errore perché le variabili "indi" e "numriga" non sono dimensionate (vuote).

Come pensavi di dare loro un valore o qual'è la routine che fa assumere il valore a queste due variabili?

Fai sapere
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: ricerca di un periodo fra due date

Postdi rotella » 01/07/10 13:59

ciao e grzie del consiglio x le righe credo che le variabili le prendesse dall'inserimento date
rotella
Utente Junior
 
Post: 17
Iscritto il: 29/05/10 09:10

Re: ricerca di un periodo fra due date

Postdi Flash30005 » 01/07/10 14:57

Si, ma se passi dal Menu generale > Visualizza Storico e > Ricerca Fra Date
quei valori rimangono vuoti :roll:
(ricorda che quei valori devono corrispondere a Numeri di riga)

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: ricerca di un periodo fra due date

Postdi rotella » 02/07/10 19:06

ok sistemo un po le cose e vedo come va. ciao grazie
rotella
Utente Junior
 
Post: 17
Iscritto il: 29/05/10 09:10

Re: ricerca di un periodo fra due date

Postdi Flash30005 » 02/07/10 23:40

Prova ad inserire questo codice nel form "FrmRicercaDate"
Codice: Seleziona tutto
Private Sub CmdAvvia_Click()
'Segnalazione di Errore inserimento dati
            URR = Worksheets("Ricerche").Cells(Rows.Count, 2).End(xlUp).Row
            Worksheets("Ricerche").Range("A2:W" & URR).Clear
Trovato = 0
    If TxtData1 = "" Then
        MsgBox " ERRORE- I Campi DATA devono essere compilati", Title:="Errore Inserimento"
        TxtData1.SetFocus
        Exit Sub
    End If
    DataIni = DateSerial(Mid(TxtData1, 7, 4), Mid(TxtData1, 4, 2), Mid(TxtData1, 1, 2))
    DataFin = DateSerial(Mid(TxtData2, 7, 4), Mid(TxtData2, 4, 2), Mid(TxtData2, 1, 2))
    'MsgBox DataIni & " " & DataFin
        Righe = Worksheets("Storico").Cells(Rows.Count, 2).End(xlUp).Row
            For rr = 2 To Righe
            If Worksheets("Storico").Range("B" & rr).Value >= DataIni And Worksheets("Storico").Range("B" & rr).Value <= DataFin Then
            'Copia dati di ricerca su foglio 5
            URR = Worksheets("Ricerche").Cells(Rows.Count, 2).End(xlUp).Row + 1
            Worksheets("Storico").Range("A" & rr & ":W" & rr).Copy Destination:=Worksheets("Ricerche").Range("A" & URR)
            Worksheets("Ricerche").Range("B" & URR).Interior.ColorIndex = 3  'Colora di rosso la colonna Data
            Worksheets("Ricerche").Range("B" & URR).Font.ColorIndex = 2      'Colora di bianco il contenuto di Data
Trovato = 1
    End If
           
Next rr
    If Trovato = 0 Then
        MsgBox "Nessun risultato trovato con i parametri impostati!", vbExclamation, "Ricerca"
        Txtdat1.SetFocus
        Exit Sub
    Else
        FrmRicercaDate.Hide
    End If
    'Apertura Foglio Ricerche
    Sheets("Ricerche").Select
   
End Sub


Fai sapere
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-


Torna a Applicazioni Office Windows


Topic correlati a "ricerca di un periodo fra due date":


Chi c’è in linea

Visitano il forum: Nessuno e 12 ospiti