Discussione:
Variare automaticamente valori numerici nelle celle
(troppo vecchio per rispondere)
cristiano
2005-08-08 08:26:00 UTC
Permalink
Ciao,

devo importare in excel dei files txt contenenti testo e numeri. Alcuni
numeri sono negativi e, nel file txt d'origine, il segno meno è posto
dopo il numero e non prima. Si tratta di numeri indicanti valuta in
euro.
Importando il file txt in excel i numeri negativi cambiano, credo
proprio a causa del segno alla fine.
Credo quindi sia necessario cambiare la posizione del segno meno e
portarlo all'inizio del numero. C'è la possibilità di farlo
automaticamente nel file txt oppure nel file excel (importando i dati
numerici come testo in modo che il numero non venga variato)?

Ciao e grazie a chi cercherà di aiutarmi.

Cristiano
Cesare Trabalzini
2005-08-08 08:48:54 UTC
Permalink
Post by cristiano
Ciao,
devo importare in excel dei files txt contenenti testo e numeri. Alcuni
numeri sono negativi e, nel file txt d'origine, il segno meno è posto
dopo il numero e non prima. Si tratta di numeri indicanti valuta in
euro.
Importando il file txt in excel i numeri negativi cambiano, credo
proprio a causa del segno alla fine.
Credo quindi sia necessario cambiare la posizione del segno meno e
portarlo all'inizio del numero. C'è la possibilità di farlo
automaticamente nel file txt oppure nel file excel (importando i dati
numerici come testo in modo che il numero non venga variato)?
Ciao e grazie a chi cercherà di aiutarmi.
Cristiano
Ciao Cristiano,
io non ho capito come li vuoi su excel... esattamente come sono sul file di
testo?
nel caso credo sia sufficiente definire il formato testo di quel campo nel
wizard di importazione.
diversamente puoi postare 2/3 righe di come sono sul txt e di cosa vorresti
dopo l'importazione... esempio
txt:
?100,00
pippo
?50,00-
pluto
in excel cosa ?

Ciao, Cesare
cristiano
2005-08-08 09:13:47 UTC
Permalink
Post by Cesare Trabalzini
Ciao Cristiano,
Ciao Cesare, grazie per la risposta
Post by Cesare Trabalzini
io non ho capito come li vuoi su excel... esattamente come sono sul file di
testo?
nel file txt ci sono, ad esempio, delle righe del genere:
72.90- 72.90- 3.65-
250.00- 250.00- 12.50-
3,750.00- 3,753.49- 187.50-

Importandole in excel vorrei che figurassero in questo modo, ovviamente
ogni valore in una sua cella:
-72.90 -72.90 -3.65
-250.00 -250.00 -12.50
-3,750.00 -3,753.49 -187.50

Se le importo semplicemente come sono (col segno meno alla fine) i
numeri "sballano" e non rimangono quelli originari, quindi non posso
poi usare delle formule (principalmente somma tra numeri positivi e
negativi).

Ciao

Cristiano
Cesare Trabalzini
2005-08-08 10:07:42 UTC
Permalink
Post by cristiano
Post by Cesare Trabalzini
Ciao Cristiano,
Ciao Cesare, grazie per la risposta
io non ho capito come li vuoi su excel... esattamente come sono sul file di
Post by Cesare Trabalzini
testo?
72.90- 72.90- 3.65-
250.00- 250.00- 12.50-
3,750.00- 3,753.49- 187.50-
Importandole in excel vorrei che figurassero in questo modo, ovviamente
-72.90 -72.90 -3.65
-250.00 -250.00 -12.50
-3,750.00 -3,753.49 -187.50
Se le importo semplicemente come sono (col segno meno alla fine) i
numeri "sballano" e non rimangono quelli originari, quindi non posso
poi usare delle formule (principalmente somma tra numeri positivi e
negativi).
Ciao
Cristiano
Ciao Cristiano
un bel problemino !!!
credevo che si potesse risolvere invertendo i separatori migliaia e decimali
sulle avanzate dell'importazione (cosa che comunque ti invito a vedere), ma
non è così.... anche a me fa casino importa della date etc etc. Pertanto non
mi viene in mente altra soluzione (spero però che qualcuno ne abbia una
migliore) che non sia quella di utilizzare una macro per trasformare questi
valori in numeri leggibili.
In pratica...
Importi tutto con formato testo...poi selezioni l'intervallo che hai
importato e fai girare questa macro:

