|
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. | NEI PREFERITI | .:: | RSS Forum | RSS News | NEWS web | NEWS software | |
| PUBBLICITA' | | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | | CERCA nel FORUM » | |
21-02-2016, 12.05.12 | #16 |
Gold Member
WT Expert
Registrato: 23-06-2004
Loc.: Cagliari
Messaggi: 13.333
|
Rif: [excel] giustificare testo all'interno della cella
EDIT: notavo ora che Excel potrebbe non contemplare l'uso di espressioni regolari (RE) nella trova/sostituisci... O_o Vabbè... al di la dell'assurdità di questa mancanza, se queste RE non saltano fuori, vediamo alcune alternative: - Usando libreoffice/openoffice apri un nuovo foglio di Calc, ci incolli la colonna incriminata, esegui la sostituzione e riincolli la colonna corretta sul foglio excel. In alternativa anzichè libreoffice/openoffice, per una sola colonna per volta si può utilizzare qualsiasi blocco note avanzato, per esempio notepad++. - Usi la funzione di Excel "Sostituisci", che mi pare supporti le espressioni regolari. In questo caso hai bisogno di una colonna nuova come appoggio per effettuare l'operazione. Una volta fatta copi i valori nella colonna originale. - Usi uno script VBA che utilizzi l'oggetto RegExp e il metodo replace. Francamente mi sembra un'esagerazione per un'operazione banale come questa, ma tant'è... visto che funziona si potrebbe usare. La funzione somiglierebbe a qualcosa come questa: Codice:
Public Function RinuoviSpaziIniziali(PrimaCella As String, UltimaCella As String) Dim re As New RegExp re.Pattern = "^\s+" ' oppure "^[ \r\t\n\f]+" in RE standard "^[:space:]+" Set MioRange = ActiveSheet.Range(PrimaCella & ":" & UltimaCella) For Each cell In MioRange If re.Test(cell.Value) Then cell.Value = re.Replace(cell.value, "") End If Next cell End Function Codice:
RinuoviSpaziIniziali(B1,B100) oppure, utilizzando una cella, se non sbaglio si può scrivere: Codice:
=RinuoviSpaziIniziali(B1,B100)
___________________________________
La risposta è dentro di te... e però, è sbagliata! |
21-02-2016, 20.43.37 | #17 |
Hero Member
Registrato: 27-07-2004
Loc.: Bologna
Messaggi: 574
|
Rif: [excel] giustificare testo all'interno della cella
ho risolto facendo
Codice:
Sub RimuoviSpazioIniziale() Dim Rng As Range Dim WorkRng As Range On Error Resume Next xTitleId = "Selezionare l'area in cui applicare la macro" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8) For Each Rng In WorkRng Rng.Value = VBA.LTrim(Rng.Value) Next End Sub |
21-02-2016, 21.44.04 | #18 |
Gold Member
WT Expert
Registrato: 23-06-2004
Loc.: Cagliari
Messaggi: 13.333
|
Rif: [excel] giustificare testo all'interno della cella
In effetti una volta passati al VB, usare una funzione preconfezionata come trim era più semplice
Anche se in in realtà trim elimina gli spazi anche alla fine del testo, non solo all'inizio. Vabbè, stessa cosa alla fine. Piuttosto continua a sembrarmi assurdo l'assenza delle RE nel trova/sostituisci di Excel, per fare cosine di questo tipo è utilissimo. PS: hai provato qualcuna delle soluzioni che ti ho suggerito?
___________________________________
La risposta è dentro di te... e però, è sbagliata! |
22-02-2016, 00.36.14 | #19 |
Senior Member
WT Expert
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
|
Rif: [excel] giustificare testo all'interno della cella
No funziona invece ed è molto più pratico, era solo sbagliato il percorso di ricerca, bastava inserire lo spazio (premere barra spazio) nel campo "trova" e cliccare su sostituisci
___________________________________
- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale - |
22-02-2016, 02.49.26 | #20 |
Gold Member
WT Expert
Registrato: 23-06-2004
Loc.: Cagliari
Messaggi: 13.333
|
Rif: [excel] giustificare testo all'interno della cella
Non era sbagliato, l'espressione regolare era corretta.
Il problema a quanto pare è che Excel non supporta le RE nella ricerca, ma devi usare per forza il VB. Se inserisci solo lo spazio, come dici, elimini anche gli spazi interni al testo.
___________________________________
La risposta è dentro di te... e però, è sbagliata! |
22-02-2016, 03.08.38 | #21 |
Hero Member
Registrato: 27-07-2004
Loc.: Bologna
Messaggi: 574
|
Rif: [excel] giustificare testo all'interno della cella
premesso che non ho capito bene cosa sia questo RE, qlcn mi fa un esempio pratico?
perché mi interesserebbe visto che sembra essere + pratico pure... altra cosa, giusto per dovere di cronaca, se faccio non funge, dove sbaglio? EDIT: dovevo scrivere "ANNULLA.SPAZI" invece di "TRIM", ora funge... |
22-02-2016, 09.49.29 | #22 |
Gold Member
WT Expert
Registrato: 23-06-2004
Loc.: Cagliari
Messaggi: 13.333
|
Rif: [excel] giustificare testo all'interno della cella
Si, nella versione italiana di Excel le funzioni usate nel foglio vengono tradotte.
Stai provando quindi il secondo metodo che ti stavo suggerendo? (con il trim al posto del sostituisci) Le RE (Regular Expressions, o Espressioni Regolari in italiano) sono una notazione che consente di eseguire manipolazione di stringhe in modo semplice e veloce. Se sei interessato ti consiglio di cercare online qualche guida e cominciare aprovare, sono molti i programmi che le utilizzano (ti consiglio notepad++ che ne fornisce un supporto completo). Come sito di riferimento, ho trovato ben fatto questo.
___________________________________
La risposta è dentro di te... e però, è sbagliata! |
22-02-2016, 13.05.06 | #23 | |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
|
Rif: [excel] giustificare testo all'interno della cella
Quota:
L'utilizzo di '$' consente di acquisire il parametro come stringa e non come variant, quindi è più indicato per una questione di performances, anche se le prestazioni in VB lasciano a desiderare. Le Regular Expression sono utilissime quando è necessario verificare una maschera d'immissione prima dell'acquisiione di un dato, un po meno per effettuare operazioni di replace/remove. Le funzioni di Excel come quella che hai utilizzato, dovresti considerarle come una serie di funzioni elencate in un modulo VBA, però nascosto all'utente; Sfortuna vuole che non vengano tradotte nel corrispettivo del linguaggio del pacchetto in uso, se questo è differente, proprio perchè non presenti in quell'elenco nascosto.
___________________________________
Practice feeds Skill,Skill limits Failure,Failure enhances Security,Security needs Practice |
|
24-02-2016, 18.22.56 | #24 |
Hero Member
Registrato: 27-07-2004
Loc.: Bologna
Messaggi: 574
|
Rif: [excel] giustificare testo all'interno della cella
chiamatemi rompiscatole, visto che lo sono, ma ora ho questo problema:
1. vorrei togliere tutte le parentesi quadre con relativo contenuto (ad es. [4]) 2. vorrei togliere tutti i separatori di migliaia formato americano (quindi le virgole, 76,334 diventerebbe 76334) 3. vorrei sostituire i seperatori decimali punto formato usa in virgola formato italiano (12.82 diventerebbe quindi 12,82) per gli ultimi 2 punto potrei semplicemente utilizzare sostituisci ma volevo aprofittare del discorso marco... EDIT: 1. risolto facendo trova "[*]" e lasciando sostituisci vuoto ma mi chiedevo se c'era anche una macro per qst 2. e 3. analogamente con sostituisci ma mi chiedevo una macro può fare tutto? poi ho un altro problema, come faccio sempre con una macro a convertire tutto da formato generale a formato numero? perchè alcune righe non sono "normalizzate" allo stesso allineamento delle altre? |
24-02-2016, 19.34.16 | #25 |
Gold Member
WT Expert
Registrato: 23-06-2004
Loc.: Cagliari
Messaggi: 13.333
|
Rif: [excel] giustificare testo all'interno della cella
Il primo risultato si ottiene con facilità sempre con le espressioni regolari.
Cerca \[[0-9]+\]$ Sostituisci con... niente (stringa vuota) Da vedere poi se Excel ri conosce i valori come numeri, in caso contrario bisogna trasformarli (a mano elimini il carattere ' davanti alla cifra, con le MACRO forse c'è qualche funzione aposita o basta convertire il formato dati) Per i punti 2 e 3, ovviamente non puoi farli in questo ordine, altrimenti perdi il riferimento a dove inizia la parte decimale. La cosa più semplice da fare mi sembra quella di assegnare la localizzazione inglese al documento, in modo che utilizzi il separatore decimale tipico del mondo anglosassone (ossia il punto). Fai attenzione a modificare la localizzazione del solo documento, e non del programma. Una volta fatto tutte le cifre che ora non vengono riconosciute (nelle colonne C e D nell'immagine) dovrebbero spostarsi a destra (allineamento standard per i numeri).
___________________________________
La risposta è dentro di te... e però, è sbagliata! |
24-02-2016, 19.53.22 | #26 |
Hero Member
Registrato: 27-07-2004
Loc.: Bologna
Messaggi: 574
|
Rif: [excel] giustificare testo all'interno della cella
|
24-02-2016, 20.13.24 | #27 |
Gold Member
WT Expert
Registrato: 23-06-2004
Loc.: Cagliari
Messaggi: 13.333
|
Rif: [excel] giustificare testo all'interno della cella
Non avendo office sotto mano non so dirti come fare, ma sicuramente con una ricerchina in rete lo trovi subito.
Quale sarebbe esattamente il problema sotto?
___________________________________
La risposta è dentro di te... e però, è sbagliata! |
24-02-2016, 23.16.55 | #28 |
Hero Member
Registrato: 27-07-2004
Loc.: Bologna
Messaggi: 574
|
Rif: [excel] giustificare testo all'interno della cella
|
25-02-2016, 01.17.23 | #29 |
Gold Member
WT Expert
Registrato: 23-06-2004
Loc.: Cagliari
Messaggi: 13.333
|
Rif: [excel] giustificare testo all'interno della cella
...e io intendevo che guardando l'immagine non avevo capito a quale problema ti riferissi!
Di che si tratta esattamente?
___________________________________
La risposta è dentro di te... e però, è sbagliata! |
25-02-2016, 11.27.10 | #30 |
Senior Member
WT Expert
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
|
Rif: [excel] giustificare testo all'interno della cella
correggimi se sbaglio
la prima colonna con numeri (123, 76,334 etc..) è la N° 3 (C) ? in questa colonna vuoi togliere il carattere [4], togliere il separatore dei decimali (la virgola) e allineare a Dx nella colonna n° 4 (12.82, 7.74 etc..) vuoi cambiare separatore dei decimali dal punto alla virgola e allineare a Dx nella colonna n° 5 (89.82, 238.53 etc..) ..... stesse operazioni della n° 4 PS: ho notato però che nella colonna n° 3 mi sembra che ci sia un carattere di separazione strano, è l'apostrofo???
___________________________________
- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale - |
Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti) | |
Strumenti discussione | |
|
|
Discussioni simili | ||||
Discussione | Autore discussione | Forum | Risposte | Ultimo messaggio |
Corso VBA | Alexsandra | Guide | 85 | 16-11-2016 12.11.51 |
Berlusca & Co. 2 - La vendetta | Paco | Chiacchiere in libertà | 1145 | 04-01-2005 21.28.18 |
Censurateli tutti allora! Non solo chi vi fa comodo :mad: | davlak | Chiacchiere in libertà | 52 | 20-05-2004 13.26.15 |