Condividi:        

[excel] importare tabella da word

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] importare tabella da word

Postdi anug_un_rama » 08/01/09 16:47

ciao, dopo il successone con l'ordinamento dei dati (vedi puntata precedente^^ e grazie ancora anthony) mi hanno sottoposto un altro caso
allora c'è un programma che genera una tabella (dove ci sono nomi e numeri del tipo 12.4, ossia delimitati col punto), se questa viene incollata in word, tutto ok, se la incollo in excel ho due strani comportamenti

1. alcuni numeri, non tutti, vengono considerati come date, ad es 33.40 viene considerato come 33.40.00 mentre altri no pur presentando il punto

2.se devo cercare alcuni valori in questa nuova tabella, in altri fogli, per alcuni funziona e per altri no
ad es se faccio
Codice: Seleziona tutto
indice(foglio1!$A$1:$w$200;(confronta(a1;foglio1!$A$1:$A$250;0);3)

per alcuni nominativi funziona, mentre per altri no
ad es per mario rossi ok
ma guido bianchi no (pur essendo presente in elenco)

io credo che sia un problema di formattazione (ad es il cerca non funziona per quei nomi che si presentato del tipo "guido bianchi"
come si fa ad importare quindi un tabella obbligando i suoi valori ad avere la formattazione che dico io?
grazie ancora
anug_un_rama
Utente Junior
 
Post: 46
Iscritto il: 02/01/09 12:47

Sponsor
 

Re: [excel] importare tabella da word

Postdi Anthony47 » 08/01/09 21:40

Titoli bene ("importare tabella") ma esegui male ("se la incollo in excel ho due strani comportamenti").

Devi "importare" quel file tramite Menu /Dati /Importa dati esterni /Importa dati; durante la procedura di importazione potrai definire il formato delle varie colonne importate ma soprattutto potrai modificare il separatore decimale, impostandolo sul "punto" invece che sulla "virgola" (come presumo sia di default sul tuo pc); sul mio excel xp questo viene fatto in step 3 di 3 col pulsante "Avanzate".
Il problema che hai ora e' che le cifre separate dal "punto" vengono interpretati quando possibile come orario (es 22.30 = 22h30m; 31.80 rimane cosi'), perche' il "punto" e' il tuo separatore orario.

Per quanto riguarda la ricerca, non e' un problema di formattazione (la formattazione cambia solo il modo di vedere una informazione, non l' informazione stessa) ma di evidente difformita' di dati: controlla la presenza di eventuali caratteri spuri (es spazi doppi, o in testa o in coda); in alcuni casi puo' essere anche lo "spazio" non sempre codificato come cod(32), prova a editare le stringhe che non ti trova, controllando se ci sono crt spuri e poi sostituendo gli "spazi" presenti con nuovi spazi da tastiera.

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

Re: [excel] importare tabella da word

Postdi anug_un_rama » 09/01/09 12:38

