Condividi:        

Estrazione 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

Estrazione Data

Postdi ik8ozv » 20/09/17 18:02

Salve alla lista,
Ho un file excel di molte righe, nel quale ad ogni riga c'e' una cella con data ed ora
tipo 01/08/2017 10:22:29.
Vorrei estrapolare la sola data senza ora ma nello stesso tempo lasciandoli ella cella di appartenenza
senza dove creare una nuova colonna.
Come fare?
Grazie.
Enzo.
ik8ozv
Utente Junior
 
Post: 58
Iscritto il: 10/04/16 11:54

Sponsor
 

Re: Estrazione Data

Postdi alfrimpa » 20/09/17 18:49

Enzo per fare quello che chiedi occorre una macro; supponendo i dati in colonna A e che la data sia sempre di 8 caratteri puoi provare questa macro

Codice: Seleziona tutto
Sub ConvertiDate()
Dim ur As Long
Dim rng As Range
Dim cel As Range
ur = Cells(Rows.Count, 1).End(xlUp).Row
Set rng = Range("A1:A" & ur)
For Each cel in rng
       cel.Value = Left(cel.Value, 8)
Next cel
End Sub
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Estrazione Data

Postdi Marius44 » 20/09/17 18:52

Ciao
Per estrapolare intendi che il valore nella cella deve mostrare solo la data e non l'orario oppure che il valore nella cella deve essere cambiato per rappresentare SOLO la data?

Perchè son due cose diverse:
Nel primo caso puoi cambiare la formattazione della cella per visualizzare solo la data. Ma se con la data devi farci anche dei calcoli devi tener presente che nella cella c'è un valore Double (che ha dei decimali)
Nel secondo, invece, visto che vuoi il risultato nella stessa cella, devi intervenire con VBA (conosci questo codice) in modo tale che lasci il valore intero troncando o eliminando la parte decimale.

A te la scelta. Ciao,
Mario

PS. Scusa Alfredo, ci siamo accavallati. Ciao.
Marius44
Utente Senior
 
Post: 655
Iscritto il: 07/09/15 22:00

Re: Estrazione Data

Postdi ik8ozv » 20/09/17 20:22

Grazie Ragazzi,
ho provato a creare la macro suggeritomi da alfrimpa ma non va.
Ho innazitutto cambiato la lettera della colonna che nel mio caso e' la D, sostituendo A1:A, con D8:D,
D8 perche' ho notato che la prima cella interessata era la D8, ma il risultato e' che i primi 2 che erano:

01/08/2017 10:02
01/08/2017 10:04

sono diventati:

08/01/2020 00:00
08/01/2020 00:00

mentre dalla riga 10 alla riga 140 sono diventati

08/01/2020
08/01/2020

senza l'ora ma sempre con l'anno errato, infine dalla riga 141 fino alla fine sono diventati:

08/01/20
08/01/20

sempre senza l'ora e sempre con l'anno errato, ma con l'anno in 2 cifre anziche' in 4.
Grazie
Enzo
ik8ozv
Utente Junior
 
Post: 58
Iscritto il: 10/04/16 11:54

Re: Estrazione Data

Postdi Marius44 » 20/09/17 22:25

Ciao
non capirò mai perchè chi chiede una soluzione non allega un proprio file in modo da "vederne" la struttura e dove sono i dati.
Ammettiamo che i tuoi dati siano in col.D; con la seguente macro, associata ad un pulsante, viene cambiato il contenuto di tutte le celle che contengono una data con orario in una data senza l'orario.
Codice: Seleziona tutto
Sub CambiaDate()
Dim ur As Long, i As Long
ur = Cells(Rows.Count, 4).End(xlUp).Row
For i = 1 To ur
    If IsDate(Cells(i, 4)) Then
        Cells(i, 4) = Int(Cells(i, 4).Value)
        Cells(i, 4).NumberFormat = "dd/mm/yy;@"
    End If
Next
End Sub


Fai sapere. Ciao,
Mario
Marius44
Utente Senior
 
Post: 655
Iscritto il: 07/09/15 22:00

Re: Estrazione Data

Postdi ik8ozv » 22/09/17 20:36

Grazie Mario anche per la tua collaborazione.
Ho provato la macro da te suggeritomi ma quando la vado a lanciare mi da un errore di
Microsoft Visual Basic. Infatti mi esce la finestrina che dice:

Errore di run-time '13':
Tipo non corrispondente.

Infine sento il tuo suggerimento e ti allego uno stralcio del file interessato.
Ripeto che i files sono minimo 2 e possono essere anche di piu.
Il link del file e':

http://www.filedropper.com/dettagliospese14agosto-07settembre

Cio' che dovrei fare e':

