Telefonino.net network
 
| 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 » |

Torna indietro   WinTricks Forum > Software > Office suite

Notices

Rispondi
 
Strumenti discussione
Vecchio 25-02-2016, 11.33.47   #31
borgata
Gold Member
WT Expert
 
L'avatar di borgata
 
Registrato: 23-06-2004
Loc.: Cagliari
Messaggi: 13.333
borgata è un gioiello raroborgata è un gioiello raroborgata è un gioiello raroborgata è un gioiello raro
Rif: [excel] giustificare testo all'interno della cella

Si, pare abbia usato un apostrofo come separatore per le migliaia.
Bisogna però capire se si tratta di un carattere di formattazione su un dato numerico o un carattere normale su un dato stringa.
___________________________________

La risposta è dentro di te...
e però, è sbagliata!
borgata non è collegato   Rispondi citando
Vecchio 25-02-2016, 19.03.50   #32
gutguy
Hero Member
 
L'avatar di gutguy
 
Registrato: 27-07-2004
Loc.: Bologna
Messaggi: 574
gutguy promette bene
Rif: [excel] giustificare testo all'interno della cella

intanto grazie a tutti per il supporto, non sapete quanti dubbi mi state togliendo, vi ringrazio anche per la pazienza
non ho capito bene a cosa vi riferite negli ultimi due post, ci stiamo un po' rincorrendo...
detto ciò riformulo sperando di essere più chiaro stavolta

http://tinyurl.com/hx5v2ux

i dati li ho presi da un sito americano che evidentemente utilizza la propria formattazione, diversa dalla ns italiana (quindi punti al posto di virgole per i decimali ad. es.), visto che mi sembra un buon aproccio, prima di incollare i dati, chiedovo a borgata di dirmi come fare a cambiare la localizzazione della lingua solo per questo foglio
Quota:
Inviato da borgata Visualizza messaggio
assegnare la localizzazione inglese al documento
e non a tutto il programma excel

1. vorrei uniformare A1 a A2 (togliendo quindi l'hyperlink)
2. togliere tutte le parentesi quadre e loro contenuto (quindi B4 diventerebbe 1751868)
3. togliere tutti i segni di sepratore di migliaia americani, togliendo quindi le virgole dai numeri (B5 diventerebbe quindi 1396000)
4. convertire i separatori decimali americani da punti e virgola in stile italiano (quindi E1 diventa 343,43)
5. uniformare le posizioni decimali a 2 (E1 diventa 2323,50)
6. Togliere eventuale testo doppio (A3 diventa quindi China)
7. uniformare le miglialia (B16 è in realtà 454000)
8. uniformare gli allineamenti (C30 deve essere come C27)
9. togliere tutti gli spazi iniziali e finali nelle celle (ma qst già lo so fare ora)
gutguy non è collegato   Rispondi citando
Vecchio 25-02-2016, 19.56.40   #33
borgata
Gold Member
WT Expert
 
L'avatar di borgata
 
Registrato: 23-06-2004
Loc.: Cagliari
Messaggi: 13.333
borgata è un gioiello raroborgata è un gioiello raroborgata è un gioiello raroborgata è un gioiello raro
Rif: [excel] giustificare testo all'interno della cella

  • il punto 1 lo risolvi a mano, tanto il link è solo in A1
  • i punti 2 e 9 li sistemi con un'espressione regolare come dicevo prima
  • i punti 3-5 e 7 li risolvi creando adeguati stili di cella e localizzando il documento da en a it
  • il punto 6 è più complesso a va fatto programmaticamente (ma forse anche qui ce la caviamo con le espressioni regolari... devo vedere)
    EDIT: si, è fattibile con le espressioni regolari. Se le ripetizioni sono abbastanza semplici, come mi pare siano, puoi usare (\b\S+\b)\s+\b\1\b nel campo cerca e \1 nel campo sostituisci (se usi libreoffice/openoffice usa $1 al posto di \1 in sostituisci).
  • Il punto 8 è dovuto al fatto che in un caso il formato numerico viene risconosciuto, nell'altro no (e quindi viene trattato come stringa)
___________________________________

La risposta è dentro di te...
e però, è sbagliata!
borgata non è collegato   Rispondi citando
Vecchio 26-02-2016, 00.27.38   #34
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
Rif: [excel] giustificare testo all'interno della cella

prova con questa macro, manca ancora qualcosa, intanto vedi come va.

Codice:
Sub prova1()
Sheets("Foglio1").Activate
'togliere Hyperlinks
Cells.Hyperlinks.Delete
'togliere il carattere [4]
Columns(2).Replace What:="[*]", Replacement:=""
'allineare a Dx
Columns("B:E").HorizontalAlignment = xlRight
' formattazione generale
Columns("B:C").NumberFormat = "General"
' 2 decimali finali
Columns("E").NumberFormat = "0.00"
'cambiare il punto con le virgole
For Each cell In ActiveSheet.UsedRange
If InStr(1, cell.Text, ".") > 0 Then
cell.Value = CDbl(Val(cell.Text))
End If
Next
End Sub
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Vecchio 28-02-2016, 09.45.15   #35
gutguy
Hero Member
 
L'avatar di gutguy
 
Registrato: 27-07-2004
Loc.: Bologna
Messaggi: 574
gutguy promette bene
Rif: [excel] giustificare testo all'interno della cella

[QUOTE=Alexsandra;1708447]prova con questa macro, manca ancora qualcosa, intanto vedi come va.

va benissimo ti ringrazio tanto

questo è il risultato



l'ho messo in immagine perché nel sito sotto viene utilizzata la formattazione americana di default quindi il risultato è inatteso, in realtà nella mia vers ita di excel va benissimo

https://tinyurl.com/z2wnel7

China è rimasto doppio, ma certo non mi posso lamentare

ultima cosa, come faccio ad integrare se possibile il trim?

Quota:
Inviato da gutguy Visualizza messaggio

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
gutguy non è collegato   Rispondi citando
Vecchio 28-02-2016, 10.26.07   #36
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
Rif: [excel] giustificare testo all'interno della cella

Quota:
Inviato da gutguy Visualizza messaggio
China è rimasto doppio, ma certo non mi posso lamentare

ultima cosa, come faccio ad integrare se possibile il trim?
usa questo codice

Codice:
Sub prova1()
Sheets("Foglio1").Activate
'togliere Hyperlinks
Cells.Hyperlinks.Delete
'togliere il carattere [4]
Columns(2).Replace What:="[*]", Replacement:=""
'allineare a Dx
Columns("B:E").HorizontalAlignment = xlRight
' formattazione generale
Columns("B:C").NumberFormat = "General"
' 2 decimali finali
Columns("E").NumberFormat = "0.00"
'cambiare il punto con le virgole
For Each cell In ActiveSheet.UsedRange
If InStr(1, cell.Text, ".") > 0 Then
cell.Value = CDbl(Val(cell.Text))
'togliere gli spazi
Trim (cell.Text)
End If
Next
End Sub
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Vecchio 28-02-2016, 12.17.14   #37
gutguy
Hero Member
 
L'avatar di gutguy
 
Registrato: 27-07-2004
Loc.: Bologna
Messaggi: 574
gutguy promette bene
Rif: [excel] giustificare testo all'interno della cella

grazie mille...
chissà se Deleting Duplicate Text Values può essere d'aiuto

EDIT:
non vorrei sembrare un rompiscatole o colui che si approfitta degli altri, ma Finland dovrebbe essere 454'000 (o 454000 senza separatore migliaia) e non 454
mi sto già autoinfligido (anche se penso che qst parola non esista in ita essendo spagnolo) al momento
gutguy non è collegato   Rispondi citando
Vecchio 28-02-2016, 12.31.13   #38
borgata
Gold Member
WT Expert
 
L'avatar di borgata
 
Registrato: 23-06-2004
Loc.: Cagliari
Messaggi: 13.333
borgata è un gioiello raroborgata è un gioiello raroborgata è un gioiello raroborgata è un gioiello raro
Rif: [excel] giustificare testo all'interno della cella

Puoi sempre aggiungere alla macro l'espressione regolare che ti ho passato prima, che i duplicati di quel tipo dovrebbe eliminarli senza problemi.

Piuttosto non ho ben capito se ti serva una pulizia una tantum oppure una pulizia da eseguire ciclicamente, per esempio ogni volta che aggiorni i dati.
___________________________________

La risposta è dentro di te...
e però, è sbagliata!
borgata non è collegato   Rispondi citando
Vecchio 28-02-2016, 12.47.11   #39
gutguy
Hero Member
 
L'avatar di gutguy
 
Registrato: 27-07-2004
Loc.: Bologna
Messaggi: 574
gutguy promette bene
Rif: [excel] giustificare testo all'interno della cella

Quota:
Inviato da borgata Visualizza messaggio
Piuttosto non ho ben capito se ti serva una pulizia una tantum oppure una pulizia da eseguire ciclicamente, per esempio ogni volta che aggiorni i dati.
sono onesto non ci ho pensato proprio, per ciclo intendi ogni tot tempo?
gutguy non è collegato   Rispondi citando
Vecchio 28-02-2016, 13.31.02   #40
borgata
Gold Member
WT Expert
 
L'avatar di borgata
 
Registrato: 23-06-2004
Loc.: Cagliari
Messaggi: 13.333
borgata è un gioiello raroborgata è un gioiello raroborgata è un gioiello raroborgata è un gioiello raro
Rif: [excel] giustificare testo all'interno della cella

Ogni tot tempo, oppure ogni volta che si presenta una data situazione (come nell'esempio di prima, ogni volta che aggiorni i dati).
Insomma, devi sistemare il documento ora e poi sei a posto, oppure dovrai ripetere più volte l'operazione?
___________________________________

La risposta è dentro di te...
e però, è sbagliata!
borgata non è collegato   Rispondi citando
Vecchio 28-02-2016, 19.36.37   #41
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
Rif: [excel] giustificare testo all'interno della cella

per togliere i doppioni nella cella della colonna A prova questo codice

Codice:
Sub pippo()

Dim ultimaC, Mstringa As String
Dim Ccol As Range
Dim Pspazio As Integer

ultimaC = Range("A1").End(xlDown).Address
For Each Ccol In Range("A2:" & ultimaC)
Mstringa = Ccol
Pspazio = InStrRev(Mstringa, " ", -1)
If Pspazio <> 0 Then
k = Left(Mstringa, Pspazio - 1)
k1 = Mid(Mstringa, Pspazio + 1)
If k = k1 Then
Ccol = k
End If
Else
End If
Next
End Sub
funziona con 1 spazio tra le 2 stringhe
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Vecchio 28-02-2016, 21.34.51   #42
borgata
Gold Member
WT Expert
 
L'avatar di borgata
 
Registrato: 23-06-2004
Loc.: Cagliari
Messaggi: 13.333
borgata è un gioiello raroborgata è un gioiello raroborgata è un gioiello raroborgata è un gioiello raro
Rif: [excel] giustificare testo all'interno della cella

@Alexandra
Sei anche tu refrattaria alle Espressioni Regolari?
Quella che avevo proposto inizialmente funziona bene, è semplice da inserire nel codice e gestisce i diversi tipi di spaziature.
___________________________________

La risposta è dentro di te...
e però, è sbagliata!
borgata non è collegato   Rispondi citando
Vecchio 29-02-2016, 00.00.36   #43
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
Rif: [excel] giustificare testo all'interno della cella

No non disdegno di usare le RE oppure la normale formulistica quando abbiamo un solo episodio da trattare, anzi risulta molto più comodo e veloce.

La macro è utile quando si hanno da ripetere le stesse operazioni varie volte, ma ...... a volte è più forte di me e uso il vba.

nell'ultimo caso si doveva per forza usare il vba, come avevi preventivamente accennato tu, in quanto si doveva cercare lo spazio, estrarre le due stringhe e verificare se erano uguali etc... però tutto il resto era una normale routine per una RE
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Vecchio 29-02-2016, 00.16.14   #44
borgata
Gold Member
WT Expert
 
L'avatar di borgata
 
Registrato: 23-06-2004
Loc.: Cagliari
Messaggi: 13.333
borgata è un gioiello raroborgata è un gioiello raroborgata è un gioiello raroborgata è un gioiello raro
Rif: [excel] giustificare testo all'interno della cella

Si si, io intendevo usare le RE con VBA, dato che Excel non permette di usarle "al volo" con il trova/sostituisci, come invece avrei fatto con libre/openoffice.

Anche io all'inizio avevo valutato che fosse meglio agire programmaticamente per trovare le parole duplicate, poi ho visto che poteva essere fatto facilmente con le RE e quindi ho suggerito una RE apposita per farlo (vedi qualche post sopra).
___________________________________

La risposta è dentro di te...
e però, è sbagliata!
borgata non è collegato   Rispondi citando
Vecchio 29-02-2016, 12.04.51   #45
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
Rif: [excel] giustificare testo all'interno della cella

Quota:
Inviato da Alexsandra Visualizza messaggio
per togliere i doppioni nella cella della colonna A prova questo codice

Codice:
Sub pippo()

Dim ultimaC, Mstringa As String
Dim Ccol As Range
Dim Pspazio As Integer

ultimaC = Range("A1").End(xlDown).Address
For Each Ccol In Range("A2:" & ultimaC)
Mstringa = Ccol
Pspazio = InStrRev(Mstringa, " ", -1)
If Pspazio <> 0 Then
k = Left(Mstringa, Pspazio - 1)
k1 = Mid(Mstringa, Pspazio + 1)
If k = k1 Then
Ccol = k
End If
Else
End If
Next
End Sub
funziona con 1 spazio tra le 2 stringhe
Troppo codice; Esiste la funzione Replace.

Codice:
Function Rimpiazzamelo(ByVal S As String) As String
Dim Ss As String: Dim Pos As Long

Ss = LTrim$(S): Pos = InStr(Ss, ChrW(32))
If Pos Then Rimpiazzamelo = Replace$(Ss, ChrW(32) & Left$(Ss, Pos - 1), vbNullChar)
End Function
___________________________________

Practice feeds Skill,Skill limits Failure,Failure enhances Security,Security needs Practice
LoryOne non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

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

Orario GMT +2. Ora sono le: 22.43.25.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.