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 :
Cela fonctionne il enregistre bien la ligne complète de ma listview dans mon fichier excel a savoir 3 donné ( Affaire/Client/Intitulé)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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)
Ensuite j'ai donc fait une boucle pour pouvoir enregistré toutes mes lignes de ma listview
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 ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Merci d'avance de votre aide![]()
Partager