+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Errore nel Rinominare un Foglio .xls

  1. #1
    aldodellacasa non è in linea Scolaretto
    Post
    244

    Errore nel Rinominare un Foglio .xls

    Ciao a tutti
    Ecco il mio Problema:
    codice HTML:
    Public Function RinominaFoglioEXCEL(VNomeFileEXCEL, Estensione)
    'Call RinominaFoglioEXCEL(VNomeFileEXCEL, NomeEstensione)
    
    Dim ExcelApp As EXCEL.Application
    Dim ExcelBook As Workbook
    Dim ExcelSheet As Worksheet
    
    If Estensione = "XLS" Then
       PercNomeFile1 = App.Path & "\DaImportare\" & VNomeFileEXCEL & ".XLS"
    Else
       PercNomeFile1 = App.Path & "\DaImportare\" & VNomeFileEXCEL & ".XLSX"
    End If
    
    'Crea l'istanza dell'oggetto Excel
    Set ExcelApp = CreateObject("Excel.Application")
    
    'Imposta l'esecuzione in background
    ExcelApp.Application.Visible = False
    Set ExcelBook = ExcelApp.Workbooks.Open(PercNomeFile1)
    
    'Trovo il nome del primo foglio
    Set ExcelSheet = ExcelBook.Worksheets(1)
    VNomeFoglio = ExcelSheet.Name
    
          '''Rinomino Il Foglio da "VNomeFoglio" a Foglio1
          Sheets(VNomeFoglio).Select
          ActiveSheet.Name = "Foglio1"
    
    ''Salvo il tutto
    ExcelBook.Application.DisplayAlerts = False   '<Cancella il messaggio di errore di Excel
    ExcelBook.SaveAs PercNomeFile1
    '-----------------------------------------------
    'Chiudo tutto
    'The TRUSTER rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
    ExcelApp.Quit
    Set ExcelSheet = Nothing
    Set ExcelBook = Nothing
    Set ExcelApp = Nothing
    'The TRUSTER rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
    End Function '...RinominaFoglioEXCEL(VNomeFileEXCEL, NomeEstensione)
    Modifico ed aggiornarno un file Excel ed tutto OK.
    Mi si richiede anche di avere il nome del primo foglio "Foglio1"
    Cercando qua e la su internet ho tirato giu questo codice, che funziona, ma uscendo non mi chiude EXCEL.EXE
    devo chiuderlo da "Gestione Attività di Windows".

    Se però escludo queste 3 righe
    codice HTML:
    'Rinomino Il Foglio da "VNomeFoglio" a Foglio1
    Sheets(VNomeFoglio).Select
    ActiveSheet.Name = "Foglio1"
    EXCEL.EXE si chiude perfettamente.
    Ma.....come ho aperto...ho chiuso tutto...! cosa dimentico ?

  2. #2
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,319
    Blogs
    5
    Il post è confuso ... qual è il problema esattamente?
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  3. #3
    aldodellacasa non è in linea Scolaretto
    Post
    244
    Il problema è che nel rinominare un foglio exel con questa istruzione.
    codice HTML:
    '''Rinomino Il Foglio da "VNomeFoglio" a Foglio1
    Sheets(VNomeFoglio).Select
    ActiveSheet.Name = "Foglio1"
    Quando il programma termina non mi chiude il processo EXCEL.EXE
    ma devo chiuderelo manualmente da "Gestione attività di Windos"
    Se NON [Rinomino Il Foglio] il programma termina correttamente chiudendo in automatico il processo EXCEL.EXE

    Buon weekend rientrerò domenica notte

  4. #4
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,319
    Blogs
    5
    Prova ad impostare temporaneamente

    ExcelApp.Application.Visible = True

    ed esegui la funzione passo passo per capire cosa succede esattamente.
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  5. #5
    aldodellacasa non è in linea Scolaretto
    Post
    244
    Grazie dell'interessamento al problema.
    Ho fatto una serie di prove come da Te consigliato.
    1-Se scrivo in questo modo
    codice HTML:
    '.
    '.
    'Imposta l'esecuzione in background
    ExcelApp.Application.Visible = False
    Set ExcelBook = ExcelApp.Workbooks.Open(PercNomeFile1)
    '
    'Trovo il nome del primo foglio
    Set ExcelSheet = ExcelBook.Worksheets(1)
    VNomeFoglio = ExcelSheet.Name
    '
    ''///////////////////////////////////////////////
    ''''Rinomino Il Foglio da "VNomeFoglio" a Foglio1
    'Sheets(VNomeFoglio).Select
    'ActiveSheet.Name = "Foglio1"
    ''//////////////////////////////////////////////
    '.
    '.
    PUR ESCLUDENDO le 3 righe incriminate termino la funzione con il processo EXCEL.EXE chiuso (quindi OK)

    2-Se scrivo in questo modo come da Te consigliato
    codice HTML:
    '.
    '.
    'Imposta l'esecuzione in background
    ExcelApp.Application.Visible = True
    Set ExcelBook = ExcelApp.Workbooks.Open(PercNomeFile1)
    '
    'Trovo il nome del primo foglio
    Set ExcelSheet = ExcelBook.Worksheets(1)
    VNomeFoglio = ExcelSheet.Name
    '
    ''///////////////////////////////////////////////
    ''''Rinomino Il Foglio da "VNomeFoglio" a Foglio1
    'Sheets(VNomeFoglio).Select
    'ActiveSheet.Name = "Foglio1"
    ''//////////////////////////////////////////////
    '.
    '.
    PUR ESCLUDENDO le 3 righe incriminate termino la funzione con il processo EXCEL.EXE aperto (quindi errore)

    3-Se scrivo in questo modo
    codice HTML:
    '.
    '.
    'Imposta l'esecuzione in background
    ExcelApp.Application.Visible = False
    Set ExcelBook = ExcelApp.Workbooks.Open(PercNomeFile1)
    '
    'Trovo il nome del primo foglio
    Set ExcelSheet = ExcelBook.Worksheets(1)
    VNomeFoglio = ExcelSheet.Name
    '
    ''///////////////////////////////////////////////
    '''Rinomino Il Foglio da "VNomeFoglio" a Foglio1
    Sheets(VNomeFoglio).Select
    ActiveSheet.Name = "Foglio1"
    ''//////////////////////////////////////////////
    '.
    '.
    CON LE 3 righe incriminate termino la funzione con il processo EXCEL.EXE aperto (quindi errore)

  6. #6
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,319
    Blogs
    5
    Mi sembra che manchi l'unica prova che ti avevo suggerito di fare, ovvero con


    ExcelApp.Application.Visible = True

    e includendo le righe per il cambio nome ...
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  7. #7
    aldodellacasa non è in linea Scolaretto
    Post
    244
    Ciao scusa si avevo anche fatto questa prova
    Considerando che anche solo con ExcelApp.Application.Visible = True e le tre righe escluse non mi dava (errore)
    Comunque rifatta la prova il risultato non cambia:
    CON ExcelApp.Application.Visible = True e le 3 righe incriminate ATTIVE
    termino la funzione con il processo EXCEL.EXE aperto (quindi errore)
    codice HTML:
    '.
    '.
    'Imposta l'esecuzione in background
    ExcelApp.Application.Visible = True
    Set ExcelBook = ExcelApp.Workbooks.Open(PercNomeFile1)
    '
    'Trovo il nome del primo foglio
    Set ExcelSheet = ExcelBook.Worksheets(1)
    VNomeFoglio = ExcelSheet.Name
    '
    ''///////////////////////////////////////////////
    '''Rinomino Il Foglio da "VNomeFoglio" a Foglio1
    Sheets(VNomeFoglio).Select
    ActiveSheet.Name = "Foglio1"
    ''//////////////////////////////////////////////
    '.
    '.

  8. #8
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,319
    Blogs
    5
    Ma se Excel è visibile, tu non lo vedi semplicemente chiudere o vedi un messaggio d'errore?

    Io ho provato e non ho alcun messaggio d'errore.

    A questo punto prova a postare il tuo file excel da provare.
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  9. #9
    aldodellacasa non è in linea Scolaretto
    Post
    244
    No non ho messaggi di errore
    Però, se apro "Gestioni attività di Windows" a funzione avvenuta poi "Processi"
    Trovo EXCEL.EXE attivo (e non è corretto)

    Se invece escludo le tre righe incriminate
    A funzione avvenuta se apro "Gestioni attività di Windows"poi "Processi"
    Trovo EXCEL.EXE disattivato e (così è corretto)
    Ultima modifica di aldodellacasa; 02-07-2018 15:36 

  10. #10
    aldodellacasa non è in linea Scolaretto
    Post
    244
    Volevo allegarti il file .xls ma non ricordo più come si fa.
    Ora sto cercando di capire come fare
    Però Guarda che è un semplicissimo File che ho chiamato "FileNomi.xls" pulito senza macro senza nulla
    e per prova ho tolto tutto ho solo una colonna quella A con 5 nomi
    ed il nome del foglio che devo rinominare è chiamato "Nomi"
    Vorrei rinominarlo con questa funzione in "Foglio1"

+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi