Condividi:        

[Excel] Problema di estrapolazione data

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

[Excel] Problema di estrapolazione data

Postdi mpsinf » 27/10/12 19:02

Ho sul foglio1 la seguente lista di date a partire da AA1 (INTERVALLATE DA ALTRE CELLE che non elenco x non dilungarmi)

xxxx xxxxxx: 13/10/2012 01:48:59
xxxx xxxxxx: 13/10/2012 01:46:02
xxxx xxxxxx: 13/10/2012 01:08:56
xxxx xxxxxx: 13/10/2012 01:02:58
xxxx xxxxxx: 13/10/2012 00:53:10
xxxx xxxxxx: 13/10/2012 00:47:35
xxxx xxxxxx: 13/10/2012 00:31:13
xxxx xxxxxx: 13/10/2012 00:27:36
xxxx xxxxxx: 12/10/2012 23:59:32
xxxx xxxxxx: 12/10/2012 23:53:10
xxxx xxxxxx: 12/10/2012 23:44:29
xxxx xxxxxx: 12/10/2012 23:26:46
xxxx xxxxxx: 12/10/2012 23:24:36
xxxx xxxxxx: 12/10/2012 23:23:04
xxxx xxxxxx: 12/10/2012 23:22:07
xxxx xxxxxx: 12/10/2012 23:15:59
xxxx xxxxxx: 12/10/2012 23:11:43
xxxx xxxxxx: 12/10/2012 22:55:00

con la seguente macro

Sub Macro1()

Cellafine = Range("AB" & Rows.Count).End(xlUp).Row
Set pippo = Worksheets("Foglio1").Range("AA1:AA" & Cellafine) 'con Intervallo impostiamo la colonna AB1 fino alla sua fine

For Each Migliore In pippo

If Len(Migliore.Value) = 32 Then ' se trova cella piena lunga 32 caratteri corrispondente a "xxxx xxxxx: 23/10/2012 23:28:12" saltando le altre che ci sono in mezzo a quelle della lista che vi ho inviato

cellavuota = Range("A" & Rows.Count).End(xlUp).Row + 1 'cerchiamo l'ultima cella occupata nell'elenco, +1 sarà quella vuota
Cells(cellavuota, 1) = Right(Migliore, 31 - 13)

End If

Next Migliore

End Sub

Il problema è che quando arriva al 12/10 in colla A1 dove trasferisco i dati appare

13/10/2012 01:46:02
13/10/2012 01:08:56
13/10/2012 01:02:58
13/10/2012 00:53:10
13/10/2012 00:47:35
13/10/2012 00:31:13
13/10/2012 00:27:36
10/12/2012 23.59
10/12/2012 23.53
10/12/2012 23.44
10/12/2012 23.26
10/12/2012 23.24

OSSIA MI SI INVERTE il giono con il mese :cry:

Perchè ? se potesse servire se estrapolo Right(Migliore, 31 - 12) ossia con uno spazio bianco davanti funziona ma logicamente cosa estraggo è differente dalla data ...
XP + Excel 2003 Ita
W7 + Excel 2007 Ita
mpsinf
Utente Senior
 
Post: 168
Iscritto il: 03/09/03 18:33

Sponsor
 

Re: [Excel] Problema di estrapolazione data

Postdi patel » 28/10/12 04:27

allega un file di esempio e descrivi qual'è il tuo obiettivo, non sei stato molto chiaro.
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: [Excel] Problema di estrapolazione data

Postdi mpsinf » 28/10/12 07:09

I dati sono quelli che ho inserito intervallati da altri non importanti ! Ma hai letto il post ?
Quello che vorrei capire è perchè mi inverte la data e solo a partire dal 12/10 mentre se ho a che fare con tutte le date dal 27/10 fino al 13/10 funziona tutto correttamente

P.s ho solo scritto per errore in colla invece che in cella e in una nota Ab1 invece di a AA1
XP + Excel 2003 Ita
W7 + Excel 2007 Ita
mpsinf
Utente Senior
 
Post: 168
Iscritto il: 03/09/03 18:33

Re: [Excel] Problema di estrapolazione data

Postdi patel » 28/10/12 09:55

mpsinf ha scritto:I dati sono quelli che ho inserito intervallati da altri non importanti ! Ma hai letto il post ?

Scusami se ho osato, non ti importunerò più
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: [Excel] Problema di estrapolazione data

Postdi Flash30005 » 28/10/12 10:58

Il problema delle date è noto (sistema americano e europeo)
dovresti oltre che scorporarla come stringa usare la funzione CDate e quindi usare una macro di questo tipo
Codice: Seleziona tutto
Sub DataSTr()
Cellafine = Range("AB" & Rows.Count).End(xlUp).Row
Columns(1).ClearContents
Set pippo = Worksheets("Foglio1").Range("AB1:AB" & Cellafine)
For Each Migliore In pippo
    If Len(Migliore.Value) = 32 Then
        cellavuota = Range("A" & Rows.Count).End(xlUp).Row + 1
        Cells(cellavuota, 1) = CDate(Right(Migliore, 31 - 12))
    End If
