XL 2019 Changer l'écran de démarrage Excel 2019 au lancement

YAP32

XLDnaute Occasionnel
Bonsoir à tous,

Je voulais savoir y a-t-il une possibilité de changer l'écran de démarrage Excel 2019 pour un fichier bien spécifique je me suis dit si DoneEx avec (Splash image) parvient à le faire il y a peut-être une possibilité de le réaliser avec nos propres moyens.

PS: Je ne veux pas utiliser un userform car celui-ci vient après le démarrage et même si je désactive l'option "Activer l'écran de démarrage au lancement" c'est un userform avec titre je l’ai fait mais pas trop beau ;)

Merci et bonne soirée

Yap32
 
Dernière édition:
Solution
Bonjour
un xla dans le xlstart ????
a ben ça c'est une drôle d'idée
ne te reste plus qu'a activer ton xla dans le fichier alors

met ceci dans un module
VB:
Sub AddRefXla()

    chemin_xla = environ("appdata")&"\Microsoft\Excel\XLSTART\samradapps_datepicker.xlam"

    On Error Resume Next
    ThisWorkbook.VBProject.References.AddFromFile (chemin_xla)


End Sub

et dans le workbook_open
VB:
AddRefXla

il faut que la référence
microsoft visual basic for application extensibility 5.x soit activée

fanch55

XLDnaute Barbatruc
Un peu comme ce qu'on peut voir sur tes gif ?... 🤡
Tout à fait, ce n'est pas vraiment gênant mais si l'explorateur est plus grand que le SplashScreen,
l'intérêt de ce dernier n'existe plus si on ne peut pas le voir.
Il doit y avoir du code vbs capable de mettre en premier plan l'application,
mais si le raccourci "cmd" fait déjà le tavail ...
 

patricktoulon

XLDnaute Barbatruc
re
le cmd ne fait pas le travail puisque le splatch d'origine apparait quand même chez moi
comme il ne met pas l'application visible à false (c'est le code dans le classeur qui le fait) alors effectivement le getwindowlong de l'app reste on top
mais chez moi j'ai les deux splatch
 

fanch55

XLDnaute Barbatruc
re
le cmd ne fait pas le travail puisque le splatch d'origine apparait quand même chez moi
comme il ne met pas l'application visible à false (c'est le code dans le classeur qui le fait) alors effectivement le getwindowlong de l'app reste on top
mais chez moi j'ai les deux splatch
1670243515161.png

/e or /embedPrevents the Excel startup screen from appearing and a new blank workbook from opening.

Dans le classeur Excel pour pouvoir l'appeler via cmd ou vbs, à l'ouverture, j'y ai mis :
VB:
Private Sub Workbook_Open()
    If Application.Visible Then Application.Visible = False
    FrmSplash.Show
End Sub
et dans le module:
VB:
Sub Close_Splash()
    Unload FrmSplash
    If Not Application.Visible Then Application.Visible = True
End Sub

La solution du Vbs me plait bien car il évite de devoir ajuster le raccourci du Cmd, mais il faudrait pouvoir rendre la main à Excel sans cliquer dessus .
 

YAP32

XLDnaute Occasionnel
Bonjour à tous,

Chez moi tous fonctionnent parfaitement comme dans #49 (sous mes documents via le script de @patricktoulon ) mais je souhaitai

  1. déplacer mon fichier xlsm dans un sous dossier "C:\demo\ " comme d'écrit dans #53
  2. la fenêtre active d'Excel (car il faut chaque fois cliquer quelque part sur Excel) comme dans #54.
Déjà ça m'aidera, si vous pouvez m'écrire la syntaxe pour "C:\demo\No_Splash.xlsm" et d'activer la feuille Excel.

VB:
set w=.workbooks.open("C:\demo\No_Splash.xlsm")
'wscript.sleep 300
w.sheets(1).activate

Car celui-ci ne répond pas quand il s'agit d'un raccourci sur le desktop.

PS: Dans 'Thisworkbook' Private Sub Workbook_Open () quand on change Application.Visible =True de place par rapport au userform les fenêtres s'ouvre est Excel reste en invisible.

Merci.

Kevin
@+
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
aben si tu deplace ton fichier tout le temps aussi on est pas arrivé
donc dans ton classeur avec ton splatchscreen tue va coller cela dans le module
et a chaque fois que tu va déplacer ton fichier lance cette sub
tu va avoir le tarter dans le dossier du fichier et le raccourci sur le bureau
libre a toi de changer l'icon après
VB:
Sub createLanceurAndShortcut()
Dim lanceurpath, x&, Link, WShelL
lanceurpath = ThisWorkbook.Path & "\start" & ThisWorkbook.Name & ".vbs"
code = "||With CreateObject(""excel.application"")"
code = code & "|.visible=false|Set w = .Workbooks.Open(""" & ThisWorkbook.FullName & """)|.Windows(w.Name).Activate|w.Sheets(1).Activate|End With"

x = FreeFile: Open lanceurpath For Output As x: Print #x, Replace(code, "|", vbCrLf): Close #x

Set WShelL = CreateObject("WScript.Shell")

' Le chemin du fichier raccourci
linkFile = Environ("userprofile") & "\Desktop\" & ThisWorkbook.Name & ".lnk"

'Création du raccourci
Set Link = WShelL.CreateShortcut(linkFile)

'target du raccourci
Link.TargetPath = lanceurpath
'link.IconLocation = "chemin d'un exe ou d'un icon "
Link.WorkingDirectory = ThisWorkbook.Path

''// Sauve le raccourci
Link.Save

End Sub

demo.gif
 

YAP32

XLDnaute Occasionnel
re
aben si tu deplace ton fichier tout le temps aussi on est pas arrivé
donc dans ton classeur avec ton splatchscreen tue va coller cela dans le module
et a chaque fois que tu va déplacer ton fichier lance cette sub
tu va avoir le tarter dans le dossier du fichier et le raccourci sur le bureau
libre a toi de changer l'icon après
VB:
Sub createLanceurAndShortcut()
Dim lanceurpath, x&, Link, WShelL
lanceurpath = ThisWorkbook.Path & "\start" & ThisWorkbook.Name & ".vbs"
code = "||With CreateObject(""excel.application"")"
code = code & "|.visible=false|Set w = .Workbooks.Open(""" & ThisWorkbook.FullName & """)|.Windows(w.Name).Activate|w.Sheets(1).Activate|End With"

x = FreeFile: Open lanceurpath For Output As x: Print #x, Replace(code, "|", vbCrLf): Close #x

Set WShelL = CreateObject("WScript.Shell")

' Le chemin du fichier raccourci
linkFile = Environ("userprofile") & "\Desktop\" & ThisWorkbook.Name & ".lnk"

'Création du raccourci
Set Link = WShelL.CreateShortcut(linkFile)

'target du raccourci
Link.TargetPath = lanceurpath
'link.IconLocation = "chemin d'un exe ou d'un icon "
Link.WorkingDirectory = ThisWorkbook.Path

''// Sauve le raccourci
Link.Save

End Sub

Regarde la pièce jointe 1157229
UN TOUT GRAND MERCI 🤲

Cependant l'ancien code

VB:
c=wscript.ScriptFullname
c=mid(c,1 ,instrrev(c,"\"))


with createobject("excel.application")
.visible=false
.workbooks.open(c &"monclasseur.xlsm")
'wscript.sleep 300


end with

fonctionne très bien si je garde le nom du fichier original (j'efface simplement '- raccourci') et ça fonctionne. Je vais essayer la nouvelle syntaxe car un travail extraordinaire, il fallait y penser utiliser du VBA pour mettre en route.la création. Merci Ptarick.

Mais j'ai un nouveau souci j'utilise un "Date Picker" dont le nom "samradapps_datepicker.xlam" mais il ne s'affiche plus. Par contre pour les autres classeurs pas de souci y fonctionne parfaitement uniquement quand j'ouvre mon classeur via le script sa bug.

Voici le chemin:

C:\Users\KevinStavaux\AppData\Roaming\Microsoft\Excel\XLSTART

Merci
@+
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
Bonjour
un xla dans le xlstart ????
a ben ça c'est une drôle d'idée
ne te reste plus qu'a activer ton xla dans le fichier alors

met ceci dans un module
VB:
Sub AddRefXla()

    chemin_xla = environ("appdata")&"\Microsoft\Excel\XLSTART\samradapps_datepicker.xlam"

    On Error Resume Next
    ThisWorkbook.VBProject.References.AddFromFile (chemin_xla)


End Sub

et dans le workbook_open
VB:
AddRefXla

il faut que la référence
microsoft visual basic for application extensibility 5.x soit activée
 
Dernière édition:

YAP32

XLDnaute Occasionnel
Bonjour
un xla dans le xlstart ????
a ben ça c'est une drôle d'idée
ne te reste plus qu'a activer ton xla dans le fichier alors

met ceci dans un module
VB:
Sub AddRefXla()

    chemin_xla = environ("appdata")&"\Microsoft\Excel\XLSTART\samradapps_datepicker.xlam"

    On Error Resume Next
    ThisWorkbook.VBProject.References.AddFromFile (chemin_xla)


End Sub

et dans le workbook_open
VB:
AddRefXla

il faut que la référence
microsoft visual basic for application extensibility 5.x soit activée
Bonjour,

Je vais le tester dès que possible

PS: Pour Date Picker : http://samradapps.com/datepicker

Un tout grand MERCI.
 
Dernière édition:

YAP32

XLDnaute Occasionnel
Bonjour
un xla dans le xlstart ????
a ben ça c'est une drôle d'idée
ne te reste plus qu'a activer ton xla dans le fichier alors

met ceci dans un module
VB:
Sub AddRefXla()

    chemin_xla = environ("appdata")&"\Microsoft\Excel\XLSTART\samradapps_datepicker.xlam"

    On Error Resume Next
    ThisWorkbook.VBProject.References.AddFromFile (chemin_xla)


End Sub

et dans le workbook_open
VB:
AddRefXla

il faut que la référence
microsoft visual basic for application extensibility 5.x soit activée
Bonjour,

microsoft visual basic for application extensibility 5.3 est bien activé.

L'ouverture du classeur via VBScript échoue, J'ai un Msg d'Excel: "Désolés, nous ne trouvons pas... "samradapps_datepicker.xlam" Peut-être l'avez-vous déplacé ou supprimer" l'emplacement du fichier qui est bien correct (revérifié). Faut-il aussi ajouter dans le vbscript?

Ouverture fonctionnelle du Date Picker même avant la création de la macro et du workbook_open.
càd quand j'ouvre mon classeur Excel sans vbs DatePicker est bien existant dans le ruban et dans VBAProject.


Bien à vous,

Merci
@+
 
Dernière édition:

YAP32

XLDnaute Occasionnel
re
mais c'est mon calendrier V 5 ça !!?
mais qu'est que vous lui avez fait le pauvre 🤣
Mais je n’ai rien fait:rolleyes: 🤣🤣

Pour votre information à l'heure actuelle j'utilise votre première syntaxe qui fonctionne parfaitement même avec le raccourci et l'icône souhaiter.

VB:
c=wscript.ScriptFullname
c=mid(c,1 ,instrrev(c,"\"))


with createobject("excel.application")
.visible=false
.workbooks.open(c &"monclasseur.xlsm")
'wscript.sleep 300


end with
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 923
Membres
101 840
dernier inscrit
SamynoT