Unire i vari files in un unico file.
Settare il file per data dal piu' vecchio al piu' nuovo
Eliminare le righe che hanno come colonna "Costo €" le celle contenente il valore "0,00000"
Sommare i costi della colonna "Costo €

Il totale va bene anche sotto la stessa colonna.
Grazie
Enzo
ik8ozv
Utente Junior
 
Post: 58
Iscritto il: 10/04/16 11:54

Re: Estrazione Data

Postdi Marius44 » 23/09/17 07:08

Ciao
in merito al file che hai allegato la macro deve essere cambiata (attento alla particolarità della riscrittura della data - deve essere all'americana, cioè mese,giorno,anno) come segue:
Codice: Seleziona tutto
Sub CambiaDate()
Dim ur As Long, i As Long
ur = Cells(Rows.Count, 4).End(xlUp).Row
For i = 8 To ur
    If IsDate(Cells(i, 4)) Then
        Cells(i, 4) = Format(Cells(i, 4), "mm/dd/yy")
    End If
Next
End Sub


Per quanto riguarda l'unificazione dei file non saprei cosa consigliarti, non mi sento preparato a quel fine.
Fai sapere. Ciao,
Mario
Marius44
Utente Senior
 
Post: 655
Iscritto il: 07/09/15 22:00

Re: Estrazione Data

Postdi ik8ozv » 23/09/17 11:15

Grazie Mario,
ha funzionato ma mi mancano gli altri passaggi che spero qualcuno possa darmi una mano.
A me serve:

Unire i vari files in un unico file;
Settare il file per data dal piu' vecchio al piu' nuovo;
Convertire la colonna "COSTO €" in valuta con 5 decimali dopo la virgola;
Eliminare le righe che hanno come colonna "Costo €" le celle contenente il valore "0,00000"
Sommare i costi della colonna "Costo €".
Grazie
Enzo
ik8ozv
Utente Junior
 
Post: 58
Iscritto il: 10/04/16 11:54

Re: Estrazione Data

Postdi ik8ozv » 25/09/17 20:00

Ragazzi mi avete lasciato appeso?
ik8ozv
Utente Junior
 
Post: 58
Iscritto il: 10/04/16 11:54

Re: Estrazione Data

Postdi Statix » 25/09/17 22:28

Ciao ik80zv,
per le date, la macro di alfrimpa era giusta,
bastava solo modificare la colonna,
mentre la data è di 10 caratteri e non 8

Codice: Seleziona tutto
 Sub ConvertiDate()
Dim ur As Long
Dim rng As Range
Dim cel As Range
ur = Cells(Rows.Count, 1).End(xlUp).Row
Set rng = Range("D8:D" & ur)
For Each cel In rng
cel.Value = Left(cel.Value, 10)
Next cel
End Sub 
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Estrazione Data

Postdi Statix » 25/09/17 23:00

questa macro ti elimina le righe se la cella è a costo 0 euro

Codice: Seleziona tutto
Sub ELIMINA_RIGHE()
Dim UR As Long
With Sheets("Dettaglio")
UR = .Cells(.Rows.Count, 6).End(xlUp).Row
For n = UR To 8 Step -1
If .Cells(n, 6).Value = 0 Then
.Cells(n, 6).EntireRow.Delete
End If
Next n
End With
End Sub
   
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Estrazione Data

Postdi Statix » 25/09/17 23:34

per convertire la colonna F dove i numeri sono testo, qui ho usato una cella vuota B1,
usa prima questa macro e poi quella dell'elimina righe

Codice: Seleziona tutto
Sub converti()
  Range("B1").Select
    ActiveCell.FormulaR1C1 = "1"
    Range("B1").Select
    Selection.Copy
    Range("F8:F1000").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
        SkipBlanks:=False, Transpose:=False
    Range("B1").Select
    Application.CutCopyMode = False
    Selection.ClearContents
End Sub
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Estrazione Data

Postdi Statix » 26/09/17 08:25

sostituisci la macro converti con questa

Codice: Seleziona tutto
 
Sub ConvertiTesto()

  Range("B1").Select
    ActiveCell.FormulaR1C1 = "1"
    Range("B1").Copy
    UR = Cells(Rows.Count, 6).End(xlUp).Row
 Range("F8:F" & UR).Select
   
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
       SkipBlanks:=False, Transpose:=False
    Range("B1").Select
    Application.CutCopyMode = False
    Selection.ClearContents
End Sub
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Estrazione Data

Postdi Statix » 26/09/17 17:04

ho trovato un problema ,sostituisci a macro ConvertiTesto
con questa

Codice: Seleziona tutto
  Sub ConvertiTesto2()
Dim UR As Long
Dim rng As Range
Dim cel As Range
Application.ScreenUpdating = False

UR = Cells(Rows.Count, 6).End(xlUp).Row
Set rng = Range("F8:F" & UR)
For Each cel In rng

cel.Value = cel.Value * 1
Next cel
End Sub
 
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Estrazione Data

Postdi ik8ozv » 26/09/17 18:30

Ciao,
Grazie per le macro.
Ho provato a creare le tre macro uno sotto l'altro in questa sequenza:

ConvertiDate
ConvertiTesto2
ELIMINA_RIGHE

Li ho lanciati uno alla volta come messi in sequenza ed il risultato e' stato ottimo
solo che la colonna "F" non e' completo come lo volevo io e cioe' in formato valuta Euro.
Infine chiedevo la somma della colonna "F" e ancora se e' possibile racchiudere il tutto in una unica macro.
Grazie
Enzo
ik8ozv
Utente Junior
 
Post: 58
Iscritto il: 10/04/16 11:54

Re: Estrazione Data

Postdi Anthony47 » 26/09/17 23:15

In attesa di conferma o eventuali altre proposte da Statix:
-per la formattazione di colonna F, registrati una macro mentre formatti la colonna F come preferisci; supponiamo che questa si chiami Macro1
Per le istruzioni e i primi suggerimenti su come registrare una macro:
viewtopic.php?f=26&t=103893&p=622593#p622593

-per il totale di colonna F, modifica la macro di Statix in questo modo:
Codice: Seleziona tutto
Sub ConvertiTesto2()
Dim UR As Long
Dim rng As Range
Dim cel As Range
Dim myT As Double
'
Application.ScreenUpdating = False

UR = Cells(Rows.Count, 6).End(xlUp).Row
Set rng = Range("F8:F" & UR)
For Each cel In rng
    cel.Value = cel.Value * 1
    myT = myT + cel.Value
Next cel
Application.ScreenUpdating = True
Cells(UR + 2, "F").Value = myT
End Sub
Noterai le righe in cui il totale viene calcolato e poi scritto in coda a col F

Infine, per racchiudere tutto in una sola macro, inserisci questa nuova
Codice: Seleziona tutto
Sub Main()
Call ConvertiDate
Call ConvertiTesto2
Call ELIMINA_RIGHE
Call Macro1
End Sub

A questo punto, invece di eseguire le varie macro una per una ti bastera' avviare la Sub Main

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

Re: Estrazione Data

Postdi ik8ozv » 15/10/17 12:34

Ragazzi,
scusatemi se riprendo il post con un po di ritardo.
Purtroppo a causa di problemi familiari mi sono un po assentato.
Oggi ho ripreso ed in tutte queste formule mi sono un po perso.
C'e' qualche anima pia che potrebbe riassumere il tutto il procedimento indicandomi
le macro da usare?
Grazie anticipatamente.
Enzo.
ik8ozv
Utente Junior
 
Post: 58
Iscritto il: 10/04/16 11:54

Re: Estrazione Data

Postdi ik8ozv » 15/10/17 14:09

Scusate se faccio un doppio post ma purtroppo non mi fa editare quello precedente.
Leggendo e provando sono riuscito a far funzionare le macro da voi suggeritomi ( Ringrazio Tutti per l'aiuto ).
Ho solo notato che se vado a modificare un dato della colonna "F" il totale in fondo non si aggiorna ma resta della stessa somma.
Infine mi serve mettere in ordine dal piu' vecchio al piu' nuovo le date.
Grazie ancora
Enzo
ik8ozv
Utente Junior
 
Post: 58
Iscritto il: 10/04/16 11:54

Re: Estrazione Data

Postdi Anthony47 » 15/10/17 22:56

Il totale nella vecchia Sub ConvertiTesto2 e' inserito come valore; se ti interessa come formula allora devi sostituire la riga
Cells(UR + 2, "F").Value = myT
con
Codice: Seleziona tutto
Cells(UR + 2, "F").Formula = "=sum(F1:F" & UR & ")"


Per l'ordinamento, registra una ulteriore macro mentre esegui l'ordinamento con i comandi Excel, poi "richiama" anche questa come ti avevo detto di fare con le altre.

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

Re: Estrazione Data

Postdi ik8ozv » 03/11/17 19:51

Ragazzi,
mi manca un solo passaggio e cioe' quella di mettere il tutto in ordine di data dal piu' vecchio al piu' nuovo.
Non so se bisogna fare un'altra macro ancora o se possiamo inserirla in qualche macro esistente.
Ditemi voi come fare.
Grazie ancora.
Enzo
ik8ozv
Utente Junior
 
Post: 58
Iscritto il: 10/04/16 11:54

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Estrazione Data":


Chi c’è in linea

Visitano il forum: Nessuno e 29 ospiti