Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 44
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    262

    [VB 6] Creazione Grafico Excel da VB e non chiude il processo Excel

    Salve amici!!!!
    Avrei bisogno di un piccolo aiutino che mi sta mandando al manicomio.
    Da VB creo delle procedure per importarmi dei dati da un DB access,ora sul foglio 1 mi importo i dati e sul secondo foglio mi creo il grafico per la cosa strana è che quando importo solo i dati e poi alla fine faccio:
    xlscartella.save
    xlscartella.close
    xlsapplicazione.quit
    Tutto va a buon fine chiudendomi il processo excel,invece quando creo il grafico,nonostante esegue la procedura di chiusura non mi chiude il processo,rimanendolo aperto.Lo chiude solo se chuido l'applicativo.
    Sareste in grado di darmi un aiuto?
    Se volete vi posto il codice.

  2. #2
    Si posta il codice.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    262
    Ecco il codice,però tieni presente che a monte esiste la procedura che mi permette di importare i dati e funziona correttamente,e poi viene eseguita questa procedura con alla fine la chiusura del processo EXCEL che non va.

    ''Formatto il secondo foglio per la creazione del grafico****************************************
    Set xlsFoglio = xlsCartella.Worksheets(2)

    With xlsFoglio.Range("A1", "E2")
    .Interior.ColorIndex = 37
    .MergeCells = True
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlBottom
    .Borders.LineStyle = xlContinuous
    End With

    With xlsFoglio.Range("A3", "EZ1")
    .Font.Bold = True
    .ColumnWidth = 20
    .Font.Color = 37
    End With

    xlsFoglio.Name = "Grafico Auguri" 'Nome del Foglio Excel
    xlsFoglio.Cells(1, 1) = "Grafico Auguri"


    AdoRs.Open "SELECT DISTINCT tAnagrafica.NomeAzienda, count(tRiferimenti.Auguri) AS Auguri" _
    & " FROM tAnagrafica INNER JOIN tRiferimenti ON tAnagrafica.ID = tRiferimenti.ID_Anagrafica " _
    & " Where tRiferimenti.Auguri <> 0 " _
    & " GROUP BY tAnagrafica.NomeAzienda", AdoCn

    Dim f As Integer
    Dim g As Integer

    f = 4
    g = 3

    While Not AdoRs.EOF
    xlsFoglio.Cells(3, 1) = "NomeAzienda"
    xlsFoglio.Cells(3, 2) = "Auguri"
    xlsFoglio.Cells(f, 1) = AdoRs!NomeAzienda
    xlsFoglio.Cells(f, 2) = AdoRs!Auguri

    f = f + 1
    g = g + 1
    AdoRs.MoveNext
    Wend

    Charts.Add
    ActiveChart.ChartType = xlCylinderColStacked
    ActiveChart.SetSourceData Source:=Sheets("Grafico Auguri").Range("A3", "B" & g), PlotBy:=xlColumns
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Grafico Auguri"
    ActiveChart.HasLegend = False
    ActiveChart.ChartTitle.Characters.Text = "Grafico Auguri"
    ActiveChart.Axes(xlValue).MajorUnit = 1
    ActiveChart.Walls.Select
    ActiveChart.SeriesCollection(1).Select
    With Selection.Border
    .Weight = xlThin
    .LineStyle = xlContinuous
    End With
    Selection.InvertIfNegative = False
    With Selection.Interior
    .ColorIndex = 37
    .Pattern = xlSolid
    End With
    ActiveChart.Walls.Select
    With Selection.Border
    .ColorIndex = 16
    .Weight = xlThin
    .LineStyle = xlContinuous
    End With
    Selection.Fill.UserPicture PictureFile:=App.path & "\immagini\Logo.gif", _
    PictureFormat:=xlStretch
    Selection.Fill.Visible = True
    ActiveChart.Axes(xlCategory).Select
    With Selection.TickLabels
    .ReadingOrder = xlContext
    .Orientation = 45
    End With


    ActiveSheet.Shapes("Grafico 1").IncrementLeft -183.75
    ActiveSheet.Shapes("Grafico 1").IncrementTop -96.75
    ActiveSheet.Shapes("Grafico 1").ScaleWidth 1.48, msoFalse, msoScaleFromTopLeft
    ActiveSheet.Shapes("Grafico 1").ScaleHeight 1.62, msoFalse, _
    msoScaleFromTopLeft

    xlsCartella.Save
    xlsCartella.Close
    xlsApplicazione.Quit

  4. #4
    Non vedo nulla di particolare.
    Comunque prova a sostituire la parte finale, quella di chiusura, con questo:

    'salvataggio dei fogli
    For Each L In objExcel.Workbooks
    L.Save
    Next L

    'chiudo il foglio attivo
    objExcel.Workbooks(objExcel.ActiveWorkbook.Name).C lose

    'Libero la memoria
    Set objExcel = Nothing
    Set objWorksheet = Nothing
    Set objWorkbook = Nothing

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    262
    non va, fa lo stesso,nel taskmanger rimane il processo aperto

  6. #6
    Non mi viene in mente nulla...il codice sembrerebbe corretto.

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    262
    Ragazzi...Credetemi sto uscendo pazzo, ma come è possibile che nonostante chiudo l'oggetto Excel mi da smepre l'errore, ma solo quando creo il grafico.
    Vi posto anche l'immagine dell'errore.
    Aiutatemi, per favore.
    GRAZIE
    Immagini allegate Immagini allegate

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    262
    Ho notato ancora un altra cosa che il processo di Excel nel Task Manager lo chiude quando chiudo tutto il software e non quando finisce limportazione e faccio il quit.
    Xchè

  9. #9
    Aspetta un minuto, l'errore è leggeremte diverso dal fatto della chiusura di excel.

    Controlla se prendi tutti i dati, nel senso che non devi avere valori null.

    Spero di essermi spiegato.

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    262
    Potresti spiegarmi meglio.
    cosa vuoi dire con i valori null.
    Io mi accorgo che quando termino l'importazione e chiudo l'oggetto EXCEL,nel task manager vedo che il processo è sempre attivo finchè non chiudo tutto il software.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.