Condividi:        

[EXCEL] Esportare dati

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

Re: [EXCEL] Esportare dati

Postdi Anthony47 » 04/01/09 19:22

Nei moduli "VBA Project FoglioNN" inserirai solo le macro di evento; le altre vanno in Moduli standard (Menu /Inserisci /Modulo). Per richiamare da una macro di evento una macro standard userai Call Macro123.

Per il pulsante, io raccomando di usare quello disponibile nella barra di strumenti "Moduli" non "Strumenti di controllo"; questi secondi sono piu' sofisticati, ma proprio per questo inadatti a un principiante (per ora ti classifico qui... :D ).
Quando disegni un pulsante (di Moduli), ti verra' chiesto a quale macro associarlo: seleziona dall' elenco (vedrai solo le macro standard, non di evento) e conferma.
Se invece vuoi lavorare con gli "Strumenti di controllo", il codice e le proprieta' vanno inserite con l' ausilio delle apposite iconcine sulla barra degli strumenti mentre sei in modalita' Progettazione; le macro saranno "di evento" e quindi le ritroverai nel moduli " VBA Project FoglioNN".

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

Sponsor
 

Re: [EXCEL] Esportare dati

Postdi ramset64 » 04/01/09 19:36

Principiante è pure troppo per me grazie.
Il fatto è che tutte le macro contenute in questi file sono "di evento" come dici, io vorrei poter inserire anche quest'ultima creata come "di evento", ma di fatto mi da sempre errore 400. Evidentemente per poterla inserire in questa categoria bisogna modificare qualcosa, è questo che non capisco. :oops:
Ciao
ramset64
Utente Senior
 
Post: 396
Iscritto il: 29/10/08 10:41
Località: Torino

Re: [EXCEL] Esportare dati

Postdi Anthony47 » 04/01/09 20:22

Assumendo che EsportaDatiTxt sia una macro, la dovrai mettere su un "Modulo standard" (non di foglio); e' cosi'.
Poi ti crei un pulsante con gli stumenti "Modulo" e gli assegni la macro.

Perche' me la vuoi fare piu' complessa?
Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL] Esportare dati

Postdi ramset64 » 04/01/09 20:24

Anthony non voglio farla più complessa. Hai ragione, se metto la macro su un modulo tutto funziona perfettamente ma vorrei solo capire la differnza, tutto qua.

Ho un determinato file ho delle macro (tutte sotto folglio1), a cui ho aggiunto la macro che gentilmente mi hai scritto tu (quella per incolonnare i dati).
Adesso se inserisco questa per esportare i dati in formato txt (che funziona perfettamente), la macro parte ma va in errore... il primo ad esempio è che anzichè cancellare delle colonne del foglio3 cancella le colonne del foglio1 e poi si ferma.

Perchè la tua macro ho potuto inserirla nel foglio1 e questa no? Se la inserisco in modulo1 funziona.

Questa la domanda! E' solo per capire se possibile!
Ciao
ramset64
Utente Senior
 
Post: 396
Iscritto il: 29/10/08 10:41
Località: Torino

Re: [EXCEL] Esportare dati

Postdi Anthony47 » 05/01/09 02:18

Assodato che Microsoft dice che sui moduli di foglio ci vanno solo le macro di evento (Worksheet_Change, Ws_Calculate, Selection_change, diverse altre di worksheet, gli eventi degli "Strumenti di controllo") e che le altre vanno su moduli standard, che cosa succede quando non si rispetta questa "raccomandazione della casa" mi e' ignoto, ma e' evidente che qualcosa puo' non funzionare; come succede a te.

Ora vediamo come assegnare una macro a un pulsante: intanto hai disegnato il pulsante con gli strumenti "Modulo" o con "Strumenti di conrollo"?
Se hai seguito i suggerimenti che ti ho dato, lo hai fatto con Moduli; subito dopo aver disegnato il pulsante, ti viene fatta la domanda "Assegnare macro?".
Se invece lo hai voluto disegnare con Strumenti di controllo, individua l' iconcina "Visualizza codice" sulla barra degli strumenti di controllo, premila, scegli il pulsante, scegli l' evento click, scrivi il codice di gestione dell' evento.
Ti ho anche detto che puoi richiamare una macro posizionata su un Modulo standard con Call Macro123 (cioe Call Nome_Macro); se hai gia' una macro che fa il lavoro che ti serve basta quindi che nel codice di gestione scrivi Call Nome_Macro.

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

Re: [EXCEL] Esportare dati

Postdi ramset64 » 05/01/09 17:12

Ok Anthony, macro e pulsante inseriti.

Il dubbio mi veniva dal fatto che le altre macro funzionano sul foglio1 e questa no, ma non importa va bene cosi.
Grazie
Ciao
ramset64
Utente Senior
 
Post: 396
Iscritto il: 29/10/08 10:41
Località: Torino

Re: [EXCEL] Esportare dati

Postdi ramset64 » 05/01/09 20:58

Già che sono lanciato :D ....

Per salvare un foglio di excel (solo 1 foglio e non tutto il file), ho provato a modificare questo codice:

NomeFile = ActiveWorkbook.Name
ActiveWorkbook.SaveAs Filename:=NomeFile, _
FileFormat:=xlExcel8, CreateBackup:=False

in

NomeFile = ActiveWorkbook.Name
ActiveSheet.SaveAs Filename:=NomeFile, _
FileFormat:=xlExcel8, CreateBackup:=False

però mi salva sempre tutto il file.

Qui proprio non posso aiutarmi con la registrazione di macro, il 2007 non mi pare permetta di salvare solo il foglio attivo.

Ciao
ramset64
Utente Senior
 
Post: 396
Iscritto il: 29/10/08 10:41
Località: Torino

Re: [EXCEL] Esportare dati

Postdi ramset64 » 05/01/09 23:12

e... aggiungo.... quella che in excel è la funzione VALORE, in vba è ?

Ciao
ramset64
Utente Senior
 
Post: 396
Iscritto il: 29/10/08 10:41
Località: Torino

Re: [EXCEL] Esportare dati

Postdi ramset64 » 06/01/09 11:14

e ancora.... giuro che è l'ultima altrimenti mi mandi a stendere :)

come faccio a scrivere in vba.... se il file da salvare esiste già vai a...
Ciao
ramset64
Utente Senior
 
Post: 396
Iscritto il: 29/10/08 10:41
Località: Torino

Re: [EXCEL] Esportare dati

Postdi Anthony47 » 06/01/09 19:44

1) Per salvare il solo foglio attivo, prova il tuo codice ma con FileFormat:=xlExcel4
2) Funzione Val, sintassi: Val(stringa)
3) Sono paziente e resistente
Codice: Seleziona tutto
On error Goto manca
Workbooks.Open "Nome_del_File"
'istruzioni se il file esiste
'..
'..
manca:
On error goto 0
'istruzioni se il nome non esiste

Hai notato che sei diventato Utente senior?

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

Re: [EXCEL] Esportare dati

Postdi ramset64 » 06/01/09 19:51

Utente senior per il forum.... sarebbe bello esserlo per il vba che è ancora tutto un mistero!

3) hai omesso la risposta però eh.... in pratica quando salvo un file se esiste già vorrei poterlo gestire da codice, solo che non riesco a scrivere nel codice "se il file che voglio salvare esiste già goto etc."" in modo da poter poi decidere cosa fare.
Anche questo in pratica non serve a molto ma mi insegnerebbe qualcos'altro.... se puoi!

Ciao
ramset64
Utente Senior
 
Post: 396
Iscritto il: 29/10/08 10:41
Località: Torino

Re: [EXCEL] Esportare dati

Postdi Anthony47 » 06/01/09 19:55

Codice: Seleziona tutto
On error Goto manca
Workbooks.Open "Nome_del_File"
'istruzioni se il file esiste
'..
'..
manca:
On error goto 0
'istruzioni se il nome non esiste


