Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Dati HTML con spazi vuoti

Ultimo Aggiornamento: 29/07/2015 12:09
Post: 44
Registrato il: 09/10/2013
Città: SIRACUSA
Età: 39
Utente Junior
Office 2019
OFFLINE
28/07/2015 01:24

Buonasera Dei,
ho un altro piccolo quesito da porvi :

un tre volte al giorno dovrei copiare una tabella da un sito di prodotti per incollarla ovviamente in un foglio excel.
il problema è chequesto sito riporta i valori in migliaia con uno spaziozio vuoto (es. 2 100 ancihé 2.100), e mi sono aiutato con =destra o =sinistra.....il problema mi si pone quanto questi valori sono più alti perchè come ad esempio un valore di 12 000 non riesco a ricavare il dato corretto. (allego un file per capirci meglio).

oltre a questo primo passo, mi si pone un altra problematica ovvero quando il valore del prodotto supera i 100.000 il valore è composto nel seguente modo Es."210,5K" (senza spazio ma con la "K" finale).

come potrei risolvere secondo voi?

ho provato con ANNULLA SPAZIE E LIBERA, ma non mi pare d'aver risolto.
la query non funziona e di altro non conosco!


[SM=x423023] [SM=x423024] [SM=x423046]
_________________________________________________________________
WIN 10 EXCEL 2019
(non excell/exchel/excellh/lesechel)
<---Hofinalmenteaggiustatolabarraspaziatrice--->
Post: 2.642
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Veteran
2013
OFFLINE
28/07/2015 08:37

In foglio collegamento cella B2=SE(DESTRA('tabella HTML'!B2;1)="K";SOSTITUISCI(SOSTITUISCI('tabella HTML'!B2;"K";"00");",";".");SOSTITUISCI('tabella HTML'!B2;CODICE(160);"."))
e trascini destra/basso
Excel 2013
Post: 4.426
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
28/07/2015 09:01

Spazi vuoti
Ciao, l'appellativo Dei non l'avevo ancora sentito, forse "DI DIO" e più vicino di noi a loro, scherzo, ed un saluto a Raffaele

ecco una soluzione con il VBA, questa la Macro

Sub numera()
Dim r, c, cl, rng, L1, L2, L3

r = Cells(Rows.Count, 1).End(xlUp).Row
Set rng = Range("B2:E" & r)

For Each cl In rng
    r = cl.Row
    c = cl.Column
    If cl <> 0 Then
        cl = Replace(cl, " ", "")
        cl = Replace(cl, " ", "")
        If cl Like "*" & "k" Then
            L1 = Len(cl)
            L2 = ""
            If Mid(cl, L1 - 2, 1) = "," Then
                L2 = Mid(cl, 1, L1 - 1)
                L3 = Right(L2, 2)
                L2 = Mid(L2, 1, L1 - 3)
                L2 = L2 & "000" & L3
            Else
                L2 = Mid(cl, 1, L1 - 1)
                L2 = L2 & "000"
            End If
        End If
        If L2 <> "" Then Cells(r, c) = CDbl(L2) Else Cells(r, c) = CDbl(cl)
    End If
Next cl

Set rng = Nothing
End Sub


allego anche il file

gli spazi che vedi non sono spazi, forse sono caratteri di html od altro, come infatti dalla macro te ne accorgi che sono di 2 tipi "Replace", non so se in un futuro ce ne saranno di più, per il momento ho riscontrato solo questi, nel caso da aggiustare la macro.

una volta caricato i dati premi il pulsante ed avrai i numeri convertiti.

Ciao By Sal [SM=x423051]

se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 44
Registrato il: 09/10/2013
Città: SIRACUSA
Età: 39
Utente Junior
Office 2019
OFFLINE
28/07/2015 18:00

Grazie a tutti e due intanto.
(SAL diciamo che non siamo tutti santi e via :) )

Raffaele : ho provato la formula che mi hai indicato ma riporta lo stesso identico valore nello stesso identico formato e quindi non funziona. possibile?


Sal : funziona egregiamente, come sempre, ma ho difficoltà grosse con il VBA. quindi se volessi sftuttare la macro in altri fogli e tabelle non so dove mettere mano (prima o poi mi ci dedicherò).
Non è che per caso puoi indicarmi una bella formulina magica così che posso lavorare da solo?

grazie come sempre [SM=x423064]
_________________________________________________________________
WIN 10 EXCEL 2019
(non excell/exchel/excellh/lesechel)
<---Hofinalmenteaggiustatolabarraspaziatrice--->
Post: 4.429
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
28/07/2015 21:33

Spazi vuoti
Ciao Ivano, non è difficile usare la macro per altre tabelle su altri fogli.

la macro è sempre la stessa basta posizionarsi sul foglio interessato e cambiare la riga

Set rng = Range("B2:E" & r)


che indica il range dove sono i numeri da convertire, nella riga dice prendi il range B2:E ultima riga occupata.

quindi ammettendo che l'elenco sia dalla A alla G, logicamente nella colonna A ci sono i nomi dei prodotti, quindi non interessa, quindi sostituisci la "E" con la "G" ed il gioco e fatto funziona fino alla lettera "G" o la lettera che vuoi, non devi modificare altro.

Ciao By Sal [SM=x423051]

se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 46
Registrato il: 09/10/2013
Città: SIRACUSA
Età: 39
Utente Junior
Office 2019
OFFLINE
28/07/2015 22:42

si si, avevo 'smanettato' subito dopo che mi hai inviato la macro e avevo capito....purtorppo sono veramente scarso in VBA e anche queste banalità per me sono ostacoli infiniti.

caso risolto come sempre! [SM=x423017]

ringrazio nuovamente anche a Raffaele per la disponibilità
_________________________________________________________________
WIN 10 EXCEL 2019
(non excell/exchel/excellh/lesechel)
<---Hofinalmenteaggiustatolabarraspaziatrice--->
Post: 2.643
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Veteran
2013
OFFLINE
29/07/2015 12:09

Ero convinto che sostituiva il carattere con un punto
Di sicuro ho bisogno solo di un paio d'occhiali (non vedere il punto su TV 40 pollici???)

Suggerisco comunque d'usare il VBA di By Sal
Comunque sono andato a vedere il motivo...
1) Ho errato il CODICE() con CODICE.CARATT()
2) in cella E11 c'è una K, OK era già fatto
3) ho notato in cella D11 che non c'è il carattere 160 mà il 32
Modificato la formula in B2=SE(DESTRA('tabella HTML'!B2;1)="K";SOSTITUISCI(SOSTITUISCI('tabella HTML'!B2;"K";"00");",";".");SE(STRINGA.ESTRAI('tabella HTML'!B2;4;1)=CODICE.CARATT(32);SOSTITUISCI('tabella HTML'!B2;CODICE.CARATT(32);".");SOSTITUISCI('tabella HTML'!B2;CODICE.CARATT(160);".")))
[Modificato da raffaele1953 29/07/2015 16:16]
Excel 2013
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 12:10. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com