Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] Eliminare spazi iniziali in una cella

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

[Excel] Eliminare spazi iniziali in una cella

Postdi slytry » 20/03/06 11:14

Salve a tutti.
Avrei bisogno di risolvere un problema.
Dopo aver copiato ed incollato in excel da un foglio di intenet una serie di numeri e tempi, vorrei sommare in excel i numeri e i tempi copiati.
L'operazione mi risulta impossibile perchè in tutte le celle ogni numero è preceduto da uno spazio e ogni tempo seguito da uno spazio, ciò che impedisce l'applicazione di qualunque formula sui dati importati.
Invece di eliminare materialmente gli spazi da ciascuna cella - operazione quantomai faticosa, trattandosi di decine di celle - è possibile eliminare con una funzione (tipo "trova sostituisci" o simili) tutti gli spazi contemporaneamente?
Grazie per l'aiuto...
slytry
Newbie
 
Post: 4
Iscritto il: 20/03/06 11:04

Sponsor
 

Postdi Alexsandra » 20/03/06 11:49

Clicca su ALT+F11 ed entri nel compilatore VBA inserisci un nuovo modulo copia questo codice
Codice: Seleziona tutto
Sub ToglieSpazi()
Dim MioValore
Dim X As String, CL As Object
Range("A1").End(xlDown).Offset(1, 0).Select
Riga = ActiveCell.Row   ' trova l'ultima riga della tabella
For Colonna = 1 To 5 ' fà un ciclo su 5 colonne
Set MioIntervallo = Range((Cells(1, Colonna)), (Cells(Riga, Colonna)))        'trovo l'intervallo di celle
For Each CL In MioIntervallo
A1 = Trim(CL)   ' tolgo gli spazi all'inizio ed alla fine della stringa
CL.Value = A1   ' sostituisce la vecchia stringa con la nuova
Next CL
Next Colonna
End Sub


Ovviamente devi sostituire i valori che ho messo io con quelli del tuo foglio (A1) io ho ipotizzato che sia la tua cella di partenza e ho messo 5 colonne in cui cercare
TRIM toglie gli spazi iniziali e finali di una stringa se hai altre necessità puoi sostituire il comando TRIM nel codice con

LTrim = toglie gli spazi iniziali
RTrim = toglie gli spazi finali
- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale.

Win7 + Office 2003 Ita
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi slytry » 20/03/06 12:27

Innanzitutto grazie per l'aiuto.
Tieni presente, però, che, essendo una nullità nel VBA non sono riuscito a farlo funzionare.
Per esempio, nel mio caso ho 9 colonne e 220 righe, di cui la prima di intestazione.
L'operazione dovrebbe riferirsi alle ultime due colonne di tutte le righe.
Dunque, H2 e I2; H3 e I3, etc. fino a H220 e I220.
Cosa devo modificare nel testo della macro, rispetto al tuo?
slytry
Newbie
 
Post: 4
Iscritto il: 20/03/06 11:04

Postdi Alexsandra » 20/03/06 14:13

Copia questo codice in VB
Codice: Seleziona tutto
Sub ToglieSpazi()
Dim MioValore
Dim X As String, CL As Object
Range("H2").End(xlDown).Offset(0, 1).Select
Riga = ActiveCell.Row   ' trova l'ultima riga della tabella
For Colonna = 8 To 9 ' fà un ciclo su 2 colonne
Set MioIntervallo = Range((Cells(2, Colonna)), (Cells(Riga, Colonna)))        'trovo l'intervallo di celle
For Each CL In MioIntervallo
A1 = Trim(CL)   ' tolgo gli spazi all'inizio ed alla fine della stringa
CL.Value = A1   ' sostituisce la vecchia stringa con la nuova
Next CL
Next Colonna
End Sub

Ti toglie gli spazi nelle colonne H e I la lunghezza della tabella se la calcola lui l'ho provato e funziona
- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale.

Win7 + Office 2003 Ita
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi cassioli » 20/03/06 15:11

ma.... se selezioni tutto il foglio (o le colonne/celle che servono), selezioni il menu SOSTITUISCI, e scrivi uno spazio nella casella sopra e niente nella casella sotto? :-?
cassioli
Utente Senior
 
Post: 1014
Iscritto il: 05/03/04 11:02

Postdi Alexsandra » 20/03/06 15:48

cassioli ha scritto:ma.... se selezioni tutto il foglio (o le colonne/celle che servono), selezioni il menu SOSTITUISCI, e scrivi uno spazio nella casella sopra e niente nella casella sotto? :-?

Ma dove sei andato a pescarlo ????? :P ......Funziona,questa non la sapevo. Ho riportato in VB il tuo suggerimento col registratore di macro
Codice: Seleziona tutto
Sub Macro1()
    Range("C2:D33").Select
    Selection.Replace What:="  ", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub
