Bonjour,
je voudrais lister toutes les actions de mon workbook_beforeClose
dans un listview,comment faire
merci
Bonjour,
je voudrais lister toutes les actions de mon workbook_beforeClose
dans un listview,comment faire
merci
Crée une form dans VBA et met y un listbox.
Sur l'évènemen before close tu charge la form contenant les choix
merci, j'ai essayé comme tu m'as dit mais sans succès
je voudrais que mon listbox affiche par exemple et ce quand l'évenement(worbook_beforeclose) le fait
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <div style="margin-left:40px">Private Sub Workbook_BeforeClose(Cancel As Boolean) frmBackup.Show frmBackup.lstBackup.List (Workbook_BeforeClose) 'restauration d l'icône système If hIcon Then SetClassLongA hwnd, -14, hIcon 'Gestion des erreurs On Error Resume Next Application.CommandBars("Menu").Delete On Error GoTo 0 'Acivation de la feuille splashscreen SplashScreen.Activate </div>
frmBackup.Show
frmBackup.lstBackup.List (Workbook_BeforeClose)
If hIcon Then SetClassLongA hwnd, -14, hIcon
SplashScreen.Activate
Merci,une idée
frmBackup.Show
frmBackup.lstBackup.List (Workbook_BeforeClose)
c'est quoi ca?
Workbook_BeforeClose est une sub qui se lance lors de la fermeture de ton workbook... Les actions qui sont a executer lors de la fermeture c'est toi qui dois les parametrer.
Si tu veux par exemple, lorsqu'on veut fermer ton classeur, tu met une liste de choix :
Enregistrer
fermer sans enregistrer
annuler
etc...
Sinon, tu peux aussi faire ca:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Private Sub Workbook_BeforeClose(Cancel As Boolean) frmBackup.Show frmBackup.lstBackup.additem("Début de sauvegarde...") workbook.save frmBackup.lstBackup.additem("Sauvegarde OK") frmBackup.lstBackup.additem("Fermeture...") Unload frmBackup
j'ai essayé ton code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Sub Workbook_BeforeClose(Cancel As Boolean) frmBackup.Show frmBackup.lstBackup.additem("Début de sauvegarde...") workbook.save frmBackup.lstBackup.additem("Sauvegarde OK") frmBackup.lstBackup.additem("Fermeture...") Unload frmBackup End sub
Il ouvre bien la fenetre frmbackup
il n'ajoute rien dans le lstbackup
on dirait que le programme reste en attente de quelque chose parceque
quand je ferme la fenetre(frmbackup) il continue
sinon c'est bien cela que je voulais
merci pour ta patience
Je ne l'ai pas testé c'est du live lol je vais aller voir ce que ca dit lol
Bonsoir
Avec Excel, une boite de dialogue est modale par défaut. Il faut la rendre non modale pour que l'exécution continue.
De plus, il faut la redessiner après chaque ajout de valeur dans la liste pour afficher la nouvelle ligne.
Dès lors, ton code devient
Ok?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Private Sub Workbook_BeforeClose(Cancel As Boolean) frmbackup.Show False frmbackup.lstbackup.AddItem ("Début de sauvegarde...") frmbackup.Repaint ThisWorkbook.Save frmbackup.lstbackup.AddItem ("Sauvegarde OK") frmbackup.Repaint frmbackup.lstbackup.AddItem ("Fermeture...") frmbackup.Repaint Unload frmbackup End Sub
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Dans le code de la form tu mets ca :
Et dans Worbook
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Sub UserForm_Activate() frmbackup.lstBackup.AddItem ("Début de sauvegarde...") ThisWorkbook.Save frmbackup.lstBackup.AddItem ("Sauvegarde OK") frmbackup.lstBackup.AddItem ("Fermeture...") Unload frmbackup 'Ou alors supprimer cette derniere et mettre un bouton sur la 'fenêtre qui ferme celle-ci End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub Workbook_BeforeClose(Cancel As Boolean) frmbackup.Show End Sub
Mais ca va assez vite alors, il faudrait chercher pour faire une petite pause lol enfin je te laisse voir ca...
Ca ne fonctionnait pas car quand il a lancé la form il attend pour faire les autres action, c'est normal. Quan tu la ferme, il exécute la suite... LOL
Alé bonne chance
merci Pierre et vesta
le code de pierre est plus visuel
encore merci
Partager