Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Trovare codice Vba per chiudere un foglio di Excel e altro

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

Trovare codice Vba per chiudere un foglio di Excel e altro

Postdi Maury170419 » 03/06/21 09:48

Ciao a tutti da Maurizio
Il mio problema e questo :
Su di un foglio di Excel sto tentando di fare una sorta di impaginazione per creare dei documenti vari come (Excel - Word - Pdf) ecc...!
Ora il problema e che fin qui tutto e andato a meravigli tranne che per il fatto che :
1) Quando creo il documento di Word , si mi preleva tutti i dati che voglio io dal foglio di Excel e li deposita nella mia sottocartella
chiamata (Allegati) ma ad esempio il foglio di Word ma da lo Zoom a 140
Mentre se io apro manualmente un file di word nuovo , Lo zoom e quello classico ; Cioè pari a 100.
Perché mi succede questo.
2) Mentre se chiedo di creare il file di Excel , in questo caso si apre il nuovo foglio di Excel con tutti i dati Inseriti ; Ma non c'é verso di Salvare e chiudere il tutto
Anche qui Vorrei Sapere il perché .
Grazie per tutto l'aiuto che vorrete darmi in merito saluti da A.Maurizio
(P.s) link per scaricare il tutto e questo :
https://app.box.com/s/rup1su1z83wumnhlkr42p02qljwg4547
Maury170419
Utente Senior
 
Post: 138
Iscritto il: 31/10/16 09:05

Sponsor
 

Re: Trovare codice Vba per chiudere un foglio di Excel e alt

Postdi Anthony47 » 04/06/21 00:47

Purtroppo la Sub Crea_Formato_In_Excel e' incomprensibile, non vedo il motivo di creare una nuova sessione Excel, nasconderla e mai utilizzarla; e poi la sequenza ActiveSheet.Copy / Foglio1.Range("A4:F31").Select non puo' che generare errore visto che certamente FOGLIO1 non puo' essere il foglio attivo e quindi non puo' che attivare la condizione On Error GoTo 1 che lascia tutto appeso.
Se spieghi che cosa vorresti fare forse posso essere piu' propositivo.

Anche la Sub Crea_Formato_In_Word contiene sequenze non chiare... Ad esempio tu crei un oDoc = CreateObject("Word.Document.12") ma poi in coda esegui una oApp.Documents.Close, ma una oApp non e' mai stata creata, anche qui quindi concludendosi il tutto con l'attivazione di On Error GoTo 1.

Comunque chiudendo manualmente il Doc.6.docx creato la sua apertura a me risulta regolare e in zoom 100%; anche il Doc.6.docx contenuto nel .rar distribuito mi si apre in zoom=100%
Comunque dovresti poter impostare lo zoom del documento tramite l'istruzione oDoc.ActiveWindow.View.Zoom = 100 da inserire subito prima del salvataggio del file

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

Re: Trovare codice Vba per chiudere un foglio di Excel e alt

Postdi Maury170419 » 04/06/21 09:42

Ciao Anthony47 hai pienamente ragione a dire queste cose, ma ti garantisco che le ho provate tutte e partendo da zero non e facile capire il tutto.
In prativa desidero solo che dal Foglio principale di Excel , io possa ricavare sia un documento di Excel Nuovo e uno di Word
Inserendo al loro interno tutti i dati che inserisco nel foglio principale Tutto qui.
Per te sicuramente tutto ciò sembrerà una cosa ridicola e banale.
Ma con le mie capacità non lo sono affatto .
Non te la prendere !
Grazie per tutto l'aiuto che vorrai darmi Grazie.
Saluti da Maurizio
Maury170419
Utente Senior
 
Post: 138
Iscritto il: 31/10/16 09:05

Re: Trovare codice Vba per chiudere un foglio di Excel e alt

Postdi Maury170419 » 04/06/21 10:58

Ciao Anthony47
Grazie anche a te e forse senza volerlo , sono riuscito dopo tanto a risolvere il Problema per la creazione di Word
Con i dati inseriti e presi dal foglio di Excel
E per ottenere questo lo creato in questo modo :
Codice: Seleziona tutto
Sub Crea_Formato_In_Word()
On Error GoTo 1

Dim ctr As Integer
Dim doc As Object
Dim tbl As Object
Dim sht As Excel.Worksheet

Dim NomeFile As String

Dim Estensione As String

NomeFile = Foglio1.Range("B2").Value & ""
Estensione = Foglio1.Range("H2").Value & ""

Set doc = CreateObject("Word.Document.12") 'New Word.Document
doc.Application.Visible = False

For Each sht In ActiveWorkbook.Worksheets

'sht.Activate

sht.EnableSelection = xlNoSelection

sht.Range("A4:F31").Copy

