Suppression de feuille Excel
Comment, depuis Access, supprimer une feuille de calcul Excel ?
Excel peut être démarré et manipulé comme tout objet Access. La technique est nommée Automation (Automatisation) par Microsoft ; elle permet depuis Access de réaliser quasiment n’importe quelle action Excel (ceci suppose surtout une connaissance des objets Excel).
Voici une fonction qui permet d’ouvrir un classeur Excel quelconque, et d’en supprimer une feuille.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
' --- ' SUPPRESSION DE FEUILLE EXCEL "A DISTANCE" ' --- ' Entrée : strClasseur <- Chemin complet du classeur à traiter. ' strFeuille <- Nom de la feuille à supprimer. ' Function SupprimerFeuilleExcel( _ ByVal strClasseur As String, _ ByVal strFeuille As String) Dim xlApp As Excel.Application Dim wbk As Excel.Workbook ' Ouvrir le classeur concerné Set xlApp = CreateObject("Excel.Application") Set wbk = xlApp.Workbooks.Open(strClasseur) ' Désactiver les messages de confirmation d'Excel ' Notamment : Confirmez-vous la suppression de... xlApp.DisplayAlerts = False ' Supprimer la feuille 2 si elle existe On Error Resume Next wbk.Worksheets(strFeuille).Delete If err.Number > 0 Then ' Un p'tit message :o) MsgBox "Impossible de supprimer la feuille [" & strFeuille & _ "] du classeur [" & strClasseur & "]", vbExclamation ' Fermer le classeur sans enregistrer les changements wbk.Close False Else ' Fermer le classeur en enregistrant les changements wbk.Close True End If Set wbk = Nothing ' Quitter Excel xlApp.Quit Set xlApp = Nothing End Function |
Recopiez ce code dans un module standard d’Access puis exécutez-le en tapant par exemple dans la fenêtre Exécution :
1 |
? SupprimerFeuilleExcel("C:Mes documentstest.xls", "Feuil2") |
puis [Entrée]
.
- Ouvrez Visual Basic Editor (ou, dans Access 97, ouvrez un module quelconque).
- Cliquez sur le menu Outils / Références.
- Dans la boîte de dialogue, cochez la référence Microsoft Excel Object Library.
Pour plus de détails sur les références, consultez cette page.
Remarques
- Le code échouera si la feuille n’existe pas dans le classeur.
- Le code échouera aussi si vous tentez de supprimer la dernière feuille du classeur (un classeur Excel doit toujours avoir au moins 1 feuille).
- L’exemple ne vérifie pas si le classeur existe avant de l’ouvrir. A vous d’améliorer tout ça ! (vous trouverez ce qu’il faut dans le Grenier, rubrique Fichiers).
suppression feuille execl à partir d’accès
j’ai repris cette procédure mais le « DELETE » ne s’effectue jamais
je n’ai aucun message d’erreur, je peux afficher sans problème la valeur des cellules ou les noms des feuilles
j’ai l’impression d’être en situation de « lecture seule » ???
auriez-vous une solution ou ….
version Office 2007
merci d’avance
Est-ce que le classeur Excel est ouvert pendant l’exécution de ce code ?