grazie per la risposta come sempre puntuale..
nell'importazione dati però mi dice formato file non valido eppure il testo è un .doc
se provo a rinominare in .txt appaiono un sacco di caratteri strani, la tabella del doc si perde etc etc..(e questo rimane nell'importazione)
se faccio incolla speciale documento word, mi appare la tabella ma come oggetto singolo...
idee?
anug_un_rama
Utente Junior
 
Post: 46
Iscritto il: 02/01/09 12:47

Re: [excel] importare tabella da word

Postdi anug_un_rama » 09/01/09 12:50

mi rispondo da solo
(ma suggerire agli admin l'edit no eh? ;)?
ecco come ho fatto

convertito la tabella in testo indicando il " ; " come separatore (accetta "codifica testo" Windows o anche Ms-Dos)
salvato il risultato in formato .TXT
rinominatoil file in .CSV
aperto quest'ultimo con Excel
anug_un_rama
Utente Junior
 
Post: 46
Iscritto il: 02/01/09 12:47

Re: [excel] importare tabella da word

Postdi anug_un_rama » 09/01/09 13:10

evvaiii col terzo messaggio (non sono così spammer ^^)
ho fatto la macro che mi automatizza l'import
Codice: Seleziona tutto
"TEXT;C:\Documents and Settings\Administrator\Desktop\SIMULAZIONI\testo.csv",

c'è un modo di rendere l'apertura vincolata alla cartella corrente, ossia basta che il file testo.csv sia nella stessa cartella del foglio excel?
grazie!
anug_un_rama
Utente Junior
 
Post: 46
Iscritto il: 02/01/09 12:47

Re: [excel] importare tabella da word

Postdi Anthony47 » 09/01/09 15:34

L' edit credo sia stato eliminato per abusi da parte di qualche utente; ora i messaggi sono tracciabili, con l' edit no.

Non credo che sia necessario rinominare in .csv, .txt va bene ugualmente.

Quando dici "rinominatoil file in .CSV aperto quest'ultimo con Excel" immagino che intendevi dire "... importato quest'ultimo con Excel".

Per i meno esperti, il codice per l' importazione e' piu' articolato di quanto trascritto da anug_un_rama; del tipo:
Codice: Seleziona tutto
ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\Documents and Settings\Administrator\Desktop\SIMULAZIONI\testo.csv", Destination:=Sheets("Foglio2").Range("A1"))


Per quanto riguarda l' ipotesi di automatizzare l' operazione, potresti usare qualcosa come questo esempio da inserire nella Workbook_Open:
Codice: Seleziona tutto
If Len(Dir("C:\PIPPOfile1.txt")) > 0 Then
'istruzioni se il file esiste


Se lo spunto non e' sufficiente fatti sentire.
Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19326
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [excel] importare tabella da word

Postdi anug_un_rama » 09/01/09 15:54

grazie anthony
ovviamente sì, mi riferivo all'importazione del file dentro excel
e avevo riportato della macro solo la parte relativa al percorso del file
per quanto riguarda la cartella che ne dici di questa cosa qui?
Codice: Seleziona tutto
ActiveWorkbook.Path & "\pippo.csv"


mi sa che con la versione txt non funzionava l'import, cmq domani quando riproverò saprò dirti
anug_un_rama
Utente Junior
 
Post: 46
Iscritto il: 02/01/09 12:47

Re: [excel] importare tabella da word

Postdi Anthony47 » 10/01/09 00:37

ActiveWorkbook.Path & "\pippo.csv"
Direi che e' ok cosi'; se pensi di eseguire la macro non solo su Workbook_Open allora potresti variare in ThisWorkbook.Path & "\pippo.csv", che elimina il rischio derivante dall' aver magari attivo in quel momento un file diverso (ThisWorkbook aggancia l' informazione al file che contiene la macro).

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

Re: [excel] importare tabella da word

Postdi anug_un_rama » 10/01/09 12:11

grazie!
purtroppo però se sostituisco all'interno del codice
Codice: Seleziona tutto
With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;ThisWorkbook.Path & \testo.csv", _
        Destination:=Range("A1"))
        .Name = "testo"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 1252
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = True
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1)
        .TextFileDecimalSeparator = "."
        .TextFileThousandsSeparator = ","
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With

mi dice impossibile trovare l'oggetto!
ovviamente testo.csv sta nella stessa cartella del file excel 0.0''''
anug_un_rama
Utente Junior
 
Post: 46
Iscritto il: 02/01/09 12:47

Re: [excel] importare tabella da word

Postdi Anthony47 » 10/01/09 16:22

"TEXT;ThisWorkbook.Path & \testo.csv", _
Hai messo la funzione come stringa??!!

Farai invece
Codice: Seleziona tutto
NomeF= ThisWorkbook.Path & \testo.csv"

E poi:
Codice: Seleziona tutto
If Len(Dir(NomeF)) > 0 etc etc
e poi ancora
Codice: Seleziona tutto
With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & ThisWorkbook.Path & " \testo.csv", _
        Destination:=Range("A1"))


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

Re: [excel] importare tabella da word

Postdi anug_un_rama » 10/01/09 17:27

grazie ! funziona! (ovviamente)
una domanda anche se un pò ot
anzi due^^
quando ho importato la tabella, pur avendo selezionato la colonna con testo a capo (dalle proprietà etc etc), se visualizzo cella per cella il contenuto mi trovo con dei casi del genere
ad es mario rossi
guido bianchi
e questo ovviamente mi sfasa le operazioni successive
c'è un modo per contare gli spazi, cancellarli e metterne solo uno ossia:
prima della cura: guido bianchi
dopo la cura: guido bianchi
1 solo spazio tra nome e cognome

seconda domanda, veramente un mistero per me,
in una casella importata c'è il valore 2,86 es d1
cerco un valore in un'altra tabella ed è 2,86 es c1
se faccio c1=d1? il risultato è falso!!!
come è possibile? eppure ho provato impostando lo stesso formato celle, etc etc nulla
grazie ancora
anug_un_rama
Utente Junior
 
Post: 46
Iscritto il: 02/01/09 12:47

Re: [excel] importare tabella da word

Postdi anug_un_rama » 11/01/09 16:30

graize ho risolto con un opportuno uso di replace$ e rtrim()
;)
anug_un_rama
Utente Junior
 
Post: 46
Iscritto il: 02/01/09 12:47

Re: [excel] importare tabella da word

Postdi Anthony47 » 11/01/09 16:58

Io dopo l' importazione avrei fatto una pulizia della colonna con un ciclo del tipo:
Codice: Seleziona tutto
For Each Cell In Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row)
Cell.Value = Application.WorksheetFunction.Trim(Cell.Value)
Next Cell


Per la seconda tua domanda, non so se e' anche lei risolta; se No faccio due controdomande: se fai =C1-D1 cosa ottieni? Se formatti le celle D1 e C1 con 3 decimali, cosa vedi?

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

Re: [excel] importare tabella da word

Postdi anug_un_rama » 11/01/09 23:05

Anthony47 ha scritto:Io dopo l' importazione avrei fatto una pulizia della colonna con un ciclo del tipo:
Codice: Seleziona tutto
For Each Cell In Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row)
Cell.Value = Application.WorksheetFunction.Trim(Cell.Value)
Next Cell


Per la seconda tua domanda, non so se e' anche lei risolta; se No faccio due controdomande: se fai =C1-D1 cosa ottieni? Se formatti le celle D1 e C1 con 3 decimali, cosa vedi?

Ciao.

cosa fa il trim?
si ho risolto
praticamente ho dovuto fare un check sugli spazi prima e dopo e ho impostato il formato celle con due decimali
grazie mille
anug_un_rama
Utente Junior
 
Post: 46
Iscritto il: 02/01/09 12:47

Re: [excel] importare tabella da word

Postdi Anthony47 » 11/01/09 23:18

WorksheetFunction.Trim e' "annulla.spazi" di excel: "Rimuove tutti gli spazi dal testo ad eccezione dei singoli spazi tra le parole."

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

Re: [excel] importare tabella da word

Postdi anug_un_rama » 12/01/09 23:25

interessante questa trim, ma cosa succede se in una cella tra una parola e l'altra ci sono dei numeri di spazi variabili?
ad esempio mario spazio rossi
guido spazio spazio bianchi
carlo spazio spazio spazio spazio verdi?

io per risolverla ho usato una funzione dove ho messo un do while replace$ (str," ", " ") fin quando la lunghezza della stringa prima e dopo il replace non fosse uguale
ciao
anug_un_rama
Utente Junior
 
Post: 46
Iscritto il: 02/01/09 12:47

Re: [excel] importare tabella da word

Postdi Anthony47 » 12/01/09 23:35

L' ho gia' detto: "Rimuove tutti gli spazi dal testo ad eccezione dei singoli spazi tra le parole." Alla lettera.
Se non ci credi basta provare.

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

Re: [excel] importare tabella da word

Postdi anug_un_rama » 13/01/09 18:46

Anthony47 ha scritto:L' ho gia' detto: "Rimuove tutti gli spazi dal testo ad eccezione dei singoli spazi tra le parole." Alla lettera.
Se non ci credi basta provare.

Ciao.


thanks man
;)
anug_un_rama
Utente Junior
 
Post: 46
Iscritto il: 02/01/09 12:47


Torna a Applicazioni Office Windows


Topic correlati a "[excel] importare tabella da word":


Chi c’è in linea

Visitano il forum: Nessuno e 21 ospiti