Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Esportare foglio excel cambiando il formato

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

Esportare foglio excel cambiando il formato

Postdi oz85 » 20/06/18 10:52

Ciao a tutti!

Sto cercando di creare una macro che faccia quanto sotto:

1. copia un range specifico in un foglio del mio file
2. crea un foglio di appoggio (SCM2_2)che al termine delle operazioni verrà cancellato
3. incolla questo range nel foglio creato
4. esporta il foglio creato con estensione ".vbs" che è il formato di macro per SAP
5. torna sul file principale e cancella il foglio creato per fare questo lavoro.

Con il codice da me creato sono arrivato fino al salvataggio del file con l'estensione desiderata. Il problema è che non capisco come tra il copia e l'incolla avviene che i valori inseriti nel txt hanno ad inizio e fine il simbolo ". Questo fa si che il contenuto della macro che andrei ad utilizzare in SAP è inutilizzabile. Il foglio excel SCM2_2 creato non ha questa simbologia, quindi deduco che l'errore avviene nella fase di creazione. Potete darci un occhio???

Grazie!

Screen comparazione foglio excel / txt creato:
https://mega.nz/#!HYMQ0CYJ!QJ0GE3_AYh9U ... CQJoONYDKU

Codice: Seleziona tutto
    'selezione range da copiare
    ThisWorkbook.Sheets("SCRIPT").Range("XEL3:XEL125").Copy
   
    'crea foglio temporaneo SCM2_2
    Sheets.Add.Name = "SCM2_2"
    Sheets("SCM2_2").Select
   
    'incolla valori
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
   
    'crea nuov file SCM2_2
    Sheets("SCM2_2").Copy
   
    'salva il nuovo file e lo chiude
    'destinazione = "C:\"
    'nome = SCM_2
    'ActiveWorkbook.SaveAs Filename:=destinazione & nome
    'ActiveWorkbook.Close
   
    'salvataggio file SCM2_2
    ChDir "C:\Users\dell'elice.giordano\Desktop"
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Users\dell'elice.giordano\Desktop\SCM2_2.vbs", FileFormat:= _
        xlText, CreateBackup:=False
    ActiveWorkbook.Close
oz85
Utente Junior
 
Post: 63
Iscritto il: 26/03/18 14:35

Sponsor
 

Re: Esportare foglio excel cambiando il formato

Postdi oz85 » 20/06/18 20:20

Scusate per non aver previsto prima. Il file vbs oltre che essere il file che esegue script in SAP, è un file di testo che può essere aperto ed editato con il programma blocco note. Il mio scopo è sovrascrivere il file SCM2_2 esistente in una cartella con il nuovo frutto di operazioni su di un file Excel.

oz85 ha scritto:Ciao a tutti!

Sto cercando di creare una macro che faccia quanto sotto:

1. copia un range specifico in un foglio del mio file
2. crea un foglio di appoggio (SCM2_2)che al termine delle operazioni verrà cancellato
3. incolla questo range nel foglio creato
4. esporta il foglio creato con estensione ".vbs" che è il formato di macro per SAP
5. torna sul file principale e cancella il foglio creato per fare questo lavoro.

Con il codice da me creato sono arrivato fino al salvataggio del file con l'estensione desiderata. Il problema è che non capisco come tra il copia e l'incolla avviene che i valori inseriti nel txt hanno ad inizio e fine il simbolo ". Questo fa si che il contenuto della macro che andrei ad utilizzare in SAP è inutilizzabile. Il foglio excel SCM2_2 creato non ha questa simbologia, quindi deduco che l'errore avviene nella fase di creazione. Potete darci un occhio???

Grazie!

Screen comparazione foglio excel / txt creato:
https://mega.nz/#!HYMQ0CYJ!QJ0GE3_AYh9U ... CQJoONYDKU

Codice: Seleziona tutto
    'selezione range da copiare
    ThisWorkbook.Sheets("SCRIPT").Range("XEL3:XEL125").Copy
   
    'crea foglio temporaneo SCM2_2
    Sheets.Add.Name = "SCM2_2"
    Sheets("SCM2_2").Select
   
    'incolla valori
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
   
    'crea nuov file SCM2_2
    Sheets("SCM2_2").Copy
   
    'salva il nuovo file e lo chiude
    'destinazione = "C:\"
    'nome = SCM_2
    'ActiveWorkbook.SaveAs Filename:=destinazione & nome
    'ActiveWorkbook.Close
   
    'salvataggio file SCM2_2
    ChDir "C:\Users\dell'elice.giordano\Desktop"
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Users\dell'elice.giordano\Desktop\SCM2_2.vbs", FileFormat:= _
        xlText, CreateBackup:=False
    ActiveWorkbook.Close
oz85
Utente Junior
 
Post: 63
Iscritto il: 26/03/18 14:35

Re: Esportare foglio excel cambiando il formato

Postdi Anthony47 » 21/06/18 18:32