però in VB se metti 5 spazi te ne toglie 4,mentre come hai detto tu te li toglie tutti.
Complimenti (c'è sempre da imparare a sto mondo)
- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale.

Win7 + Office 2003 Ita
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi slytry » 22/03/06 14:00

Purtroppo a me non funziona.
Nella cella di sopra della finestra SOSTITUISCI scrivo lo spazio con la barra; in quella di sotto non metto niente.
Mi dice "impossibile trovare una corrispondenza".
slytry
Newbie
 
Post: 4
Iscritto il: 20/03/06 11:04

Postdi cassioli » 22/03/06 14:06

slytry ha scritto:Purtroppo a me non funziona.
Nella cella di sopra della finestra SOSTITUISCI scrivo lo spazio con la barra; in quella di sotto non metto niente.
Mi dice "impossibile trovare una corrispondenza".

hai PRIMA selezionato le celle interessate?
Forse non è uno spazio ma un tab? Doppioclicca su una delle celle, seleziona e copia il carattere da cancellare, poi incollalo nella finestra TROVA e riprova.
cassioli
Utente Senior
 
Post: 1014
Iscritto il: 05/03/04 11:02

Postdi slytry » 22/03/06 14:13

Ho fatto pedissequamente quello che dici.
Niente.
Ho risolto solo copiando le colonne in word, utilizzando la funzione "trova sostituisci" (è uno spazio, non un tab) e riportando in excel.
Ma che stress...
slytry
Newbie
 
Post: 4
Iscritto il: 20/03/06 11:04

Postdi cassioli » 22/03/06 14:17

slytry ha scritto:Ho fatto pedissequamente quello che dici.
Niente.
Ho risolto solo copiando le colonne in word, utilizzando la funzione "trova sostituisci" (è uno spazio, non un tab) e riportando in excel.
Ma che stress...

Mah??? :eeh:
cassioli
Utente Senior
 
Post: 1014
Iscritto il: 05/03/04 11:02

Re: [Excel] Eliminare spazi iniziali in una cella

Postdi andreac81_ » 21/06/11 18:18

scusate la domanda sicuramente banale ma non sono esperto di macro.
Come posso fare per cancellare solo l'ultimo spazio di tutte le celle di due colonne?
Grazie.
andreac81_
Newbie
 
Post: 1
Iscritto il: 21/06/11 18:16

Re: [Excel] Eliminare spazi iniziali in una cella

Postdi ricky53 » 21/06/11 18:52

Ciao,
benvenuto nel forum.

Sarebbe stato meglio se tu avessi inserito una nuova discussione, comunque veniamo a noi.

Le tue celle contengono solo numeri ?
Se la risposta è "SI" la cosa è fattible anche senza macro.

Ipotizziamo che i tuoi dati siano nella colonna "A" da A2 in giù in una colonna a destra, es. la "E", in E2 scrivi
Codice: Seleziona tutto
=A2*1
, copi in basso, selezioni tutte le celle con dati della colonna "E", e con
copia,
incolla speciale,
valori
sostituisci i dati della colonna "A"
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4526
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Eliminare spazi iniziali in una cella

Postdi Avatar3 » 21/06/11 20:32

Leggi il post di Ricky
un'altra possibilità è questa, avendo in A2 e in B2 i dati con lo spazio solo a destra,
in C2 inserisci
Codice: Seleziona tutto
=SOSTITUISCI(A2;" ";;1)

trascini nella cella D2
poi trascini verso il basso

se non lo hai solo a destra ma anche altrove e vuoi eliminare lo spazio in fondo alla stringa
potresti usare questa
Codice: Seleziona tutto
=SINISTRA(A2;LUNGHEZZA(A2)-1)

che copi dove vuoi


Aggiungo una nota: Il titolo del topic parli di "spazi Iniziali" nel post invece dici
andreac81_ ha scritto:...Come posso fare per cancellare solo l'ultimo spazio di tutte le celle di due colonne?

La seconda formula da me postata cancella lo spazio a destra della stringa
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: [Excel] Eliminare spazi iniziali in una cella

Postdi Anthony47 » 21/06/11 23:13

In aggiunta ai metodi segnalati nei due post precedenti potresti anche usare Annulla.Spazi; per le caratteristiche della funzione e sintassi guarda l' help on line.
Se sono dati prelevati da tabelle su pagine web potrebbero esserci complicazioni, ma ne parleremo solo se queste complicazioni sono reali.

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


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Eliminare spazi iniziali in una cella":


Chi c’è in linea

Visitano il forum: Marius44, papiriof e 77 ospiti