Next Migliore
End Sub


ciao

P.s. nella tua macro ci sono diverse incongruenze :roll:
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: [Excel] Problema di estrapolazione data

Postdi mpsinf » 28/10/12 11:11

In effetti ci sono 2 incongruenze della colonna AA invece di AB ma vedo che hai già capito.
Ma rispetto alla mia che non lasciò spazi davanti alla data con -13 tu lasci anche i : con -11 caratteri iniziali
E cosa cambia?

P.s. Come faccio ad inserire nei post il codice delle macro come fai tu in verde in riquadro bianco ?
XP + Excel 2003 Ita
W7 + Excel 2007 Ita
mpsinf
Utente Senior
 
Post: 168
Iscritto il: 03/09/03 18:33

Re: [Excel] Problema di estrapolazione data

Postdi mpsinf » 28/10/12 15:33

Ok con CDate funziona !!! grazie ancora

Sempre più incuriosito di dove trovare tutti questi meravigliosi comandi che VBA offre...!!

Siti web o manuali da consigliarmi ?
XP + Excel 2003 Ita
W7 + Excel 2007 Ita
mpsinf
Utente Senior
 
Post: 168
Iscritto il: 03/09/03 18:33

Re: [Excel] Problema di estrapolazione data

Postdi mpsinf » 28/10/12 16:21

Ora ho il problema che con il codice qui stotto DataD1 = quanto il giorno scende sotto il 10 diventa 2012-10-9 invece di 2012-10-09 ossia senza lo zero e stessa cosa capiterà con i mesi precedenti ad ottobre !!
come posso risolvere questo problema di "formattazione" ?

For DataDa = DateSerial(2012, 10, 11) To DateSerial(2010, 1, 1) Step -1
Columns("AA:AK").Select
Selection.ClearContents ' cancella vecchia query

DataD1 = Year(DataDa) & "-" & Month(DataDa) & "-" & Day(DataDa)
MsgBox DataD1


MyConn = "URL;http://www.sitoweb/" _
& DataD1
XP + Excel 2003 Ita
W7 + Excel 2007 Ita
mpsinf
Utente Senior
 
Post: 168
Iscritto il: 03/09/03 18:33

Re: [Excel] Problema di estrapolazione data

Postdi mpsinf » 28/10/12 16:40

Così sembra però funzionare .... ma forse è poco elegante...


DataD1 = Format(Year(DataDa), "0000") & "-" & Format(Month(DataDa), "00") & "-" & Format(Day(DataDa), "00")
XP + Excel 2003 Ita
W7 + Excel 2007 Ita
mpsinf
Utente Senior
 
Post: 168
Iscritto il: 03/09/03 18:33

Re: [Excel] Problema di estrapolazione data

Postdi Anthony47 » 28/10/12 17:01

Ma perche' hai poi deciso di abbandonare la versione
Codice: Seleziona tutto
DataD1 = Format(DataDa, "yyyy-mm-dd")
??

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

Re: [Excel] Problema di estrapolazione data

Postdi mpsinf » 29/10/12 19:43

In effetti funziona anche in quella maniera, me ne ero dimenticato :oops:

Ti chiedo come poter impostare il comando format se da query web devo importare le seguenti stringhe e convertirle in numero
(questo caso formato Euro xxx,00) eventualmente la € posso anche metterla dopo formattando le 2 colonne (in formato contabilità)

Cells(cellavuota, 2) = Format(Migliore.Offset(-1, 2), "€00.00") ' così non va bene

prima colonna che non ha decimali sempre 00

€15.00
€15.00
€600.00
€25.00
€15.00
€35.00
€200.00

altra colonna con altra formattazione se vuoi

€12.00
€0.03
€5.78
€4.00
€0.37


€34.07
€110.45
€0.65
XP + Excel 2003 Ita
W7 + Excel 2007 Ita
mpsinf
Utente Senior
 
Post: 168
Iscritto il: 03/09/03 18:33

Re: [Excel] Problema di estrapolazione data

Postdi mpsinf » 29/10/12 20:02

così sembrava andare

Cells(cellavuota, 2) = Format(Migliore.Offset(-1, 2) / 100, "0,00")
ma nella prima colonna non mi fa vedere il ,00 e nella seconda colonna spariscono i centesimi !!

se metto il punto al posto della virgola

Cells(cellavuota, 2) = Format(Migliore.Offset(-1, 2) / 100, "0.00")

la sommatoria delle celle da come risultato sempre 0 ossia non vengono interpretati come numeri
XP + Excel 2003 Ita
W7 + Excel 2007 Ita
mpsinf
Utente Senior
 
Post: 168
Iscritto il: 03/09/03 18:33

Re: [Excel] Problema di estrapolazione data

Postdi Anthony47 » 30/10/12 00:11

L' operazione di cui parli consiste di due fasi distinte:
-convertire la stringa in un valore numerico
-formattare la cella come si desidera

Inoltre tieni presente che la funzione Format "Restituisce un valore Variant (String) che contiene un'espressione formattata in base alle istruzioni contenute in un'espressione di formato" (come da help on line alla voce Funzione Format), quindi non e' idonea per restituirti un numero e tanto meno per formattare una cella.

