Microsoft 365 Frame sur Userform

TCHIS

XLDnaute Occasionnel
Bonjour à tous et à toutes.

Je me suis lancé dans la conception de BD sous excel depuis peu.

Alors il y a certaines fonctions je voudrai attribuer à mon USF.

D'abord mon USF possède un fond d'image et je souhaiterai avoir une Frame dont le fond est transparent et qui s'afficherai après l'appui sur un bouton (le sens d'apparition de cette frame serait du bas vers le haut pour s'arrêter net en dessous d'une Listview qui est déjà opérationnelle ).

Pourriez vous s'il vous plait m'apporter de vos lumières ?
 

patricktoulon

XLDnaute Barbatruc
a ben oui a chaque modif il faut le refaire car tu modifie le dessin sur HDC de la frames


ensuite
donc les api gdi 32 ne semblent pas faire leur job sur ta version d'excel

car les coins arrondis sur frame transparente c'est la frames transparente( complètement ) et un controls Image ajouté (transparent aussi) sur le quel je load une picture que je fait dynamiquo avec une shap /copy /metafichier
c'est cette dernière partie qui ne fonctionne pas visiblement
je vais regarder ça dans le doute je te fait l'exemple avec les api déclarées
 

fanch55

XLDnaute Barbatruc
Cela fonctionne comme attendu après correction du path du Desktop .

J'ai tracé et vu que tu passais par un fichier temporaire sur le Desktop .
J'ai déménagé toutes mes données du disque C sur le D pour décorréler le système des données .

Comme tu recherches le path via la variable Userprofile qui pointe toujours sur le C: ( bug classique lors des déplacements de folders utilisateur ) et que tu as mis On error resume next dans la version macro Excel4,
le fichier temp non trouvé n'est pas du tout utilisé et (oh surprise !!!), le picture.load aboutit à une image "vide".

Cela faisait planter ta dernière version qui n'avait pas de resume next , cela m'a alerté et mis sur la voie .
J'ai donc mis :
FicTmp = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\ima.wmf"

et là, je peux te dire que toutes tes versions fonctionnent que ce soit Api ou Excel4 👍
 

patricktoulon

XLDnaute Barbatruc
re
hah... ben a la bonne heure
je pense que tu a changé d'avis sur le coté bancale maintenant
alors oui en effet le environ renvoie sur C peut être effectivement devrais je passer par par le specialfolder
ou même thisworkbook.path histoire de zapper l'object shell

a ben je suis content celui avec les apis ,j'étais pas sur vu que je ne peux tester les déclarations en 64

perso je préfère les macro4 je copie la les fonctions dans n'importe quel projet et hop

pour la re rendre opaque
je la masque et la démasque et je supprime le controls image qui sert de cadre
VB:
Private Sub CommandButton6_Click()
    With Frame1
        .Visible = Not .Visible: .Visible = Not .Visible' on secoue le cocotier
        On Error Resume Next
        .Remove ("cadre")
        On Error GoTo 0
    .Visible = True' elle  de toute facon visible  à la fin
    End With
End Sub
 

Statistiques des forums

Discussions
312 104
Messages
2 085 346
Membres
102 868
dernier inscrit
JJV