Problème boucle avec listview
Salut a tous ! je suis en bts informatique et actuellement en stage je dois réaliser une appli en vb.net qui travail avec des fichiers excel .
Pour expliquer simplement l'utilisateur via une combobox ajoute des lignes dans ma list view , jusque la pas de problème , Ensuite j'ai fait un bouton enregistré , qui doit enregistré la totalité de ma listview dans un fichier excel .
Je travaille avec visual studio 2010 ultimate
Quand j'utilise uniquement mon code pour enregistré une ligne :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
Dim j As Integer
dim i as Integer
i = 3
j = 0
appli.Workbooks.Open(ClasseurFavoris) ' ouverture du fichier excel.
Feuille = CType(appli.ActiveWorkbook.Worksheets(utilisateur), xls.Worksheet) ' je choisit l'onglet du classeur excel
Feuille.Cells(i, 1).Value = (ListView_Favoris.Items(j).SubItems(0).Text)
Feuille.Cells(i, 2).Value = (ListView_Favoris.Items(j).SubItems(1).Text)
Feuille.Cells(i, 3).Value = (ListView_Favoris.Items(j).SubItems(2).Text) |
Cela fonctionne il enregistre bien la ligne complète de ma listview dans mon fichier excel a savoir 3 donné ( Affaire/Client/Intitulé)
Ensuite j'ai donc fait une boucle pour pouvoir enregistré toutes mes lignes de ma listview
Code:
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| Private Sub Button_Save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Save.Click
Dim j As Integer
Dim b As Boolean
i = 3
j = 0
b = False
appli.Workbooks.Open(ClasseurFavoris) ' ouverture du fichier excel.
Feuille = CType(appli.ActiveWorkbook.Worksheets(utilisateur), xls.Worksheet) ' choix de l'onglet à l'intérieur du classeur
' -----------------------------boucle qui enregistre la liste des favoris choisit par l'utilisateur dans un fichier excel . --------------------------------------
While b = False
If ListView_Favoris.Items(j) Is Nothing Then
b = True ' Si la case de la listview est vide alors on change la condition ( false => true) , quitte la boucle et on ferme excel
Try
appli.Visible = False '
appli.Workbooks(1).Save() '
appli.DisplayAlerts = False ' fermeture d'excel
appli.Quit() '
appli = Nothing '
Catch ex As Exception
End Try
Else
Feuille = CType(appli.ActiveWorkbook.Worksheets(utilisateur), xls.Worksheet)
Feuille.Cells(i, 1).Value = (ListView_Favoris.Items(j).SubItems(0).Text)
Feuille.Cells(i, 2).Value = (ListView_Favoris.Items(j).SubItems(1).Text)
Feuille.Cells(i, 3).Value = (ListView_Favoris.Items(j).SubItems(2).Text)
i = i + 1
j = j + 1
End If
End While
Try
appli.Visible = False '
appli.Workbooks(1).Save() '
appli.Workbooks(2).Save() '
appli.DisplayAlerts = False ' Fermeture d'excel
appli.Quit() '
appli = Nothing '
Catch ex As Exception
End Try
i = 3
j = 0
b = False
End Sub |
Et la j'ai un plantage j'imagine que c'est ma "boucle" qui est mauvaise , je crois que mon erreur est a la ligne " If ListView_Favoris.Items(j) Is Nothing Then " car sa me met l'index n'est pas une valeur disponible ...
Merci d'avance de votre aide :ccool: