La consultazione del forum è libera per tutti.
Per poter porre un quesito è invece necessario essere un utente registrato (clicca qui se non lo sei).
Tutti gli utenti che richiedono un supporto, come da REGOLAMENTO, sono caldamente invitati ad allegare un file di esempio con l'indicazione di quello che si desidera ottenere.
Ciao ragazzi nel file allegato ci sono data e ora che sono da sistemare. Nel senso che avevo mandato a capo il testo nella stessa cella di modo che sopra ci fosse la data e dando invio scrivevo l'ora. Solo che ci sono alcuni orari, con i due punti come separatore e altri con la virgola.
Vorrei, se esiste una formula separare data e ora di modo che l'ora vada in una cella adiacente che ho creato, separando data consegna e ora consegna. Perchè ho notato con questo formato le formule fanno cilecca...
Ciao
I dati in colonna A non sono date ma testi
Se li devi lasciare in questo formato in B1 da trascinare in basso
=STRINGA.ESTRAI(A1;1;9)
In C1
=DESTRA(A1;5)
no non va bene,
devo ottenere appunto in A la data e in B l'ora
Allora
I dati in colonna A sono dei testi e non delle date ora se vuoi ottenere le date in B e le ore in C basta moltiplicare per uno le formule di prima.....ma se dici che dati questi dati vuoi in A le date e in B le ore con le formule non si può fare ci vuole il VBA.... altrimenti riallega un file con i dati iniziali e il risultato da ottenere scritto a mano nelle celle di output
Ho risolto in altro modo, grazie lo stesso. Vba no mi viene l'orticaria solo a pensarci
ciao
in B1 da tirare a destra per una colonna
=SE.ERRORE(FILTRO.XML("<d><a>"&SOSTITUISCI($A1;CODICE.CARATT(10);"</a><a>")&"</a></d>";"//a["&RIF.COLONNA(A1)&"]");0)
la B1 formatti DATA
la C1 ORA
se vuoi spostare solo la data e tenere in A la data ci vuole il vba
IMPORTANTE
in un forum si condivide la soluzione
perciò se tu hai risolto da solo dovresti gentilmente condividere la soluzione
con gli altri utenti grazie
Si il problema è che in alcune celle il separatore dell'ora è stato erroneamente inserito , e mi sfasa tutto,
Di per se funzionerebbe, ma mi servirebbe un qualcosa tipo sostituisci , con :
ciao
ti stavo scrivendo
che hai un fritto misto
codice.caratt
spazi
senza orari
orari con la virgola
e probabile non abbia visto tutto
questa dovrebbe risolvere
sempre da tirare a destra e in basso
=SE.ERRORE(FILTRO.XML("<d><a>"&SOSTITUISCI(SOSTITUISCI(SOSTITUISCI($A1;CODICE.CARATT(10);" " );",";":");" ";"</a><a>")&"</a></d>";"//a["&RIF.COLONNA(A$3)&"]");0)
ciao
direi di si
ti ho aggiunto anche il . visto che un dato orario ha il punto
Si l'idea è ottima e funziona ma aggiungendo altre 2 colonne per separare data e ora mi si sminchia il vba su un check che ho messo per un messaggio di alert all'apertura del file, quindi non è fattibile
ciao non ti resta che il vba
oppure sposta la formula su un'altro foglio
e poi copia incolla come valore sulle colonna A e B del primo foglio
na rottura ma almeno hai quello che vuoi senza vba
Aggiungendo colonne distinte per data e ora poi succede questo
ciao
ma scusa hai una macro
e cosa fa su quelle colonne
la posti per favore il file sarebbe meglio
Option Explicit
Private Sub Worksheet_Activate()
Dim UltimaRiga As Long
Dim NextChange As Long
Dim msg As String
Dim costante As Long
Dim UltimoKm As Long
Dim UltimoRabbocco As Long
Dim RigaUltimoRabbocco As Long
Dim Costante1 As Long
'''''GESTIONE ERRORE CON TABELLA VUOTA
On Error GoTo GestioneErrori
RigaUltimoRabbocco = Me.Cells(Rows.Count, 10).End(xlUp).Row
UltimaRiga = Me.Cells(Rows.Count, 9).End(xlUp).Row
''''''GESTIONE ERRORE CON COLONNA RABBOCCHI VUOTA
On Error Resume Next
Costante1 = Me.Cells(RigaUltimoRabbocco, 10).Offset(0, -1) ''''VALORE KM PER ULTIMO RABBOCCO
On Error GoTo 0
UltimoKm = Cells(UltimaRiga, 9).Value
''''''DISTINGUIAMO I DUE CASI: SE CI SONO RABBOCCHI OPPURE NO
Select Case True
Case RigaUltimoRabbocco = 1
Select Case UltimoKm
Case 0 To 9999
NextChange = 10000
costante = 10000
Case 10000 To 19999
NextChange = 20000
costante = 20000
Case 20000 To 29999
NextChange = 30000
costante = 30000
Case 30000 To 39999
NextChange = 40000
costante = 40000
Case 40000 To 49999
NextChange = 50000
costante = 50000
Case 50000 To 59999
NextChange = 60000
costante = 60000
Case 60000 To 69999
NextChange = 70000
costante = 70000
Case 70000 To 79999
NextChange = 80000
costante = 80000
Case 80000 To 89999
NextChange = 90000
costante = 90000
Case 90000 To 99999
NextChange = 100000
costante = 100000
End Select
Case RigaUltimoRabbocco > 1
NextChange = Costante1 + 10000
End Select
If UltimaRiga <> 1 Then
msg = msg & "prossimo controllo livello olio, " & vbCrLf
msg = msg & "previsto per km " & Format(NextChange & vbCrLf, "#,##0") & vbCrLf
msg = msg & "mancano km " & Format(NextChange - UltimoKm, "#,##0")
MsgBox msg, , "controllo livello olio"
Else
Exit Sub
End If
Exit Sub
GestioneErrori:
MsgBox "La seconda riga è vuota"
Exit Sub
End Sub