Perche' non risponde?
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL] Esportare dati

Postdi ramset64 » 06/01/09 20:19

Anthony perdonami, dalla tua risposta deduco che non mi sono spiegato bene.
L'istruzione che non riesco a scrivere è quella che deve verificare se il file esiste già con quel nome, non come gestirlo dopo.
Ciao
ramset64
Utente Senior
 
Post: 396
Iscritto il: 29/10/08 10:41
Località: Torino

Re: [EXCEL] Esportare dati

Postdi Anthony47 » 06/01/09 21:05

Mi pare che tu hai excel 2007, che non supporta piu' il "metodo Find"; pertanto la mia tecnica e' stata:
-prova ad aprire quel file;
-se va in errore e' perche' non esiste
-se no, allora esiste
Ti quadra?
E' possibile che , come prima istruzione se esiste, tu voglia inserire Activeworkbook.Close SaveChanges:=False a meno che quel file non ti interessi tenerlo aperto.

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

Re: [EXCEL] Esportare dati

Postdi ramset64 » 06/01/09 21:20

Anthony non so davvero come spiegarmi, per me è davvero difficile. Quando non si conosce una materia....

dunque:
ActiveWorkbook.SaveAs Filename:="NOME_FILE.txt", FileFormat:=xlText, CreateBackup:=False

con questa riga (e le altre predenti evidentemente) dico alla macro di salvare un file che abbia lo stesso nome del file excel aperto con l'estensione.txt.... se nomefile.txt non esiste allora ok.... se nomefile.txt esiste voglio gestire in modo diverso la sistuazione, quindi
io vorrei capire come scrivere nella macro....."salva il nomefile.txt ma se esiste dimmelo prima"

Scusami, spero di essere stato chiaro stavolta.
Ciao
ramset64
Utente Senior
 
Post: 396
Iscritto il: 29/10/08 10:41
Località: Torino

Re: [EXCEL] Esportare dati

Postdi ramset64 » 06/01/09 22:53

Anthony, la funzione val non riesco a farla andare (mi da sempre "nome") nella relativa cella.

Per il salvataggio, vorrei che salvasse solo il foglio3 ma non riesco.

Ti allego il file, puoi gentimente dargli un'occhiata?

Per la domanda del post precedente, se mi dici sono come scrivere quel rigo di istruzione, poi ci smanetto io.

Grazie, ciao
Allegati

[L’estensione rar è stata disattivata e non puó essere visualizzata.]

ramset64
Utente Senior
 
Post: 396
Iscritto il: 29/10/08 10:41
Località: Torino

Re: [EXCEL] Esportare dati

Postdi Anthony47 » 07/01/09 01:22

VAL e' la risposta alla domanda "quella che in excel è la funzione VALORE, in vba è ?"; quindi perche' la usi come funzione excel e non come funzione del vba??
Ma cosa dovresti fare? Se vuoi convertire la stringa di col F in "data", mi pare che lo abbiamo gia' fatto con fa funzione excel "DATA" insieme a Sinistra, Destra, Stringa.estrai:
Codice: Seleziona tutto
=DATA(DESTRA(Foglio1!F2;4);SINISTRA(Foglio1!F2;2);STRINGA.ESTRAI(Foglio1!F2;4;2))

Ma come dico spesso: non costringetemi a capire che cosa volete fare da come non riuscite a farlo, per favore!

Per la domanda sul file gia' esistente, vediamo se questo esempio aiuta:
Codice: Seleziona tutto
On error Goto manca
Workbooks.Open "NOME_File.txt"
'istruzioni se il file esiste
'..esempio:
ActiveWorkbook.SaveAs Filename:="Saint_Anthony.txt", FileFormat:=xlText, CreateBackup:=False
'altro?
Goto Continua
'..
manca:
On error goto 0
'istruzioni se il nome non esiste
'esempio:
ActiveWorkbook.SaveAs Filename:="NOME_FILE.txt", FileFormat:=xlText, CreateBackup:=False
'altro?
Continua:
'istruzioni


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

