Je cherche à inscrire des données provenant d'un flexGrid. Tout se passe
bien, inscription des données, enregistrement du fichier excel, fermeture du
fichier.
Seulement par la suite je me suis dit que je pouvais rajouter un formatage
avec des bordures. Le formatage en lui même se passe bien. Seulement lorsque
je ferme le fichier excel, il me reste une instance dans les processus, et
après il me génére une erreur au moment de "Border". Il s'agit probablement
d'un problème de variable mais je ne vois pas laquelle ?
Voici mon code :
Private ClasseurXLS As Excel.Application
Private WK As Excel.Workbook
Private ExFeuille As Excel.Worksheet
Sub OuvrirClasseurXls()
Set ClasseurXLS = CreateObject("Excel.application") 'Ouvre l'application
Set WK = ClasseurXLS.Workbooks.Open(OuvreXls)
Set ExFeuille = WK.ActiveSheet
ClasseurXLS.Visible = False
For Each ExFeuille In WK.Worksheets ' Parcourt les onglets présent dans
le fichier xls
List1.AddItem ExFeuille.Name ' Inscrit les onglets trouvés dans la
ZL1
Next ExFeuille
end sub
Sub BtIncorporer()
' Retient l'onglet sélectionné
sOnglet = List1.Text
With MsFlex
.Row = 1
' inscription des infos
For I = 0 To .Cols - 1
.Col = I
C = I + 1
ExFeuille.Cells(CellXlsVide, C) = .Text
Next I
End With
' Ici tout va bien je peux fermer et réouvrir le même ou d'autre fichier
cela marche très bien
' Ici cela ne marche qu'une seul fois... Dès la première ouverture du
fichier
' Crée les bordures
Set PlageCell = ExFeuille.Range(Cells(CellXlsVide, 1),
Cells(CellXlsVide, C))
With PlageCell
.Borders.LineStyle = xlContinuous
.BorderAround Weight:=xlThin
.WrapText = True
End With
Set PlageCell = Nothing
' Enregistre les données
WK.Save
call fermerClasseurExcel()
end sub
Sub fermerClasseurExcel()
WK.Close
ClasseurXLS.Quit
Set ClasseurXLS = Nothing
Set WK = Nothing
Set ExFeuille = Nothing
FichierOuvert = False
End Sub