Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[excel]CREAZIONE DI UN MACRO IN UN FILE PRECOMPILATO

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]CREAZIONE DI UN MACRO IN UN FILE PRECOMPILATO

Postdi viskio » 02/11/06 14:07

Ciao a tutti. Vengo subito al dunque spiegando il mio problema.
Io dovrei realizzare un file in Excell strutturato in un certo modo, con un layout specifico. E fino a qui non c'è nessuno problema. Basta fare tutte le mie tabelline e tutti i gingilli che voglio.
Questo per esempio nel foglio di lavoro n.1
Nel foglio di lavoro n. 2 dovrei immetere dei dati importati da un file di testo.
Il mio problema è che non so come richiamare l'istruzione per aprire un file generico. Quando creo la macro va bene soltanto per il file specificato che apro al momento della costruzione della macro.
L'altro problema è che ho il mio bel file precompilato sul primo foglio, al momento in cui apro un'altro file per importare i dati txt, Excell mi crea giustamente un'altra cartella di lavoro.
Invece io vorrei avere questi dati in formato txt nella o nelle cartelle di lavoro successive alla foglio precompilato.
Praticamente nel primo foglio ci sarebbe la struttura. Poi con una macro dovrei richiamere i dati in formato txt nel secondo foglio. Questi dati poi mi serviranno come fonte per compilare il mio foglio con la struttura con delle apposite funzioni.
Come faccio a fare tutto questo? :undecided:
viskio
Utente Junior
 
Post: 36
Iscritto il: 03/02/06 10:13

Sponsor
 

Postdi viskio » 02/11/06 14:12

Mi spiego meglio:

mi serve praticamente una macro che abbia la possibilità di poter aprire un file di testo generico (quindi ho la possibilità di scegliere il file) e che lo metta in un foglio di lavoro specifico.
viskio
Utente Junior
 
Post: 36
Iscritto il: 03/02/06 10:13

Postdi Anthony47 » 02/11/06 20:09

Ciao viskio e benvenuto nel forum.
Intanto mi sembra che la tua intenzione e’ importare il contenuto di un file testo (.txt) in un “foglio” selezionabile della tua “cartella di lavoro” (in excel la “cartella di lavoro” e’ un file che contiene piu’ “fogli”).

Per questo l’ operazione da utilizzare e’ Dati ->Importa dati esterni e non File ->Apri.

Prova quindi a registrare la macro mentre esegui questa operazione; come hai detto, il nome file viene scritto nella macro, e quindi la generalizzazione va fatta successivamente editando il codice.

Per questo puoi aggiungere, subito dopo il titolo della macro, le seguenti istruzioni:
Codice: Seleziona tutto
DIREC = "C:\Documents and Settings\Utente1\Documenti\"  '<<Directory Utente; MODIFICARE come necessario
FileNome = InputBox(prompt:="Nome del file, con .txt", Default:=".txt")
FullNome = DIREC & FileNome


Modifica la prima per indicare l' effettiva directory da cui prelevare il file; comunque nell' input box potresti specificare anche un pezzo di directory; es. puoi scrivere Folder1\nomefile.txt.

Poi, come prima istruzione della macro registrata, dovresti avere qualcosa come
Codice: Seleziona tutto
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;C:\Documents and Settings\Utente1\Documenti\pippo.txt", Destination:= _
        Range("A1"))

(si tratta di una unica istruzione scritta su 3 righe, come implica la sintassi “_ “)

SOSTITUISCILA con questa:
Codice: Seleziona tutto
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & FullNome, Destination:=Range("A1"))


In questo modo il file da cui importere sara’ specificato dall’ utente durante l’ esecuzione della macro tramite un "InputBox", e i dati saranno scritti sul Foglio corrente.

Durante la registrazione della macro avrai la possibilita’ di selezionare Proprieta’; dai una occhiata alle opzioni li’ disponibili e che uso puoi farne.

Se non e’ chiaro, o comunque hai domande, fatti sentire.

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

Postdi viskio » 03/11/06 08:39

Ciao e grazie prima di tutto per avermi risposto.
Ho fatto come hai detto tu ma nn funziona correttamente, almeno come vorrei :D .
Per la scelta del file non è possibile far aprire una finestra di scelta per poter
spulciare nella directory?
Poi ho un'altro problema dovuto al file di testo orgininale (sarebbe l'output che viene genrato da un'altra applicazione).
All'atto dell'importazione del file di testo (che è in formato .out) i dati vengono importati in questo modo:
Immagine
Per poter effettuare la ricerca per nella tabella avrei la necessita che tutti i dati corrispondenti ad una certa misurazione (A,B,C...1,2...ecc) fossero sulla stessa riga.
Avrei bisogno di un file fatto in questo modo:
Immagine
Ma per fare questo ci vuorrebbe proprio una programmino in VB :eeh: .
viskio
Utente Junior
 
Post: 36
Iscritto il: 03/02/06 10:13

Postdi Anthony47 » 03/11/06 15:33

Ciao viskio,
Ho fatto come hai detto tu ma nn funziona correttamente, almeno come vorrei

Che cosa vorresti e che cosa invece succede?

Per la scelta del file non è possibile far aprire una finestra di scelta per poter spulciare nella directory?


Se vuoi ottenere l’ elenco dei files prova a guardare qui: http://www.danielklann.com/excel/folder_list_in_excel.htm
Dovrai fare qualche personalizzazione per elencare solo i file che ti interessano, o magari procedere con la tecnica del drill-down (approfondire solo sul path che selezioni); in ogni caso non e’ una interfaccia grafica come quella che ti compare quando fai File ->Open.

Poi ho un'altro problema dovuto al file di testo orgininale (sarebbe l'output che viene genrato da un'altra applicazione).
All'atto dell'importazione del file di testo (che è in formato .out) i dati vengono importati in questo modo [. . . ]

Quale e’ il tracciato record del file .out?
E’ evidente che l’ applicazione che lo genera, spezza su 2 record quello che dovrebbe stare su un solo record; perche’ lo fa? si puo’ evitare cio’ all’ origine?

Comunque per elaborare una soluzione diversa, e’ importante avere il tracciato record del file .out da cui si possano dedurre le sue caratteristiche (a meno che tu non abbia direttamente le specifiche). Puoi mettere le info sul forum o, se preferisci tenerle riservate, puoi inviarmi un messaggio privato.

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

Postdi viskio » 03/11/06 17:27

Si dovrei avere la possibilità di scegliere la directory perchè i possibili file da prendere potrebbero diversi con nomi diversi e in diverse directory.
Proverò a dare un'occhio al link che mi hai passato.
Purtroppo il file .out è il file che genera la macchina di misurazione e non so se si può cambiare l'output. Ho provato a dare un'occhio al programma nativo ma non ho trovato niente per cambiare le impostazioni di uscita.
Il file .out è generalmente così formato:

Cerchio: 2
Diametro = 4.4736

Cerchio: O
Diametro = 13.8530

Cerchio: 11
Diametro = 33.5058 33.2000 0.3058 0.2000 0.0000 +NG

purtroppo come dici tu per ogni rilevazione ( 2,O,11) vengono fatte 2 righe (record).
Lunedì do' 1 occhio a tutto.
viskio
Utente Junior
 
Post: 36
Iscritto il: 03/02/06 10:13

Postdi viskio » 06/11/06 09:03

Il programma in VB per la lista file non funziona. :eeh: :eeh:
viskio
Utente Junior
 
Post: 36
Iscritto il: 03/02/06 10:13

Postdi Anthony47 » 07/11/06 01:37

Il programma in VB per la lista file non funziona.

Un po' poco per chiedere aiuto.

Comunque lascia stare quella strada, chiaramente la macro era un punto di partenza e doveva essere personalizzata.

Ti ho preparato invece questa macro, che va messa subito all' inizio della tua macro e ti consente di selezionare un file con l' interfaccia tipica di windows e ne restituisce il nome nella variabile FullNome, pronto per essere usata nell' istruzione di QueryTables:
Codice: Seleziona tutto
Sub ScegliFile()
With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Filters.Clear
        .Filters.Add "All files", "*.*"
        .Filters.Add "Output", "*.out", 1
        .Show

     If .SelectedItems.Count = 0 Then
     MsgBox ("Nessuna voce selezionata, procedura annullata")
     GoTo Esci
     End If
     FullNome = .SelectedItems(1)     'Directory e Nome del file selezionato
    End With
Esci:
End Sub


Uso:
Puoi usare la macro cosi' come l' ho preparata per vedere l' effetto che fa.
Il corpo del codice, cioe' escluso il titolo e l' end sub, va copiato in testa alla tua macro; dovranno essere le uniche istruzioni prima di:
Codice: Seleziona tutto
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & FullNome, Destination:=Range("A1"))

che dovresti avere gia' nella tua macro.

Nel caso che l' utente non selezioni nessun file, la macro emette un messaggio di procedura annullata e fa un GoTo a Esci; per questo pero' la label Esci (Esci:) va tolta e spostata in fondo alla tua macro, subito prima di End Sub.