Re: [EXCEL] Esportare dati

Postdi ramset64 » 07/01/09 10:08

Premesso che non posso utilizzare excel fino a stasera, qui le problematiche sono 3.
1) convertire la data presente nel foglio2 (che è in formato testo), in formato data sul foglio3. Già che in excel basta scrivere =valore(foglio1!F2) per ottenere la data, presumevo che in vba si potesse fare con la funzione val.

2) salvare il foglio 3 in formato excel (ma solo il foglio attivo).

3) il tuo esempio sinceramente mi è poco chiaro, ma stasera ci smanetto un pò e vediamo cosa ne vien fuori, ma prima è ovvio devo risolvere i primi 2 punti.

Grazie ciao
ramset64
Utente Senior
 
Post: 396
Iscritto il: 29/10/08 10:41
Località: Torino

Re: [EXCEL] Esportare dati

Postdi Anthony47 » 07/01/09 14:51

1) La stringa in col F di Foglio1 non e' detto che sia riconoscibile come data dal tuo pc, dipende dal settaggio dei parametri Internazionale e Data/ora; cioe' se 01/02/2009 significhi 2 Gen o 1 Feb 2009 dipende da come hai configurato il pc. Quindi non puoi usare l' istruzione val; userai invece nella macro
Codice: Seleziona tutto
Worksheets("Foglio3").Range("A1").FormulaLocal = "=Data(destra(Foglio1!F2;4);sinistra(Foglio1!F2;2);stringa.estrai(Foglio1!F2;4;2))"
In ogni caso "val" e' una funzione di vba, ma tu stavi cercando di usarla in una stringa "formula"; nella formula avresti dovuto usare o ".Formula = "=value(Foglio1!F2)" oppure ".FormulaLocal = "=Valore(Foglio1!F2)"

2) Per il salvataggio di un solo foglio, vedi mio messaggio del 06/01/09 20:44
1) Per salvare il solo foglio attivo, prova il tuo codice ma con FileFormat:=xlExcel4

Quindi userai
Codice: Seleziona tutto
Sheets("Foglio3").select
ActiveSheet.SaveAs Filename:=NomeFile, FileFormat:=xlExcel4, CreateBackup:=False


3) Per la storia del file esistente o meno, ho dimenticato di applicare un suggerimento che mi ero dato qualche post fa, quindi la macro di esempio va modificata con l' aggiunta di una istruzione:
Codice: Seleziona tutto
    On error Goto manca
    Workbooks.Open "NOME_File.txt"
    'istruzioni se il file esiste
    '..esempio:
   ActiveWorkbook.Close SaveChanges:=False  '<<< AGGIUNTA; chiude il file aperto sopra
   ActiveWorkbook.SaveAs Filename:="Saint_Anthony.txt", FileFormat:=xlText, CreateBackup:=False
    'altro?
    Goto Continua
    '..
    manca:
    On error goto 0
    'istruzioni se il nome non esiste
    'esempio:
    ActiveWorkbook.SaveAs Filename:="NOME_FILE.txt", FileFormat:=xlText, CreateBackup:=False
    'altro?
    Continua:
    'istruzioni


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

Re: [EXCEL] Esportare dati

Postdi ramset64 » 07/01/09 17:16

Anthony, per il salvataggio del solo foglio attivo non ci sta verso, non lo salva con il codice che mi hai suggerito anzi da proprio errore.

Te lo allego, se puoi dagli un'cchiata per favore.

Ciao
Allegati

[L’estensione rar è stata disattivata e non puó essere visualizzata.]

ramset64
Utente Senior
 
Post: 396
Iscritto il: 29/10/08 10:41
Località: Torino

PrecedenteProssimo

Torna a Applicazioni Office Windows


Topic correlati a "[EXCEL] Esportare dati":


Chi c’è in linea

Visitano il forum: Nessuno e 49 ospiti