Supprimer une feuille de classeur Excel depuis VB.net
Résolu
voulfka1688
Messages postés
62
Statut
Membre
-
voulfka1688 Messages postés 62 Statut Membre -
voulfka1688 Messages postés 62 Statut Membre -
Bonjour, voilà dans le développement de mon application, je rencontre une difficulté majeur.
Je m'explique :
Je souhaite que l'utilisateur affiche certaines informations contenues dans une feuille Excel, il peut passer à la suivante dès qu'il le souhaite, jusque là pas de souci. Mais je souhaite aussi qu'il puisse supprimer une feuille qui ne lui plait pas. Et là ... sa coince...
Dans mon fichier Excel j'ai beau avoir 3 feuilles il m'indique cette erreur "Un classeur doit contenir au moins une feuille visible. Pour masquer, supprimer ou déplacer les feuilles sélectionnées, insérez d'abord une nouvelle feuille ou affichez une feuille masquée."
Et à ce moment là, je m'exclame "Mais questu me raconte ?! y'en a 3 feuilles t'es c** ou quoi ??!!" et cela fait deux soir que je m'acharne ....
pitié aidez moi !!!
Merci.
PS: voici la ligne qui génère l'erreur : "wbExcel.Worksheets.Delete()"
Je m'explique :
Je souhaite que l'utilisateur affiche certaines informations contenues dans une feuille Excel, il peut passer à la suivante dès qu'il le souhaite, jusque là pas de souci. Mais je souhaite aussi qu'il puisse supprimer une feuille qui ne lui plait pas. Et là ... sa coince...
Dans mon fichier Excel j'ai beau avoir 3 feuilles il m'indique cette erreur "Un classeur doit contenir au moins une feuille visible. Pour masquer, supprimer ou déplacer les feuilles sélectionnées, insérez d'abord une nouvelle feuille ou affichez une feuille masquée."
Et à ce moment là, je m'exclame "Mais questu me raconte ?! y'en a 3 feuilles t'es c** ou quoi ??!!" et cela fait deux soir que je m'acharne ....
pitié aidez moi !!!
Merci.
PS: voici la ligne qui génère l'erreur : "wbExcel.Worksheets.Delete()"
A voir également:
- Supprimer une feuille de classeur Excel depuis VB.net
- Supprimer rond bleu whatsapp - Guide
- Supprimer une page word - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
9 réponses
Bonjour,
wbExcel.Worksheets.Delete() Avez-vous mis le nom de la feuille a deleter: wbExcel.Worksheets.Delete("nomdelafeuille") ?????
wbExcel.Worksheets.Delete() Avez-vous mis le nom de la feuille a deleter: wbExcel.Worksheets.Delete("nomdelafeuille") ?????
En effet, j'ai mis
wbExcel.Worksheets(numfeuil).name = "Feuilakill" <-- je renomme pour être sur
wbExcel.Worksheets("Feuilakill").Delete() <---- je demande la suppression
wbExcel.Close() <--- je ferme le classeur et je provoque une fenêtre qui me demande si je souhaite enregistrer. (évidement je dis oui) mais quand j'ouvre le fichier excel la page a bien été renommé cela est sur mais ... elle est toujours là.
et lorsque que je met le nom ici : wbExcel.Worksheets.Delete("Feuilakill")
il m'indique "Arguments trop nombreux pour 'Public Sub Delete()'.
wbExcel.Worksheets(numfeuil).name = "Feuilakill" <-- je renomme pour être sur
wbExcel.Worksheets("Feuilakill").Delete() <---- je demande la suppression
wbExcel.Close() <--- je ferme le classeur et je provoque une fenêtre qui me demande si je souhaite enregistrer. (évidement je dis oui) mais quand j'ouvre le fichier excel la page a bien été renommé cela est sur mais ... elle est toujours là.
et lorsque que je met le nom ici : wbExcel.Worksheets.Delete("Feuilakill")
il m'indique "Arguments trop nombreux pour 'Public Sub Delete()'.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Bonjour, voilà dans le développement de mon application, Vous developpez en quel langage ?????
Bonjour, voilà dans le développement de mon application, Vous developpez en quel langage ?????
Bonjour,
en suivant ce lien, vous aurez un exemple de pilotage excel via vb.net, par contre pas de delete de feuille. Regardez vos declarations de variable etc ...
https://support.microsoft.com/en-us/help/301982
A defaut, montrez le code complet pour que nous puissions comprendre.
A+
en suivant ce lien, vous aurez un exemple de pilotage excel via vb.net, par contre pas de delete de feuille. Regardez vos declarations de variable etc ...
https://support.microsoft.com/en-us/help/301982
A defaut, montrez le code complet pour que nous puissions comprendre.
A+
Bonjour, après de multiple tentative et recherche voici l'intégralité de mon code car je n'ai toujours pas trouvé de solution ....
En espérant que vous trouviez ce qui cloche.
Imports Microsoft.Office
Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.Excel
Public Class Gestion
Dim nbagent As Integer
Dim ligne As Integer = 2
Dim compteurappli As Integer = 0
Dim temp As String
Dim Basedonnees2 As String
Dim numfeuil As Integer
Private Sub Gestion_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
temp = Form1.basedonnees
Basedonnees2 = temp.Replace("db.xlsx", "db2.xls")
numfeuil = 1
''Lignes de base...
Label3.Text = numfeuil
Try
choixclient.appExcel = New Excel.Application
choixclient.wbExcel = choixclient.appExcel.Workbooks.Open(Basedonnees2) 'path: le chemin d'accès à ton fichier
choixclient.wsExcel = choixclient.wbExcel.Worksheets(numfeuil)
Label2.Text = choixclient.wsExcel.Cells(2, 7).value.ToString
TextBox1.Text = choixclient.wsExcel.Cells(2, 8).Value.ToString
TextBox2.Text = choixclient.wsExcel.Cells(2, 2).value.ToString
TextBox3.Text = choixclient.wsExcel.Cells(2, 3).value.ToString
TextBox4.Text = choixclient.wsExcel.Cells(2, 4).value.ToString
TextBox5.Text = choixclient.wsExcel.Cells(2, 5).Value.ToString
TextBox6.Text = choixclient.wsExcel.Cells(2, 6).value.ToString
Catch ex As Exception
MessageBox.Show(ex.ToString())
End Try
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
choixclient.wbExcel.Worksheets(numfeuil).name = "Feuilakill"
choixclient.wbExcel.Worksheets("Feuilakill").Select
choixclient.wbExcel.Worksheets.Delete()
choixclient.wbExcel.Close()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
numfeuil = numfeuil + 1
Try
choixclient.wsExcel = choixclient.wbExcel.Worksheets(numfeuil)
Label2.Text = choixclient.wsExcel.Cells(2, 7).value.ToString
TextBox1.Text = choixclient.wsExcel.Cells(2, 8).Value.ToString
TextBox2.Text = choixclient.wsExcel.Cells(2, 2).value.ToString
TextBox3.Text = choixclient.wsExcel.Cells(2, 3).value.ToString
TextBox4.Text = choixclient.wsExcel.Cells(2, 4).value.ToString
TextBox5.Text = choixclient.wsExcel.Cells(2, 5).Value.ToString
TextBox6.Text = choixclient.wsExcel.Cells(2, 6).value.ToString
Catch ex As Exception
MessageBox.Show(ex.ToString())
End Try
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
choixclient.wbExcel.Close()
choixclient.appExcel.Quit()
End Sub
End Class
En espérant que vous trouviez ce qui cloche.
Imports Microsoft.Office
Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.Excel
Public Class Gestion
Dim nbagent As Integer
Dim ligne As Integer = 2
Dim compteurappli As Integer = 0
Dim temp As String
Dim Basedonnees2 As String
Dim numfeuil As Integer
Private Sub Gestion_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
temp = Form1.basedonnees
Basedonnees2 = temp.Replace("db.xlsx", "db2.xls")
numfeuil = 1
''Lignes de base...
Label3.Text = numfeuil
Try
choixclient.appExcel = New Excel.Application
choixclient.wbExcel = choixclient.appExcel.Workbooks.Open(Basedonnees2) 'path: le chemin d'accès à ton fichier
choixclient.wsExcel = choixclient.wbExcel.Worksheets(numfeuil)
Label2.Text = choixclient.wsExcel.Cells(2, 7).value.ToString
TextBox1.Text = choixclient.wsExcel.Cells(2, 8).Value.ToString
TextBox2.Text = choixclient.wsExcel.Cells(2, 2).value.ToString
TextBox3.Text = choixclient.wsExcel.Cells(2, 3).value.ToString
TextBox4.Text = choixclient.wsExcel.Cells(2, 4).value.ToString
TextBox5.Text = choixclient.wsExcel.Cells(2, 5).Value.ToString
TextBox6.Text = choixclient.wsExcel.Cells(2, 6).value.ToString
Catch ex As Exception
MessageBox.Show(ex.ToString())
End Try
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
choixclient.wbExcel.Worksheets(numfeuil).name = "Feuilakill"
choixclient.wbExcel.Worksheets("Feuilakill").Select
choixclient.wbExcel.Worksheets.Delete()
choixclient.wbExcel.Close()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
numfeuil = numfeuil + 1
Try
choixclient.wsExcel = choixclient.wbExcel.Worksheets(numfeuil)
Label2.Text = choixclient.wsExcel.Cells(2, 7).value.ToString
TextBox1.Text = choixclient.wsExcel.Cells(2, 8).Value.ToString
TextBox2.Text = choixclient.wsExcel.Cells(2, 2).value.ToString
TextBox3.Text = choixclient.wsExcel.Cells(2, 3).value.ToString
TextBox4.Text = choixclient.wsExcel.Cells(2, 4).value.ToString
TextBox5.Text = choixclient.wsExcel.Cells(2, 5).Value.ToString
TextBox6.Text = choixclient.wsExcel.Cells(2, 6).value.ToString
Catch ex As Exception
MessageBox.Show(ex.ToString())
End Try
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
choixclient.wbExcel.Close()
choixclient.appExcel.Quit()
End Sub
End Class
Précisions :
La variable "basedonnees" contient le chemin de mon fichier excel (initial) je remplace juste le nom du fichier par mon deuxième fichier excel qui se trouve dans le même dossier. Elle est déclaré dans une autre windowsform
Les variables appExcel, wbExcel, et wsExcel sont également déclarés depuis une autre windowsform nommé "choixclient"
La variable "basedonnees" contient le chemin de mon fichier excel (initial) je remplace juste le nom du fichier par mon deuxième fichier excel qui se trouve dans le même dossier. Elle est déclaré dans une autre windowsform
Les variables appExcel, wbExcel, et wsExcel sont également déclarés depuis une autre windowsform nommé "choixclient"
Bonjour,
site :
https://docs.microsoft.com/en-us/visualstudio/vsto/how-to-programmatically-delete-worksheets-from-workbooks?redirectedfrom=MSDN&view=vs-2019#code-snippet-1
Pour supprimer une feuille de calcul à l'aide de la collection Sheets du classeur Excel
Appelez la méthode Delete de la collection Sheets.
CType(Me.Application.ActiveWorkbook.Sheets(4), Excel.Worksheet).Delete()
A voir
site :
https://docs.microsoft.com/en-us/visualstudio/vsto/how-to-programmatically-delete-worksheets-from-workbooks?redirectedfrom=MSDN&view=vs-2019#code-snippet-1
Pour supprimer une feuille de calcul à l'aide de la collection Sheets du classeur Excel
Appelez la méthode Delete de la collection Sheets.
CType(Me.Application.ActiveWorkbook.Sheets(4), Excel.Worksheet).Delete()
A voir