Lors d'un clik sur l'image on arrete le processus Excel et on ferme la form

Signaler
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
19 mai 2015
-
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
-
bonjour
sur ma form j'ai une listview avec des données qui vient de ma base ACCESS.
lorsque je clik sur un bouton j'ai une image qui vient avec un progressbar, pour envoyer les données de la listview dans Excel.
le code du bouton

Private Sub bp_excel_Click(Index As Integer)
frm_pause.Show 'afficher la form
Call exportexcel 'lancer le module pour excel
frm_pause.Hide 'fermer la form
End Sub

Sub exportexcel()
Dim i As Integer, j As Integer
'Demarrer Excel
Set DocExcel = CreateObject("Excel.Application")


'Supprime l'affichage des messages d'erreurs ou de confirmation de suppression, ...
DocExcel.DisplayAlerts = False


'Ajout eun nouveau classeur
DocExcel.Workbooks.Add
'Selectionne la feuille du classeur
DocExcel.Sheets("Feuil2").Select
'On supprime cette feuille
DocExcel.ActiveWindow.SelectedSheets.Delete
'On fait pareil avec la feuille 3
DocExcel.Sheets("Feuil3").Select
DocExcel.ActiveWindow.SelectedSheets.Delete
'On selectionne la feuille 1 (la seule qui reste)
DocExcel.Sheets("Feuil1").Select
'On change le nom de celle ci
Dim R
Set R = CreateObject("WScript.Shell")
'DocExcel.Sheets("Feuil1").Name = Left("Liste Des films", 31)
   
'On change la largeur de la colonne
DocExcel.Columns("A:A").ColumnWidth = 30
DocExcel.Columns("B:B").ColumnWidth = 30
DocExcel.Columns("C:C").ColumnWidth = 30
DocExcel.Columns("D:D").ColumnWidth = 30
DocExcel.Columns("E:E").ColumnWidth = 30
DocExcel.Columns("F:F").ColumnWidth = 20
'On Aligne les cellules des colonnes
DocExcel.Columns("A:F").HorizontalAlignment = 3
'DocExcel.Columns("A:F").HorizontalAlignment = 3


'On rempli les cases
EcrireExcel Chr(65), 1, "Nom de l'Enfant"
DocExcel.Selection.Font.Bold = True


For i = 65 To 70                            'Colonnes
    EcrireExcel Chr(i), 1, Frm_Accueil.List.ColumnHeaders(i - 64).Text
    DocExcel.Selection.Font.Bold = True    If Frm_Accueil.List.ColumnHeaders(i - 64).Width 0 Then DocExcel.Columns(Chr(i) & ":" & Chr(i)).ColumnWidth 0
    DocExcel.Cells(1, i - 64).Borders.Value = 1
    DocExcel.Cells(1, i - 64).Borders(3).LineStyle = 0
     Next i
For j = 1 To Frm_Accueil.List.ListItems.Count    'Lignes
    'EcrireExcel "A", j + 1, "" & j & ""
    EcrireExcel "A", j + 1, Frm_Accueil.List.ListItems(j).Text '
    frm_pause.Progbar.Value = 100 * j / Frm_Accueil.List.ListItems.Count
   For i = 65 To 70                        'Colonnes
        EcrireExcel Chr(i + 1), j + 1, Frm_Accueil.List.ListItems(j).ListSubItems(i - 64).Text
        DocExcel.Cells(j + 1, i - 64).Borders.Value = 1
        DocExcel.Cells(j + 1, i - 64).Borders(3).LineStyle = 0
        DocExcel.Cells(j + 1, i - 64).Borders(4).LineStyle = 0
    Next i
'-- Bordure de la derniere colonne
    DocExcel.Cells(j + 1, 7).Borders.Value = 1
    DocExcel.Cells(j + 1, 7).Borders(3).LineStyle = 0
    DocExcel.Cells(j + 1, 7).Borders(4).LineStyle = 0
 Next j
'On rend Exel visible
If Not Save Then DocExcel.Visible = True
Set DocExcel = Nothing
End Sub

je voudrais lors d'un clik sur l'image on arrete le processus Excel et on ferme la form,est ce possible
merci
Petchy

3 réponses

Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
13
Salut,

Sert toi peut-être d'un variable en boolean, que tu vérifies dans ta procédure : exportexcel, et quand elle passe à TRUE(donc click sur l'image, tu sorts "proprement") de ta procédure puis ferme la form...

A+
Exploreur

 Linux a un noyau, Windows un pépin
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
19 mai 2015
3
Salut Exploreur

comment intégrer une variable en boolean et ensuite l'interpréter pour sortir proprement  
merci
petchy
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
13
Re, 

Moi ce que je vois(pas sûr que cela soit la meilleurs solution), c'est dans tes boucles :

En déclartion général de ta Form :

Dim bStop As Boolean

Dans tes boucles :

For .................
' Le test de la variable
 DoEvents If bStop Then Set DocExcel Nothing : bStop False : Exit Sub
 

Dans l'EVE click de l'image

bStop = True

A+
Exploreur

 Linux a un noyau, Windows un pépin