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: 4223
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
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13891
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 e 17 ospiti