Affichage userform modal

Fermé
fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 - 19 sept. 2018 à 17:26
fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 - 20 sept. 2018 à 14:05
Bonjour,

Je travaille sur un formulaire Excel qui tourne uniquement avec des userform , ma problèmatique est que tout mes collègues ont des tailles d'écrans différentes et donc certains n'ont pas le plaisir d'avoir l'uf dans toute son intégralité et je ne trouve pas quelle commande utiliser pour demander un affichage "selon la taille de l'écran"?

Merci d'avance pour vos conseils


5 réponses

Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
19 sept. 2018 à 17:42
Bonjour,

pour adapter automatiquement l'affichage d'une plage à la résolution de ton écran il faut écrire un bout de code VBA à coller dans la Thiswokbook
pour écrire le code donne nous les limites de ta plage exemple A1:X30
0
fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 58
19 sept. 2018 à 18:00
Bonjour et Merci
Ce n'est pas ma plage le problème, moi je travail sur un 24 pouces et j'ai un collègue qui bosse sur un 12.6 pouce donc son écran fait 1 quart du mien et un autre qui est sur du 15 pouce etc etc... je ne peux pas me permettre de coder et paramètrer des dimensions en fonction d'un utilisateur et surtout que le jour ou ils changent de format c'est à refaire j'imagine?
0
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
Modifié le 19 sept. 2018 à 18:18
Re,

Tu as mal compris, le code que je te propose est d'afficher une surface en fonction de l'écran sur lequel le fichier est ouvert.
si au départ tu veux afficher la plage A1:X20 par exemple lorsque tu ouvriras le fichier sur un 15 pouces le code zoomera la surface prévue et dézoomera sur un écran plus petit sans altérer le fichier

Autrement mettre ton Userform en modal ne changera pas l'affichage mais te permettra de te déplacer sur la plage l'userform active

pour mettre ton Userform en modal il faut ouvrir le VBA cliquer sur l'Userform et dans les propriétés de l'Userform rechercher ShowModal et la mettre en False

0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
19 sept. 2018 à 18:53
Bonjour,

Voici un exemple, il faudra l'adapter

https://www.cjoint.com/c/HItq0ia7yfQ

0
fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 58
20 sept. 2018 à 09:38
Bonjour et merci à tout les 2

Si j'ai compris ton exemple cs_Le Pivert, chaque userform utilise une méthode différente
L'UF 1 joue sur le zoom alors que le 2 redimensionne chaque éléments
Dans le deuxième cas qu'advient il des left et top de ces éléments une fois leur taille révisées? je ne vois pas à quel moment image1 est recalibré?

Mike, pour répondre à ta question donc, ma plage est A1:W40
0
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
20 sept. 2018 à 11:36
Re,

Oui le Modal est associé a une Userform

pour répondre au zoom automatique, clic droit sur l'onglet de ta feuille/Visualiser le code double clic sur Thiswokbook pour ouvrir le module qui lui est associé et colle ce code

Private Sub Workbook_Open()
On Error Resume Next
Application.ScreenUpdating = False
[A1:W40].Select
ActiveWindow.Zoom = True
Application.ScreenUpdating = True
[A1].Select
End Sub


le fichier doit être enregistré avec l’extension .XLSM ou .XLS
0

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

Posez votre question
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
20 sept. 2018 à 11:09
Je ne comprends pas ton problème avec le control image1!
L'image est dimensionnée dans le control

Private Sub CommandButton1_Click()
Dim Fichier As String
    Fichier = "C:\Users\monimage.jpg"'adapter le chemin
    'Vérifie si le fichier existe.
    If Dir(Fichier) <> "" Then
        'si le fichier existe, il est chargé pour visualisation.
        Image1.Picture = LoadPicture(Fichier)
         Image1.PictureSizeMode = fmPictureSizeModeStretch ' a adapter
        Else
        'Sinon, affiche aucune image.
        Image1.Picture = LoadPicture("")
       End If
End Sub

0
fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 58
Modifié le 20 sept. 2018 à 14:05
je n'avais pas vu cette procédure autant pour moi..
merci à vous 2 je vais me pencher sur vos solutions et je vous tiendrai au courant de mes avancées
0