Public Sub numeri()
For Each c In Selection
c.Value = Replace(c, ",", "")
c.Value = Replace(c, ".", ",")
If Right(c, 1) = "-" Then c.Value = "-" & Left(c, Len(c) - 1)
c.Value = c * 1
Next
End Sub

è fatta velocemente perchè non conosco se il risultato ottenuto ti puo'
andare bene.
tieni conto che se questa è una strada per te valida dobbiamo modificarla
anche perchè se la facciamo girare 2 volte perdiamo i decimali.
sai come far girare una macro ?
beh....fammi sapere !
Cesare
cristiano
2005-08-08 11:22:47 UTC
Permalink
Ciao Cesare,

ti ringrazio per l'aiuto. Ora non posso provare la macro perchè devo
uscire. Più tardi vedo di lavorarci un pò e ti faccio sapere.

Ciaoe grazie ancora
Cristiano
2005-08-08 11:24:34 UTC
Permalink
Post by Cesare Trabalzini
[...]
c.Value = c * 1
A che serve quella riga? A me funziona anche senza.

Cristiano
Cesare Trabalzini
2005-08-08 11:42:09 UTC
Permalink
Post by Cristiano
Post by Cesare Trabalzini
[...]
c.Value = c * 1
A che serve quella riga? A me funziona anche senza.
Cristiano
Sicuro?... poi li sommi?
a me no... perciò devo moltiplicare la stringa (c) * 1 per fargli capire
che voglio un numero.... comunque aspetta che la routine è megli farla agire
direttamente sul file di testo.... conosci (fammi sapere) la dimensione
(numero dei caratteri di ogni colonna) sul file di testo !
....un panino + 10 minuti e te la passo
Cesare
Cesare Trabalzini
2005-08-08 12:18:02 UTC
Permalink
Post by Cesare Trabalzini
Post by Cristiano
Post by Cesare Trabalzini
[...]
c.Value = c * 1
A che serve quella riga? A me funziona anche senza.
Cristiano
Sicuro?... poi li sommi?
a me no... perciò devo moltiplicare la stringa (c) * 1 per fargli capire
che voglio un numero.... comunque aspetta che la routine è megli farla agire
direttamente sul file di testo.... conosci (fammi sapere) la dimensione
(numero dei caratteri di ogni colonna) sul file di testo !
....un panino + 10 minuti e te la passo
Cesare
Anzi, dopo il panino sono arrivato alla conclusione che è sufficiente che ti
registri una macro mentre esegui l'operazione del caricamento dei dati....
in fondo a quella macro incolli questo:

For Each c In Range("a1").CurrentRegion
c.Value = Replace(c, ",", "")
c.Value = Replace(c, ".", ",")
If Right(c, 1) = "-" Then c.Value = "-" & Left(c, Len(c) - 1)
c.Value = c * 1
Next

supponendo che li metti a partire da A1

Ciao
Cristiano
2005-08-08 14:50:22 UTC
Permalink
[...] conosci (fammi
sapere) la dimensione (numero dei caratteri di ogni colonna) sul file
di testo !
Mi sa che mi hai preso per l'altro Cristiano (siamo due omonimi). :-)

Cristiano
Cesare Trabalzini
2005-08-08 15:17:22 UTC
Permalink
Post by Cristiano
[...] conosci (fammi
sapere) la dimensione (numero dei caratteri di ogni colonna) sul file
di testo !
Mi sa che mi hai preso per l'altro Cristiano (siamo due omonimi). :-)
Cristiano
Ciao
eh si... ti avevo preso proprio per l'altro *cristiano*.... ti giuro però
che vi somigliate in un modo veramente incredibile....tu sei solo
leggermente più alto :)
quindi tu sei il *Cristiano* che può evitare la riga "c.value * 1" me lo
confermi ?
un saluto, Cesare
eliano
2005-08-08 15:57:31 UTC
Permalink
Post by Cesare Trabalzini
quindi tu sei il *Cristiano* che può evitare la riga "c.value * 1" me lo
confermi ?
un saluto, Cesare
Ciao Cesare, ciao Ccristiani. Siamo tutti cristiani !
Personalmente ce lo lascerei, comunque potrebbe essere:

Sub negativi()
Dim c As Range

For Each c In Range("b1").CurrentRegion
c.Value = Replace(c, ",", "")
c.Value = Replace(c, ".", ",")
If Right(c, 1) = "-" Then c.Value = "-" & Left(c, Len(c) - 1)
'c.Value = c * 1
Next
Range("b1").CurrentRegion.Select
Selection.NumberFormat = "#,##0.00_ ;[Red]-#,##0.00 "
End Sub

Pace e Bene.
Eliano
eliano
2005-08-08 16:01:06 UTC
Permalink
"Cesare Trabalzini" ha scritto:

[cut]
Urca, dimenticavo.
Il range parte da B1, in A ipotizzo un codice da non trattare.
Saluti
Eliano
Cesare Trabalzini
2005-08-08 17:24:37 UTC
Permalink
Post by eliano
[cut]
Urca, dimenticavo.
Il range parte da B1, in A ipotizzo un codice da non trattare.
e perchè?.... siamo andati con currentregion... lo tratti lo stesso!
Post by eliano
Saluti
Eliano
comunque ottima idea quella di applicargli direttamente il formato.... direi
*amen* per non andare OT :)
Cesare
eliano
2005-08-09 13:19:04 UTC
Permalink
Post by Cesare Trabalzini
e perchè?.... siamo andati con currentregion... lo tratti lo stesso!
Ciao Cesare.
Come non detto, scusa la cazzata.
Saluti
Eliano
Cesare Trabalzini
2005-08-09 13:39:15 UTC
Permalink
Post by eliano
Post by Cesare Trabalzini
e perchè?.... siamo andati con currentregion... lo tratti lo stesso!
Ciao Cesare.
Come non detto, scusa la cazzata.
Saluti
Eliano
Ciao Eliano.... ma figurati... con quante ne dico io :))
Cesare

Cristiano
2005-08-08 16:08:08 UTC
Permalink
Post by Cesare Trabalzini
Post by Cristiano
[...] conosci (fammi
sapere) la dimensione (numero dei caratteri di ogni colonna) sul
file di testo !
Mi sa che mi hai preso per l'altro Cristiano (siamo due omonimi). :-)
Cristiano
Ciao
eh si... ti avevo preso proprio per l'altro *cristiano*.... ti giuro
però che vi somigliate in un modo veramente incredibile....tu sei solo
leggermente più alto :)
Sì, sì, ce lo dicono tutti. :-)
Post by Cesare Trabalzini
quindi tu sei il *Cristiano* che può evitare la riga "c.value * 1"
me lo confermi ?
Sono io quel Cristiano, ma è come dici tu; è che non avevo fatto la prova
della somma.

Cristiano
Cesare Trabalzini
2005-08-08 17:25:39 UTC
Permalink
Post by Cristiano
Sono io quel Cristiano, ma è come dici tu; è che non avevo fatto la prova
della somma.
Cristiano
Ok, grazie per la conferma!
Ciao, Cesare
Maurizio Borrelli
2005-08-08 13:20:27 UTC
Permalink
"cristiano" ha scritto nel messaggio news:***@g14g2000cwa.googlegroups.com...
devo importare in excel dei files txt contenenti testo e numeri. Alcuni
numeri sono negativi e, nel file txt d'origine, il segno meno è posto
dopo il numero e non prima. Si tratta di numeri indicanti valuta in
euro.
Importando il file txt in excel i numeri negativi cambiano, credo
proprio a causa del segno alla fine.
Credo quindi sia necessario cambiare la posizione del segno meno e
portarlo all'inizio del numero. C'è la possibilità di farlo
automaticamente nel file txt oppure nel file excel (importando i dati
numerici come testo in modo che il numero non venga variato)?