doc.ActiveWindow.Selection.Paste

ActiveDocument.SaveAs Filename:=ThisWorkbook.Path & "\Allegati\" & NomeFile & Estensione

doc.Documents.Close '
Next sht
doc.Quit

1:
End Sub


Ora non mi resta altro che rivedere anche la creazione del formato di Excel e il gioco e fatto :
Speriamo in bene !
Nuovamente ti porgo i miei più sinceri Grazie e Saluti , da Maurizio

(P.S))
E come per Magia Anche lo Zoom del foglio di Word che ieri mi dava 140 ora e nuovamente a 100
Pazzesco solo a pensarci.
Maury170419
Utente Senior
 
Post: 138
Iscritto il: 31/10/16 09:05

Re: Trovare codice Vba per chiudere un foglio di Excel e alt

Postdi Anthony47 » 04/06/21 12:20

Ora non mi resta altro che rivedere anche la creazione del formato di Excel

Mah... Questa macro chiede quale foglio del documento va salvato e poi lo salva come nuovo file excel, prelevando il nome da usare dalla cella B2 di Foglio1 (CodeName del foglio, non Name del foglio):
Codice: Seleziona tutto
Sub Crea_Formato_In_Excel_V2()
'- Inserire dati E Creare Un Documento In Excel
On Error GoTo 1
Dim Percorso As String
Dim NomeFile As String
Dim daCopiare As String
'
daCopiare = InputBox("Foglio da Salvare?")
'
'percorso completo su cui salvare, ricordarsi la barra inversa alla fine!
Percorso = ThisWorkbook.Path & "\Allegati\"
'cella da cui prendere il nome file
NomeFile = Foglio1.Range("B2").Value & ".xlsx"
'Copia il foglio prescelto...
ThisWorkbook.Sheets(daCopiare).Copy
'...e salvalo
ActiveWorkbook.Save Filename:=Percorso & NomeFile
Workbooks(NomeFile).Close False
'
MsgBox NomeFile & " Salvato "
'Call Immagine_Di_Base
Exit Sub
1:
MsgBox (Err.Description & vbCrLf & "Operazione abortita")
End Sub

Vedi se puo' servire
Avatar utente
Anthony47
Moderatore
 
Post: 17651
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Trovare codice Vba per chiudere un foglio di Excel e alt

Postdi Maury170419 » 04/06/21 17:58

Ciao Antonyhony47
Per prima Cosa Grazie Per il tuo Aiuto Perché e molto interessante da Conoscere.
Poi ho dovuto Cambiare ( Save ) in ( SaveAs) in quanto mi dava errore.
Ma quello che non ho capito e il fatto Dell'input ( daCopiare = InputBox("Foglio da Salvare?")
In quanto non so se sia giusto mettere un Numero del tipo ( 1,2,3 ) ecc...! Per Indicare il Foglio 1
Ho scrivere proprio ( Foglio1 )
Comunque sia Per il Momento non funziona, pur non dandomi più errore da nessuna Parte
Ma ora vedo come risolverla comunque .
Per il momento Frazie Infinite Come Sempre per la tua Disponibilità
Saluti e Buona Serata da Maurizio
Maury170419
Utente Senior
 
Post: 138
Iscritto il: 31/10/16 09:05

Re: Trovare codice Vba per chiudere un foglio di Excel e alt

Postdi Maury170419 » 04/06/21 18:07

Ciao Anthony ti scrivo nuovamente per Dirti che ho Risolto il mistero Dell'input
In quanto bastava semplicemente inserire ( foglio1 ) scritto in piccolo; Tutto qui.
Sei Come Sempre Fantastico e Fonte Di Ispirazione Nel Continuare a Esercitarmi nel programmare.
Solo cosi si : Si può imparare bene ; Oltre al fatto che mi fossi iscritto anche io molti anni fa alla facoltà di informatica.
oggi sarebbe poco realizzabile.
Grazie Infinite Sinceramente Ciao da Maurizio
Maury170419
Utente Senior
 
Post: 138
Iscritto il: 31/10/16 09:05

Re: Trovare codice Vba per chiudere un foglio di Excel e alt

Postdi Anthony47 » 04/06/21 18:56

[bastava] semplicemente inserire ( foglio1 ) scritto in piccolo
Secondo me era piu' probabile che ci fosse qualche carattere spurio(es Foglio 1, con spazio), perche' il nome foglio non e' sensibile alle maiuscolo (cioe' FOGLIO e FoGLio puntano sempre allo stesso foglio)

Comunque se e' risolto va bene così

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


Torna a Applicazioni Office Windows


Topic correlati a "Trovare codice Vba per chiudere un foglio di Excel e altro":


Chi c’è in linea

Visitano il forum: Nessuno e 43 ospiti