PAGE D'ACCUEIL

Résolu
Messages postés
71
Date d'inscription
lundi 24 juillet 2006
Statut
Membre
Dernière intervention
6 septembre 2006
-
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
-
Bonjour ,

je n'ai pas trouvé de timer dans le visual basic d'exel
je voudrais afficher une page d'accueil pendant 3 secondes à l'ouverture du classeur
avez-vous une astuce ?

Merci d'avance

18 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut Casy,

HéHé, le coup des images, c'est perso, (j'ai trouvé en fouillant les autres) pour le code pas de prob, je te chercherai ça tout à l'heure et te l'enverrai par MP. (on m'a d'ailleurs gentiment donné le lien, qques modif à faire sur les couleurs, c'est tout. Bon plus l'entete avec les images)
Pour de bon, ça me supprime la parenthèse, là je viens de vérifier, elle était là :
Public Declare Function KillTimer Lib "user32" _
    (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long

Bizarre, cette affaire, il m'avait semblé l'avoir déjà vu.

Pour les images, il suffit dans le code, pendant la transcription en html, de placer l'entête avec une image stocké sur un hébergeur.

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut

essaie ce code, je pense que ce sera bon :

<small> Coloration syntaxique automatique </small>

' *** dans le module ThisWorkBook :

Option Explicit 

Private Declare Function FindWindowA Lib "user32" _ 


    ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Sub Workbook_Open()
  hwnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", _ 

    "X", "D") & "Frame", Application.Caption)

    Sheets("Nom de ta feuille de présentation").Select
    Call StartTimer
End Sub

' *** dans un Module :

Option Explicit 

Public Declare Function SetTimer Lib "user32" _ 
    ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long 

Public Declare Function KillTimer Lib "user32" _ 
    ByVal hwnd As Long, ByVal nIDEvent As Long) As Long 

Public TimerID  As Long 
Public hwnd     As Long 

Sub StartTimer() 
    TimerID = 1 
    SetTimer hwnd, TimerID, 3000, AddressOf MonTimer
' *** remplace 3000 (3 secondes) par la valeur voulue
End Sub 

Public Sub MonTimer(ByVal hwnd As Long, ByVal nIDEvent As Long, _ 
                    ByVal uElapse As Long, ByVal lpTimerFunc As Long) 

    Sheets("Nom de la feuille qui vient après la présentation").Select
    Call KillTimer(hwnd, TimerID)
End Sub 
<small> Coloration syntaxique automatique</small>

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Re,
essaie ceci :

<small>
Coloration syntaxique automatique </small>
' *** dans le module ThisWorkBook :
Private Sub Workbook_Open() 
    UserForm1.Show   ' remplace UserForm1 par le nom que tu as attribué
End Sub 

' *** Dans UserForm1 :
Option Explicit 

Private Declare Function FindWindowA Lib "user32" _ 
    ByVal lpClassName As String, ByVal lpWindowName As String) As Long 

Private Sub UserForm_Activate() 
    Call StartTimer 
End Sub 

Private Sub UserForm_Initialize() 
  hwnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", _ 
    "X", "D") & "Frame", Me.Caption) 

End Sub 

Private Sub UserForm_Terminate() 
    Call KillTimer(hwnd, TimerID) 
End Sub 

' *** dans un Module :
Option Explicit 

Public Declare Function SetTimer Lib "user32" _ 
    ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long 

Public Declare Function KillTimer Lib "user32" _ 
    ByVal hwnd As Long, ByVal nIDEvent As Long) As Long 

Public TimerID  As Long 
Public hwnd     As Long 

Sub StartTimer() 
    TimerID = 1 
    SetTimer hwnd, TimerID, 3000, AddressOf MonTimer
' *** remplace 3000 (3 secondes) par la valeur voulue
End Sub 

Public Sub MonTimer(ByVal hwnd As Long, ByVal nIDEvent As Long, _ 
                    ByVal uElapse As Long, ByVal lpTimerFunc As Long) 

Unload UserForm1
' *** ici tu peux lancer un autre UserForm (NomUserForm.Show)
End Sub 
<small>
Coloration syntaxique automatique</small>

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Messages postés
71
Date d'inscription
lundi 24 juillet 2006
Statut
Membre
Dernière intervention
6 septembre 2006

Je ne veux pas être indiscret mais c'est ton job pour répondre aussi vite
merci je regarde
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Non, je suis un débutant qui apprend aussi, en aidant les autres quand je peux.

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Messages postés
71
Date d'inscription
lundi 24 juillet 2006
Statut
Membre
Dernière intervention
6 septembre 2006