Da quello che vedo:
-scrivi il codice in un Modulo Standard del vba (e non su un Foglio)
-successivamente, sempre dal vba, Menu /File /Esporta file
-scegli percorso e nome file; l'estensione sara' ".bas"

Dovresti poter modificare l'estensione in .vbs e secondo me Sap digerira' il file

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: 15991
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Esportare foglio excel cambiando il formato

Postdi oz85 » 21/06/18 20:19

Grazie Anthony per la risposta innanzitutto! Volevo capire, perdonaa mia ignoranza, cosa intendi esattamente. Scrivere sul modulo vba anziché il foglio. Non capisco questo passaggio. Grazie e scusami di nuovo.

Anthony47 ha scritto:Da quello che vedo:
-scrivi il codice in un Modulo Standard del vba (e non su un Foglio)
-successivamente, sempre dal vba, Menu /File /Esporta file
-scegli percorso e nome file; l'estensione sara' ".bas"

Dovresti poter modificare l'estensione in .vbs e secondo me Sap digerira' il file

Ciao
oz85
Utente Junior
 
Post: 63
Iscritto il: 26/03/18 14:35

Re: Esportare foglio excel cambiando il formato

Postdi Anthony47 » 24/06/18 01:23

Grazie Anthony per la risposta innanzitutto! Volevo capire, perdonaa mia ignoranza, cosa intendi esattamente. Scrivere sul modulo vba anziché il foglio. Non capisco questo passaggio. Grazie e scusami di nuovo.
Questa l'immagine da te allegata:
Immagine

Guardandola io vedo che si parla del testo di uno script, non di dati.
Quindi il suggerimento e' di scrivere quelle cose non nelle celle di un foglio Excel ma in un "Modulo standard" del vba, e poi procedere a salvare il contenuto del Modulo vba con la procedura che ti ho detto.

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: 15991
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Esportare foglio excel cambiando il formato

Postdi oz85 » 26/06/18 10:25

Ciao Anthony!

Hai detto bene è uno script non dati.

Allego un immagine però per far capire da dove tiro fuori lo script. In pratica ho un modello Script che vedi in fugira con l'intestazione "originale | S8 • Prezzo". Su questa base faccio dei cerca verticale sulle righe che vedi evidenziate di rosso sostituendo i valori che mi occorrono. Una volta che ho lo script aggiornato vorrei andare a sovrascrivere quello esistente in un percorso specifico per poi "lanciare" questo script.

Pensi che debba procedere così come mi hai suggerito? Grazie.

PS: può essere una possibilità (laddove sia fattibile), far aprire il file .vbs contenuto in quel percorso e fare un ctrl+c / ctrl+v all'interno del file aperto con blocco note??


Immagine
oz85
Utente Junior
 
Post: 63
Iscritto il: 26/03/18 14:35

Re: Esportare foglio excel cambiando il formato

Postdi oz85 » 09/08/18 11:13

Allora in pratica ho risolto con un aiuto. Erravo la tipologia di FileFormat dove anzichè scrivere xlText avrei dovuto scrivere xlTextPrinter.

Sotto riporto la macro totale e grazie ad Anthony per il supporto!

Codice: Seleziona tutto
Sub SAP_S3()

    'selezione range da copiare
    Sheets("SCRIPT").Select
    Range("XEN3:XEN137").Select
    Selection.Copy
    Range("A1").Select
    Sheets("BRIGLIE").Select
    Range("H7").Select
   
    'crea foglio temporaneo SCM2_2
    Sheets.Add.Name = "temp"
    Sheets("temp").Select
   
    'incolla valori
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
   
    'crea nuovo file SCM2_2
    Sheets("temp").Copy
       
    'riporto dei dati sul file txt
    Application.DisplayAlerts = False 'permette di evitare il msg di salvataggio
    ActiveWorkbook.SaveAs Filename:= _
        "\\CBFSH01\Chieti\Condivisioni\Public\Industrializzazione Chieti\COLLAUDO\Gestione Briglie (nuovo flusso)\Modulistica\Script\03+04_Script Creazione\S3.CAVI.vbs", FileFormat:= _
        xlTextPrinter, CreateBackup:=False 'con questo comando puoi incollare senza simbolo -> '
    Application.DisplayAlerts = True 'permette di evitare il msg di salvataggio
   
    'evita il msg Salvare
    Application.DisplayAlerts = False
    ActiveWorkbook.Close
    Application.DisplayAlerts = True
   
    'cancella foglio creato
    Application.DisplayAlerts = False
    Worksheets("temp").Delete
    Application.DisplayAlerts = True
   
    'posizione cursore
    Sheets("BRIGLIE").Range("H7").Select

End Sub
oz85
Utente Junior
 
Post: 63
Iscritto il: 26/03/18 14:35

Re: Esportare foglio excel cambiando il formato

Postdi Anthony47 » 09/08/18 15:10

Questa discussione l'avevo persa...
Grazie per la condivisione della soluzione
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: 15991
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Esportare foglio excel cambiando il formato":


Chi c’è in linea

Visitano il forum: Nessuno e 32 ospiti