Se hai dubbi, fatti sentire.
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

Postdi viskio » 07/11/06 08:34

Mi da errore alla prima riga "With Application.FileDialog(msoFileDialogFilePicker)"...boh. Entrando nello specifico il messagio di errore dice "Proprietà o metodo non supportati dall'oggetto".
Ascolta. Ti ringrazio per il tuo impegno ma visto che non riesco a fare niente forse sarebbe meglio lasciare stare. Poi pure io non è che me ne intendo tanto di VB, anzi proprio per niente. :oops:
Venerdì dovrebbe venire il tecnico della macchina di misurazione (quella che genera il file .out) e provo a chiedere lumi a lui. Magari è possibile alterare il formato di uscita e già sarebbe una bella cosa.
Male che vada faccio tutto manualmente. Prima metterò a posto il file .out mettendo i dati che riguardano una misurazione su di una riga. Poi importerò il file nella seconda cartella, o terza se ce ne sarà più di uno.
Dovrò sbattermi a fare tutte le ricerce tramite funzione specifica ma questo lavoro lo dovevo fare comunque.
Grazie lo stesso. Poi ti farò settimana prox. appena il tecnico mi dice qualcosa.....
viskio
Utente Junior
 
Post: 36
Iscritto il: 03/02/06 10:13

Postdi Anthony47 » 07/11/06 13:28

Mi da errore alla prima riga "With Application.FileDialog(msoFileDialogFilePicker)"...
Che versione di Excel hai? (almeno 2002?)

Ti ringrazio per il tuo impegno ma visto che non riesco a fare niente forse sarebbe meglio lasciare stare

Beh, a volte abbiamo fatto cose piu' difficili anche con "apprendisti stregoni"; io non demorderei.

Inoltre, stavamo lvorando su 2 problemi distinti:
-la possibilita' di selezionare il file
-la possibilita' di importare il file .out in un formato gia' lavorabile; per questo ti avevo chiesto "il tracciato record del file .out da cui si possano dedurre le sue caratteristiche (a meno che tu non abbia direttamente le specifiche)"; per questo penso che il tecnico dello strumento ti possa aiutare.
Se tuttavia l' output del file e' sempre come lo hai descritto nel messaggio del 03/11/06 09:39 posso provare una soluzione alternativa. Confermi questa ipotesi?

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

Postdi Anthony47 » 07/11/06 19:56

Se hai voglia, prova questa macro, che consente di selezionare un file e segnala tramite messaggio quale selezione e' stata fatta:
Codice: Seleziona tutto
Sub ScegliFile2()
FullNome = Application.GetOpenFilename(Filefilter:="Output Files (*.out), *.txt,Tutti (*.*),*.*", Title:="Seleziona file")

'
MsgBox ("Selezionato  " & FullNome)
End Sub


Dovrebbe funzionare da Excel 97 in avanti. Se funziona senza errore, allora posta la macro che avevi sviluppato e la modifichiamo per la scelta del file da aprire.

NON DEMORDERE!

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

Postdi viskio » 08/11/06 08:11

Ho Excell 2000 :oops:
L'ultima macro che mi hai passato funziona!!!! :P
Compare proprio la finestra di windows con la possibilità di scegliere il file .out.
Comfermo che per ora il file .out è generato come descritto precedentemente, ovvero 2 record per ogni misurazione.
viskio
Utente Junior
 
Post: 36
Iscritto il: 03/02/06 10:13

Postdi viskio » 08/11/06 08:20

Questo è la macro che genera Excell quando viene selezionato un file specifico da importare con il comando Dati--->carica dati esterni

Sub Macro2()
'
' Macro2 Macro
' Macro registrata il 08/11/2006 da cad1
'

'
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Documents and Settings\cad1\Desktop\CAMP_1.out", Destination:=Range( _
"A1"))
.Name = "CAMP_1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileDecimalSeparator = "."
.TextFileThousandsSeparator = "'"
.Refresh BackgroundQuery:=False
End With
Range("I15").Select
End Sub
viskio
Utente Junior
 
Post: 36
Iscritto il: 03/02/06 10:13

Postdi viskio » 08/11/06 08:26

Con un mix tra quello che mi hai passato prima e l'ultima funzione sono riuscito a creare la macro che mi permette di scegliere il file .out e farlo importare sul foglio!!!!

Sub ScegliFile2()
FullNome = Application.GetOpenFilename(Filefilter:="Output Files (*.out), *.txt,Tutti (*.*),*.*", Title:="Seleziona file")

'
MsgBox ("Selezionato " & FullNome)


With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & FullNome, Destination:=Range("A1"))
.Name = "CAMP_1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileDecimalSeparator = "."
.TextFileThousandsSeparator = "'"
.Refresh BackgroundQuery:=False
End With
Range("I15").Select


End Sub

:D :D :D
viskio
Utente Junior
 
Post: 36
Iscritto il: 03/02/06 10:13

Postdi viskio » 08/11/06 08:47

Adesso mi toccherà risolvere il problema del file .out. e per fare questo dovrei prima sentire il tecnico della macchina di misurazione.
Io dubito fortemente che si possa modificare il layout del file .out. Male che vada prima di importare il file mi toccherà sistemarlo.
Oppure si potrà fare una macro anche per la sistemazione del file .out in automatico?
L'esigenza di avere il file da importare nel modo corretto è dettata dal fatto di utilizzare in seguito sul foglio1 (dove c'è la mia bella tabella precompilata in parte) il comando cerca su matrice (CERC VERT).
E' corretto il mio ragionamento?
viskio
Utente Junior
 
Post: 36
Iscritto il: 03/02/06 10:13

Postdi Anthony47 » 08/11/06 13:43

Evviva!
Adesso parliamo del problema del file .out che mette i dati su due righe; non so se hai confermato che il tracciato e' sempre come lo hai descritto nel messaggio del 03/11/06 09:39, supponiamo di SI.

In questa situazione possiamo procedere cosi’:
1)ti crei un foglio (all’ interno del tuo file) col nome Work (doppioclick sul tab del nome, digiti il nuovo nome); questo sara’ il foglio in cui copieremo il .out nelle colonne M e successive.

2) selezioni Work e ci importi come esempio un file .out con la seguente macro:
Codice: Seleziona tutto
Sub Macro2()
'
' Macro2 Macro
' Macro registrata il 08/11/2006 da cad1
'

'
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Documents and Settings\cad1\Desktop\CAMP_1.out", Destination:=Range( _
"M1"))
.Name = "CAMP_1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileDecimalSeparator = "."
.TextFileThousandsSeparator = "'"
.Refresh BackgroundQuery:=False
End With
Range("I15").Select
End Sub

(E’ LA TUA con la variante della cella di destinazione)

3) Con pazienza, nelle celle A e successive metti formule che prendono i dati disordinati da M e successive e creano una tabella ordinata.
Quindi per i titoli: B2=N1 C2=O2 D2=P2 etc
Per i valori: A4=M4 B4=N4 C4=N5 D4=O5 etc
E cosi’ via fino ad avere a sx una immagine ordinata di quanto e’ a destra

NOTA: se hai pazienza, invece di queste formule usane una leggermente piu’ annoiante ma migliore, cioe’ B2=SE(N1= " "; " ";N1) In questo modo se una cella di dx e’ vuota lasci vuota anche la cella di Sx; con la formula B2=N1, se N1 e’ vuota in B2 metteresti 0.


4) Selezioni tutta la tabella di sx e assegni a questo range il nome Normalizz (Menu ->Inserisci ->Nome ->Definisci; nella finestrella che compare, nell’ area “Nomi nella cartella di lavoro:” scrivi Normalizz; chiudi con Ok)



5) Cancelli la macro Macro2 e copi questa:
Codice: Seleziona tutto
Sub Viskio()
AWN = ActiveSheet.Name       'Nome del Foglio di partenza

'Seleziona foglio Work
Sheets("Work").Select

'Seleziona file
Scegli:
FullNome = Application.GetOpenFilename(Filefilter:="Output Files (*.out), *.out,Tutti (*.*),*.*", Title:="Seleziona file")

'Segnala file scelto e Azione
Mess = ">>Selezionato " & FullNome & vbCrLf & ">>Foglio di destinazione:  " & AWN & vbcrlf & ">>  SI per Confermare; NO per Cambiare; CANCEL per abortire"
scelta = MsgBox(Prompt:=Mess, Buttons:=vbYesNoCancel)
If scelta = 2 Then GoTo Esci    'Cancel
If scelta = 7 Then GoTo Scegli   'NO = Riseleziona

'Importa file selezionato
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & FullNome, Destination:=Range("M1"))
.Name = "CAMP_1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileDecimalSeparator = "."
.TextFileThousandsSeparator = "'"
.Refresh BackgroundQuery:=False
End With

'Torna al file di partenza
Sheets(AWN).Select
Columns("A:K").Select     'Azzera colonne A:K
Selection.ClearContents

Range("Normalizz").Copy    'Copia range Normalizz si foglio Work
Range("A1").Select             '    e incolla valori su foglio di partenza
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False

