Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Convertire Numero inserito come testo

565 views
Skip to first unread message

Ricky

unread,
Nov 19, 2009, 9:00:07 AM11/19/09
to

Ciao,

in una colonna contenente dei codici numerici (esempio:
332998000211569)
tutte le celle hanno la "linguetta" verde che rimanda al messaggio
"Numero archiviato come testo".
Ogni volta devo selezionare tutte le celle, cliccare sulla prima
linguetta verde e selezionare "Converti in numero".

Ho seguito le indicazioni riportate da Mauro nel post "Convertire
numeri inseriti come campi di testo in campi numero" ma non ottengo il
risultato voluto.

La differenza del mio caso rispetto a quello del post, è che i codici
presenti nelle celle
non sono preceduti dall'apostrofo.

Se può tornare utile, il file che utilizzo è generato da un
applicativo aziendale
che lo salva come tipo "Web Page (*.htm;*html)"
Prima di lavorarci lo salvo come xls.

Buona giornata
Ricky

Mauro Gamberini

unread,
Nov 19, 2009, 9:19:32 AM11/19/09
to
Seleziona la colonna ed esegui una
volta sola l'operazione con la *liguetta verde*.

Ho seguito le indicazioni riportate da Mauro nel post "Convertire
numeri inseriti come campi di testo in campi numero" ma non ottengo il
risultato voluto.
************************************

Gentilmente, il link, grazie.


La differenza del mio caso rispetto a quello del post, � che i codici


presenti nelle celle
non sono preceduti dall'apostrofo.

******************************
Capito pochissimo.

A1: 1234567 formattato come testo.
B1: A1*1
Seleziona B1
Copia
Incolla speciale
Seleziona: Valori
Ok

Se invece � di importazione dati che stiamo
parlando, mentre importi una colonna
puoi dichiarare il tipo di dati che devi
visualizzare.

--
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://www.maurogsc.eu/
http://social.microsoft.com/Forums/it-IT/officeit/threads

Ricky

unread,
Nov 19, 2009, 10:00:36 AM11/19/09
to
On 19 Nov, 15:19, "Mauro Gamberini"

<maurogscRIMUOV...@RIMUOVEREaliceposta.it> wrote:
> Seleziona la colonna ed esegui una
> volta sola l'operazione con la *liguetta verde*.
> Ho seguito le indicazioni riportate da Mauro nel post "Convertire
> numeri inseriti come campi di testo in campi numero" ma non ottengo il
> risultato voluto.
> ************************************
>
> Gentilmente, il link, grazie.

queesto è il link:

http://groups.google.it/group/microsoft.public.it.office.excel/browse_thread/thread/95ff81cd5f9bc557/bf8e906ca905fb4c?hl=it&lnk=gst&q=Convertire+numeri+inseriti+come+campi+di+testo+in+campi+numero#bf8e906ca905fb4c


> A1: 1234567 formattato come testo.
> B1: A1*1
> Seleziona B1
> Copia
> Incolla speciale
> Seleziona: Valori
> Ok


Tenendo presente il tu o suggerimento, ho creato questa semplica ma
effiace macro:


Public Sub ConvertiInNumero()

Sheet1.Select

'Nella colonna A i numeri archiviati come Testo

'Inserisco nella colonna B la formula per moltiplicare x 1 i valori
della colonna A
For i = 2 To 10
Cells(i, 2).FormulaR1C1 = "=RC[-1]*1"
Next i

'Incollo nella colonna B i valori delle formule

Columns("B:B").Select
Selection.Copy
Columns("A:A").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Columns("B:B").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft

'Metto il formato desiderato alla colonna A
Columns("A:A").Select
Selection.NumberFormat = "0"

'Elimino la colonna B
Columns("B:B").Select
Selection.Delete Shift:=xlToLeft

End Sub


> Se invece è di importazione dati che stiamo


> parlando, mentre importi una colonna
> puoi dichiarare il tipo di dati che devi
> visualizzare.

Non ho la possibilità di modificare il formato delle colonne del file
che esporto da sistema.

Visto che non riesco a spiegare in altro modo come è fatto il file
originale,
volevo chiederti se posso girarti un esempio con 2 righe di dati,
per vedere come poter risolvere in maniera meno macchinosa il problema
(e per imparare qualcosa di nuovo...)

In ogni caso hai risolto il mio problema
Grazie per il prezioso aiuto
Ricky

r

unread,
Nov 19, 2009, 5:36:18 PM11/19/09
to
On 19 Nov, 16:00, Ricky <rickyi...@libero.it> wrote:
> On 19 Nov, 15:19, "Mauro Gamberini"
>
> <maurogscRIMUOV...@RIMUOVEREaliceposta.it> wrote:
> > Seleziona la colonna ed esegui una
> > volta sola l'operazione con la *liguetta verde*.
> > Ho seguito le indicazioni riportate da Mauro nel post "Convertire
> > numeri inseriti come campi di testo in campi numero" ma non ottengo il
> > risultato voluto.
> > ************************************
>
> > Gentilmente, il link, grazie.
>
> queesto è il link:
>
> http://groups.google.it/group/microsoft.public.it.office.excel/browse...