Infine non ho capito bene quale e' l' origine dei dati e quale la destinazione, quindi certamente e' errata
Cells(cellavuota, 2) = Format(Migliore.Offset(-1, 2) / 100, "0.00")
mentre FORSE potrebbe andare
Codice: Seleziona tutto
Cells(cellavuota, 2) =CDbl(Replace(Replace(Migliore.Offset(-1,2), ".", ","), "€", ""))   'La conversione stringa ->Numero
Cells(cellavuota, 2) .NumberFormat = "$ #,##0.00"    'La formattazione cella

Quel "/ 100" non so a cosa serviva, eventualmente ripristinalo mettendolo in coda alla prima riga (prima del commento...)
Non sono sicuro della stringa di formattazione, potrebbe essere dipendente dal settaggio del proprio Pc; quindi se cosi' non formatta come vuoi tu prova registrare una macro mentre esegui la formattazione di una cella e poi esamina il codice per vedere la stringa giusta corrispondente.

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

Re: [Excel] Problema di estrapolazione data

Postdi mpsinf » 30/10/12 08:23

Ok... funziona...
ma mi sà che devo installare Excel 2007 perchè il mio 2003 di help non ne vuole sapere io da Microsoft Visual Basic (schermata con ALT F11) con il ? mi si apre la guida in linea e se digito tipo CDbl non mi restituisce nessuna informazione,
e quel comando CDbl (Replace.... mi intriga e mi piacerebbe studiarlo meglio
XP + Excel 2003 Ita
W7 + Excel 2007 Ita
mpsinf
Utente Senior
 
Post: 168
Iscritto il: 03/09/03 18:33

Re: [Excel] Problema di estrapolazione data

Postdi mpsinf » 30/10/12 08:44

Aihia. !!..
i numeri da esaminare se sono superiori al 1000 vengono riportati dalla query web con uno spazio tra le migliaia (€1 050,00)
e mi si blocca la macro sul seguente comando

Cells(cellavuota, 2) = CDbl(Replace(Replace(Migliore.Offset(-1, 2), ".", ","), "€", "")) 'La conversione stringa ->Numero

come posso risolvere ?
XP + Excel 2003 Ita
W7 + Excel 2007 Ita
mpsinf
Utente Senior
 
Post: 168
Iscritto il: 03/09/03 18:33

Re: [Excel] Problema di estrapolazione data

Postdi Anthony47 » 30/10/12 14:26

Per accedere all' help on line, cliccare "dentro" una parola chiave (es CDbl; 1 solo click) e premere F1.

La soluzione al problema posto e' un ulteriore livello di Replace, per sostituire (nella stringa al momento calcolata annidando i due Replace) gli "spazi" con "niente" (come e' stato fatto col carattere "Euro", mentre l' altro livello riguarda la sostituzione del "punto" con la "virgola").
Ti lascio il tempo di provare da solo, dai che non e' difficile; guardi la sintassi della funzione col trucco descritto prima, e confronti con l' uso che ne ho gia' fatto.

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

Re: [Excel] Problema di estrapolazione data

Postdi mpsinf » 30/10/12 19:26

Giusto non aiutarmi troppo altrimenti divento pigro e non mi applico !!
ecco la stringa elaborata
Cells(cellavuota, 2) = CDbl(Replace(Replace(Replace(Migliore.Offset(-1, 2), ".", ","), "€", ""), " ", ""))

Per l'help niente da fare ! ...ma il cliccare "dentro" dove intendi ? Dopo che faccio ALT F11 e mi si apre Microsoft Visual Basic
che faccio ?... grazie
XP + Excel 2003 Ita
W7 + Excel 2007 Ita
mpsinf
Utente Senior
 
Post: 168
Iscritto il: 03/09/03 18:33

Re: [Excel] Problema di estrapolazione data

Postdi Flash30005 » 30/10/12 21:32

Dal Menu Inserisci selezioni Modulo
scrivi nel frame di destra
CDbl
e premi F1

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: [Excel] Problema di estrapolazione data

Postdi Anthony47 » 31/10/12 13:26

Quanto avevo suggerito io era il metodo per indagare sul significato e sulla sintassi di istruzioni contenute in una macro gia' disponibile, avendo quindi visibile il codice della macro.
Con "Cliccare dentro la parola chiave" intendevo "posizionare il cursore sopra una parola chiave e fare "click"; questo ti dara' l' help riferita alla parola chiave "usata nel constesto". Perche' e' vero che c' e' un unico CDbl, ma sai quante "Add" diverse c possono essere?

In genere puoi anche usare F1 (dall' editor delle macro) e poi scrivere la funzione nel tab Indice, oppure scrivere una "frase di ricerca" nel tab Ricerca libera; nel caso di CDbl questo non funziona perche' tutte le "funzioni di conversione" sono disponibili in un unico capitolo, intitolato (guarda caso) "Funzioni di conversione"

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


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Problema di estrapolazione data":


Chi c’è in linea

Visitano il forum: Ricky0185 e 49 ospiti