RISPOSTA:

Ciao, Cristiano.

Importazione guidata testo - Passaggio 3 di 3
[ Avanzate... ]
[_] Segno meno prima dei numeri negativi
--
(Facci sapere se ed eventualmente come hai risolto. Grazie.)

Ciao :o)
Maurizio Borrelli, Microsoft Office Access MVP
--------
?SPQR(C)
X
--------
Tiziano Marmiroli
2005-08-08 14:26:39 UTC
Permalink
Post by cristiano
devo importare in excel dei files txt contenenti testo e numeri. Alcuni
numeri sono negativi e, nel file txt d'origine, il segno meno è posto
dopo il numero e non prima. Si tratta di numeri indicanti valuta in
euro.
Importando il file txt in excel i numeri negativi cambiano, credo
proprio a causa del segno alla fine.
Ciao, Cristiano.
Importazione guidata testo - Passaggio 3 di 3
[ Avanzate... ]
[_] Segno meno prima dei numeri negativi
Qui non sortisce l'effetto sperato.
--
Tiziano Marmiroli
Microsoft MVP - Office System
Maurizio Borrelli
2005-08-08 19:18:16 UTC
Permalink
Post by Tiziano Marmiroli
Post by Maurizio Borrelli
Importazione guidata testo - Passaggio 3 di 3
[ Avanzate... ]
[_] Segno meno prima dei numeri negativi
Qui non sortisce l'effetto sperato.
Ciao, Tiziano.

Mea culpa. Dimentico sempre che quel wizard e' una delle piu' squallide
creazioni dell'uomo moderno.
--
Ciao :o)
Maurizio Borrelli, Microsoft Office Access MVP
--------
?SPQR(C)
X
--------
Tiziano Marmiroli
2005-08-08 22:36:07 UTC
Permalink
Post by cristiano
Ciao,
devo importare in excel dei files txt contenenti testo e numeri. Alcuni
numeri sono negativi e, nel file txt d'origine, il segno meno è posto
dopo il numero e non prima. Si tratta di numeri indicanti valuta in
euro.
Importando il file txt in excel i numeri negativi cambiano, credo
proprio a causa del segno alla fine.
Credo quindi sia necessario cambiare la posizione del segno meno e
portarlo all'inizio del numero. C'è la possibilità di farlo
automaticamente nel file txt oppure nel file excel (importando i dati
numerici come testo in modo che il numero non venga variato)?
In un caso del genere io preferirei intervenire sul file txt.
Puoi aprirlo, ad esempio, con PSPad (freeware, www.pspad.com)

Quindi menu Ricerca>Sostituisci

Trova: ([\d]*\S?[\d]*\S?[\d]*[.][\d]+)[-]
Sostituisci: -$1

[x] Espressione regolare



Facci sapere se e come hai risolto, grazie.
--
Tiziano Marmiroli
Microsoft MVP - Office System
fernando cinquegrani
2005-08-09 04:49:16 UTC
Permalink
Post by Tiziano Marmiroli
In un caso del genere io preferirei intervenire sul file txt.
Puoi aprirlo, ad esempio, con PSPad (freeware, www.pspad.com)
Quindi menu Ricerca>Sostituisci
Trova: ([\d]*\S?[\d]*\S?[\d]*[.][\d]+)[-]
Sostituisci: -$1
[x] Espressione regolare
mi sembra la giusta strada.
ma si può intervenire anche direttamente in excel
utilizzando una funzione utente del tipo

Public Function converti(textstr As String) As String
Dim re As Object
Set re = CreateObject("VBScript.RegExp")
re.Pattern = "([\d]*\S?[\d]*\S?[\d]*[.][\d]+)[-]"
re.IgnoreCase = True
re.Global = True
converti = re.Replace(textstr, "-$1")
Set re = Nothing
End Function

e, successivamente,
il dati :: testo in colonne
.f
Continua a leggere su narkive:
Loading...