Icone dans la barre d'un userform

Fermé
remy 42 - 17 avril 2012 à 10:11
ironik971 Messages postés 1 Date d'inscription jeudi 15 mai 2014 Statut Membre Dernière intervention 15 mai 2014 - 15 mai 2014 à 11:02
Bonjour,


Je voudrai afficher une icone dans la barre de titre d'un userform, après m'être déjà renseigné, j'ai pu récupérer un bout de code comme suit :
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
      (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
 
Private Declare Function SendMessageA Lib "user32" _
      (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, _
      ByVal lParam As Long) As Long
 
Private Declare Function ExtractIconA Lib "shell32.dll" _
      (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
 
 
 
Private Sub UserForm_Initialize()
    Dim Fichier As String
    Dim x As Long
    
    'Chemin et nom du fichier icône à afficher
    Fichier = "C:\Documents and Settings\mimi\dossier\bouton.ICO"
    'Vérifie si le fichier existe
    If Dir(Fichier) = "" Then Exit Sub
    
    x = ExtractIconA(0, Fichier, 0)
    SendMessageA FindWindow(vbNullString, Me.Caption), &H80, False, x
End Sub


Cependant, il ne fonctionne pas pour moi. Bien entendu j'ai adapté et vérifié mon chemin vers mon icone. Si quelqu'un saurait pourquoi cela ne fonctionne pas.
Une autre question, mes icones doivent-elles avoir un format précis pour être prises en comptes ?

9 réponses

clark...kent
17 avril 2012 à 10:24
j'ai lu un post similaire il y a quelques minutes (que je ne retrouve pas) mais de mémoire le post avait été résolé par un problème de guillement ou apostrophe dans le chemin d'accès qui sont fonction des espaces dans le chemin d'accès mais je peux pas t'en dire plus...
0
Merci, je vais renseigner sur internet sur cette piste là alors.
En attendant, si d'autre personnes veulent réagir...;)
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
17 avril 2012 à 11:23
Bonjour,
Tu à mis Exactement le même chemin que le modèle ?
Fichier = "C:\Documents and Settings\mimi\dossier\bouton.ICO"

Cherche une icône sut ton PC et met le bon chemin et fichier.
A+
0
Non non, le chemin donnée était un exemple donnée par internaute pour effectuer la manip, bien entendu j'ai mis un chemin correspondant à mes dossiers allant jusqu'à un icône existant sur mon PC, mais cela ne fonctionne pas...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 17/04/2012 à 15:06
J'ai déjà employer ce système et ça fonctionne impec.
Tu a probablement une erreur dans le libellé du chemin.
Met un stop juste après if dir...
If Dir(Fichier) = "" Then Exit Sub
Stop

S'il ne s'arrête pas sur le stop c'est que le chemin est pas bon.
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
0
J'y comprend rien du tout...j'ai mis stop là où vous m'avez dit de le mettre et lorsque je lance il s'arrête sur stop (surligné en jaune). Ce qui veut donc dire que mon chemin est bon si j'ai bien compris, cependant, aucun icône d'affiché. Est-ce que le format (512 * 512 pour mon icone) peut en être la cause ?
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 17/04/2012 à 16:30
tu dois avoir une icône 16 x 16 ou 32 x 32
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
0
Même après redimentionnement...tant pis j'abandonne^^, après tout ce n'est pas si grave...
0
ironik971 Messages postés 1 Date d'inscription jeudi 15 mai 2014 Statut Membre Dernière intervention 15 mai 2014
Modifié par ironik971 le 15/05/2014 à 11:03
Bonjour,

Vu l'ancienneté de la question, je suppose que la réponse a été trouvée (ou pas).
Mais du coup je peux apporter la solution qui marche :
- Cree ou télécharge une VRAIE icone, pas une image renommé avec .ico comme extention. Sa n'a jamais marché autrement pour moi.
- Place la procédure ici placée dans Userform_Initialize dans Userform_Activate. Je sais pas si ça change grand chose mais ça marche pour moi.
- L'icone ne doit pas etre forcément en 16x16 ou 32x32, perso ça marche très bien avec du 512x512.
- Si tu veux vérifier que ça marche, met le lien d'un fichier .exe . Il ira extraire l'icone et l'affichera. Sa marche à tous les coup (pour moi) et permet de vérifier que du coup le code fonctionne.
0