Je n'ai pas réussite ce soir et il n'y a rien qui se passe. je n'ai pas d'erreur mais j'ai ces trois
lignes en rouge
a++

Private Declare Function FindWindowA Lib "user32" _
    ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Public Declare Function SetTimer Lib "user32" _
    ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long


Public Declare Function KillTimer Lib "user32" _
    ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
As-tu bien inséré un nouveau module ? (qui s'appelle par défaut Module1)
La toute prmière ligne doit être Option Explicit puis ces trois lignes viennent à la suite.

Si tu fais un copier coller de mon code, tout en remplaçant UserForm1 (dans le code) par le bon nom de ton UserForm, cela doit fonctionner (testé chez moi, bien sûr)

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Arf, je sais pourquoi, j'ai ma Coloration Syntaxique qui me fait défaut (faudra que je règle ce problème) :

Il me supprime la parenthèse :

Private Declare Function FindWindowA Lib "user32" ( _
    ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Public Declare Function SetTimer Lib "user32" ( _
    ByVal hwnd As Long, ByVal nIDEvent As Long, _
    ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long

Public Declare Function KillTimer Lib "user32" ( _
    ByVal hwnd As Long, ByVal nIDEvent As Long) As Long

Je te les ai mise en rouge, il faut les rajouter, ainsi qu'un espace après.

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Coloration syntaxique

Houuuu, l'excuse en bois.

C'est tout simplement parce que tu réponds plus vite que ton ombre, t'as pas lme temp de tout taper.

Pas mal ton code de coloration, surtout avec les images. Va faloir que tu me le passe.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
71
Date d'inscription
lundi 24 juillet 2006
Statut
Membre
Dernière intervention
6 septembre 2006

Nickel il faut que je fasse une belle présentation

Bon week end
Messages postés
71
Date d'inscription
lundi 24 juillet 2006
Statut
Membre
Dernière intervention
6 septembre 2006

Si j'adapte le code pour afficher une feuille en mettant dans le code de la ce que je dois mettre
dans le code de l'userform et changeant userform partout par le nom de la feuille

tu penses que cela peut marcher ?

en fait ma page d'accueil c'est une feuille

a+
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Non,

ça ne marchera pas. (plusieurs modifs à faire)
Ne peux -tu pas adapter une Form en page d'accueil ?

++
Messages postés
71
Date d'inscription
lundi 24 juillet 2006
Statut
Membre
Dernière intervention
6 septembre 2006

Pas de problème je vais chercher un peu et refaire pas page d'accueil
car je pense que l'on peut changer les polices du texte de l'userform et que l'on peut mettre un peu de couleur et que l'on peut l'afficher en plein écran

a+
Messages postés
71
Date d'inscription
lundi 24 juillet 2006
Statut
Membre
Dernière intervention
6 septembre 2006

Salut Mortalino,

La page d'accueil avec un userform, ce n'est pat top.
Peut-être que je mis prend comme un manche. J'ai refait le code pour essayer d'afficher une feuille
pendant 3s et ensuite aller sur une page menu.Sans succés

Si tu as une idée ?

Merci et bonne journnée à tous
Messages postés
71
Date d'inscription
lundi 24 juillet 2006
Statut
Membre
Dernière intervention
6 septembre 2006

Super c'est nickel, maintenant je vais faire un mix avec un autre code pour que cela soit en plein écran

Bon week-end à toi
Messages postés
71
Date d'inscription
lundi 24 juillet 2006
Statut
Membre
Dernière intervention
6 septembre 2006

Un petit soucis

La page d'accueil  s'affiche bien pendant 3 seconde et j'arrive bien sur ma page menu
Néanmoins, lorsque je clique sur l'un de mon lien dans mon menu pour aller une autre feuille,
il affiche la feuille pendant 3 secondes et revient à la page menu

Est que c'est possible d'arrêter le timer une fois que la feuille menu est affichée ?

a+
Messages postés
71
Date d'inscription
lundi 24 juillet 2006
Statut
Membre
Dernière intervention
6 septembre 2006

Private Declare Sub
Sleep
Lib "kernel32" (ByVal dwMilliseconds As Long)



Sleep 5000

Salut Mortalino,

j'ai en fin réussi à afficher une page d'accueil et à faire une paus avec la commande ci dessus
j'avais un problème avec ton code qui ne fonctionnait pas bien

J'ai exécuté une macro en auto_open(page d'accueil) et je lui ai mis ce code et ensuite je l'ai dirigé vers le menu

Bon week-end
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Bien vu la fonction Sleep 

Content de savoir que tu aies réussi à faire ce que tu voulais.

Bon Week-end aussi !

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--