Esci:
Sheets(AWN).Select
End Sub



6) Assegni alla macro un tasto di scelta rapida: Menu ->Strumenti ->Macro ->Macro; selezioni la macro Viskio, premi Opzioni; nell’ area “Tasto di scelta rapida” inserisci I (maiuscolo); chiudi con Ok e X.
In questo modo la macro sara’ lanciata tutte le volte che premi (insieme) Contr-Maiusc-I.

Uso:
-Selezionare il foglio su cui si vogliono incollare i dati presi dal file .out
-premere Contr-Maiusc-I per lanciare la macro;
-selezionare il file da importare;
-se il file selezionato e il foglio di destinazione sono corretti, confermare con SI, oppure No per scegliere altro file o Annulla per abortire tutto.

Se hai dubbi, fatti sentire.
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

Postdi viskio » 08/11/06 16:56

:D CIAO.
Per ora il file .out è composto da 2 record per ogni elemento proprio come ho scritto precedentemente.
Ho capito il tuo ragionamento esatto e semplice.
Io il foglio importato lo importo da M1 mentre da A1 a M1 ci posso mettere i miei dati ordinati in riga per ogni elemento così potrò fare la ricerca per poi riportare tutto nella tabella.
Giusto?
Ho un'altro problema: la macchina di misurazione, a seconda se una quota rilevata è conforme o non conforme, emette per ogni elemento un esito positivo o negativo. Il problema è che sul file .out tale esito è scritto con =+OK e =+NG. Per excell sembra incomprensibile questa cosa infatti mi compare a tale cella #NOME? (come si può notare dalle immagini di excell postate precedentemente).
Come posso fare per risolvere questa cosa.

Grazie Antony. Grazie a te incomincio a vedere qualche spiraglio di luce. :P
viskio
Utente Junior
 
Post: 36
Iscritto il: 03/02/06 10:13

Postdi viskio » 08/11/06 17:05

Scusa mi correggo. Sul file .out gli esiti sono scritti con +OK e +NG.
E' proprio excell che importa =+OK/NG
viskio
Utente Junior
 
Post: 36
Iscritto il: 03/02/06 10:13

Postdi Anthony47 » 08/11/06 23:13

. . . il foglio importato lo importo da M1 mentre da A1 a M1 ci posso mettere i miei dati ordinati in riga per ogni elemento così potrò fare la ricerca per poi riportare tutto nella tabella.
Giusto?

Giusto, con la precisazione (ovvia) che il file lo importi quante volte vuoi/devi, mentre le formule le metti una volta e servono per tutte.

Sul file .out gli esiti sono scritti con +OK e +NG.
E' proprio excell che importa =+OK/NG


Per correggere questo problema, cambia la riga attuale della macro con questa:
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 2, 2)
questo importa gli ultimi 2 campi come testo.

Facci sapere, siamo anche noi in attesa del lieto evento.

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

Postdi viskio » 09/11/06 10:46

oK. funziona pressochè tutto. Anche gli esiti ora vengono importati già correttamente!!!! :lol: :lol:
Ora non mi resta che mettere sui fogli che m'interessano le formule per poter generare da A1 a M1 la tabella corretta. Ma questo è un compito facile ma noiso ma non ci saranno problemi.
Infine non mi resta che inserire nel primo folgio (quello che alla fine verrà stampato e che deve fare bella figura) le formule per la ricerca verticale nella matrice A1.... . Anche questo sarà un compito abbastanza lungo e noiso.
Comunque ho provato con 2/ valori importati, poi creando la tabella correttamente e inserento la ricerca verticale e compilando il primo foglio. Funziona tutto correttamente.
Un'ultima cosa: quando si mette una funzione excell ti mette nella cella #N/D.
Come si fa a non farlo comparire oppure a farlo comparire sul foglio ma non quanto si stampa? Mi ricordo che anni fa avevo trovato come si faceva ma ora non mi ricordo più, anche perchè excell lo uso davvero poco e le tabelline precompilate e alcuni lavoretti li faccio 1 volta o 2 all'anno a dir tanto.
Ogni volta che devo creare qualcosa in Excel infatti faccio una fatica enorme. Mi ci vuole 1 ora solo per ambientarmi nel foglio di lavoro e cercare di ricordare le cose
:oops:
viskio
Utente Junior
 
Post: 36
Iscritto il: 03/02/06 10:13

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "[excel]CREAZIONE DI UN MACRO IN UN FILE PRECOMPILATO":


Chi c’è in linea

Visitano il forum: Nessuno e 15 ospiti