ciao ricky
prova questa un po' più corta agisce sulla selezione:
Sub numeri_testo()
If TypeOf Selection Is Range Then
Selection.Value = Selection.Value
End If
End Sub


saluti
r

--
Come e dove incollare il codice:
http://www.rondebruin.nl/code.htm

Le mie case nel web:
http://excelvba.altervista.org/blog/index.php/Table/Excel-VBA/

http://r-mensa.blogspot.com/

Mauro Gamberini

unread,
Nov 20, 2009, 3:04:09 AM11/20/09
to
<cut>

Visto che non riesco a spiegare in altro modo come � fatto il file


originale,
volevo chiederti se posso girarti un esempio con 2 righe di dati,
per vedere come poter risolvere in maniera meno macchinosa il problema
(e per imparare qualcosa di nuovo...)

In ogni caso hai risolto il mio problema
Grazie per il prezioso aiuto

********************************************

Grazie ate per il riscontro.

Per il file, puoi condividerlo
su uno dei tanti siti che lo permettono,
cos� tutti possono, volendo,
scaricarlo e intervenire nella
discussione. Grazie.

Select � male.
Perde tempo ed � inutile.
Oltre al suggerimento di Roberto,
prova questo(qui per la colonna B,
del Foglio1,sai tu qual'� la tua
colonna ed il tuo foglio):

Public Sub m()

'dichiaro le variabili
Dim wk As Workbook
Dim sh As Worksheet

'metto un riferimento al Workbook
'che contiene la macro
Set wk = ThisWorkbook
With wk
'metto un riferimento al Foglio1
'(in questo caso specifico Foglio1
'dove voglio operare)
Set sh = .Worksheets("Foglio1")
End With

With sh
.Range("B:B").Value = .Range("B:B").Value
.Range("B:B").NumberFormat = "General"
End With

'Set a Nothing delle variabili oggetto
Set sh = Nothing
Set wk = Nothing

End Sub

Qui:
.Range("B:B").NumberFormat = "General"

puoi sostituire eventualmente con una
formattazione a tua scelta. Due esempi:

.Range("B:B").NumberFormat = "#,##0.00"
.Range("B:B").NumberFormat = _
"_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"

rispettivamente:
numero con separatori di migliaia e decimali
contabilit� con simbolo dell'Euro


Non ho la possibilit� di modificare il formato delle colonne del file
che esporto da sistema.
**************************************

Io ho scritto di importazione.
E' come *carichi* il file, non
cosa c'� nel file.

Ricky

unread,
Nov 20, 2009, 8:17:12 AM11/20/09
to

r ha scritto:


> On 19 Nov, 16:00, Ricky <rickyi...@libero.it> wrote:
> > On 19 Nov, 15:19, "Mauro Gamberini"

> ciao ricky


> prova questa un po' più corta agisce sulla selezione:
> Sub numeri_testo()
> If TypeOf Selection Is Range Then
> Selection.Value = Selection.Value
> End If
> End Sub
>

Ciao Roberto,

il risultato della macro è nullo.
E' ormai certo che tutto dipende dal formato dei codici che devo
trasformare!

Grazie per l'aiuto che tornerà utile in casi più tradizionali

Ricky

Ricky

unread,
Nov 20, 2009, 8:42:11 AM11/20/09
to
On 20 Nov, 09:04, "Mauro Gamberini"
<maurogscRIMUOV...@RIMUOVEREaliceposta.it> wrote:
> <cut>

>     With sh
>         .Range("B:B").Value = .Range("B:B").Value
>         .Range("B:B").NumberFormat = "General"
>     End With
>
>     'Set a Nothing delle variabili oggetto
>     Set sh = Nothing
>     Set wk = Nothing

grazie per il suggerimento.
L'ho modificato in questo modo:

nr = Sheet1.Range("A65536").End(xlUp).Row

With sh

.Range(Cells(2, 2), Cells(10, 2)).Value = .Range(Cells(2, 2),
Cells(10, 2)).Value

.Range(Cells(2, 1), Cells(10, 1)).Value = .Range(Cells(2, 2),
Cells(10, 2)).Value

.Range(Cells(2, 1), Cells(10, 1)).NumberFormat = "0"

'Cancello la colonna d'appoggio
.Columns(2).Delete

End With


Ricky

Mauro Gamberini

unread,
Nov 20, 2009, 9:07:40 AM11/20/09
to
grazie per il suggerimento.
L'ho modificato in questo modo:
***********************

<cut>

Mi sfugge qualcosa.
Non servono colonne d'appoggio.
Il codice che ho postato io,
prende quanto hai in colonna B
e(in pratica) ricopia sulla stessa
colonna il valore.
Se(se) � la colonna A dove hai
i numeri/testo, fai l'operazione
su quella colonna. Ripeto, non servono
colonne d'appoggio.
E' una specie di copia/incolla su se
stessa della colonna.

Se(se) non hai altri dati in quella colonna,
� inutile trovare l'ultima riga con un valore.

r

unread,
Nov 20, 2009, 5:26:11 PM11/20/09
to

evidentemente quindi le celle sono formattate come testo ... quindi
prova:

Sub numeri_testo()
Selection.NumberFormat = "General"


If TypeOf Selection Is Range Then
Selection.Value = Selection.Value
End If
End Sub

saluti

0 new messages