Passage de Excel 2007 à Excel 2019

Bonjour à tous,

A mon tour de faire appel à vos connaissances.
J'ai créé depuis un certain temps, sous Excel 2007, un produit qui marche à merveille. Ce produit utilise de nombreux Userforms. Pour une question d'esthétique j'ai fait en sorte que , quel que soit la taille de l'écran utilisé, les userforms soient en plein écran et leurs éléments soient esthétiquement disposés dans l'écran. Pour ce faire j'ai utilisé les variables classiques l = ActiveWindow.Width et h = ActiveWindow.Height que j'ai définies en tant que variables publiques dans 'This Workbook" une fois pour toute, et ça marche à merveille sous Excel 2007, quel que soit l'Userform à ouvrir.

Public l As Integer
Public h As Integer

Private Sub Workbook_Open()
l = ActiveWindow.Width
h = ActiveWindow.Height
    With Menu
        .StartUpPosition = 3
        .Width = l
        .Height = h
    End With
Menu.Show
End Sub

J'ai voulu utiliser mon produit chez un ami qui possède Excel 2019, et là problème, le code se plante sur la ligne "l=ActiveWindow.Width" en me disant que la variable n'est pas définie.
Encore plus bizarre, si je mets cette ligne en commentaire et relance le code, ça marche !!!
Enfin si j'inverse les lignes "l = ActiveWindow.Width" et "h= Active Window.Height" même problème, je me plante sur la ligne "h=ActiveWindowHeigt" et il me suffit de la mettre en commentaire pour que ça marche !!!
Je n'y comprends rien ! Est ce du à la version 2019 ? Y-a-t-il une autre raison, si oui laquelle ?
Un grand merci de bien vouloir vous pencher sur ce problème énigmatique pour moi.
Cordialement

Jacky

bonjour,

à mon avis il y a un s en trop dans l = ActiveWindows.Width

Bonjour

l = ActiveWindows.Width

Il faut enlever le S à Windows

Bonjour 78chris et h2so4

En effet grosse "faute d'orthographe" en recopiant mon code, le "s" est évidemment de trop, mais dans mon produit il n'existe pas
L'erreur ne vient donc pas de cette étourderie involontaire de ma part faite en rédigeant mon post.

Cdlt
Jacky

RE

Je ne constate pas cela sur 365. Cela plante plus loin sur Menu puisque pas dispo

78chris,

Le code se plante (sous Excel 2019) avant même que je fasse appel à l'userform "Menu". En faisant un débogage pas à pas (F8) j'ai un bug dès que j'arrive sur la première des deux lignes qui me définissent la largeur et la hauteur et si je mets en commentaire la première de ces deux lignes (que ce soit celle qui me définit la largeur, ou celle qui me définit la hauteur) et relance le code, ça marche ??????
A tout hasard voici le code de l'Userform "Menu"

 ' organistion des objets dans le formulaire Menu
Private Sub UserForm_Activate()

    l = Application.Width    ' largeur en points de la fenêtre
    h = Application.Height  ' hauteur en points de la fenêtre

    With Menu
    ' agencement du Formulaire "Menu" et de ses objets
        Call presentation(Menu, l, h, -20, 0)
        Call presentation(Titre, 4 * l / 10, 35, h / 10, 3.5 * l / 10)
        Call presentation(Image, 5 * l / 10, 2 * h / 4, h / 4, 3 * l / 10)
        Call presentation(Creation, 1.8 * l / 10, h / 14, 3.5 * h / 10, l / 14)
        Call presentation(consultation, 1.8 * l / 10, h / 14, 4.5 * h / 10, l / 14)
        Call presentation(utilisation, 1.8 * l / 10, h / 14, 5.5 * h / 10, l / 14)
        Call presentation(Quitter, l / 10, h / 14, 7.5 * h / 10, 12 * l / 14)
        Call presentation(Lb_copyright, l / 5, h / 20, 8.5 * h / 10, 0.8 * l / 14)
    End With

End Sub

presentation étant une fonctionde mise en page des objets et de l'Userform

 Function presentation(form, w, h, t, g)
    With form
        .Width = w
        .Height = h
        .Top = t
        .Left = g
    End With

 End Function

Je rappelle que tout fonctionne à merveille chez moi avec Excel 2007

Cdlt

Jacky

RE

Pas de plantage non plus sur 2019...

Merci Chris
Je ne comprends pas. Toutefois un doute : l'Excel 2019 de mon ami, au départ, n'acceptait pas les macros, il a fallu que je modifie l'option correspondante, mais malgré cela quand j'ouvre mon fichier, les macros ne sont pas acceptée d'emblée, il faut encore cliquer sur une commande qui apparaît dans le menu. Comme je ne connait pas Excel 2019, est ce qu'il y aurait une incidence quelconque ? aurais-je oublié quelque chose ?
Je vais devoir me pencher un peu plus sur son Excel 2019
A+
Jacky

RE

On règle en général la sécurité des macros à désactiver avec notification pour autoriser mais contrôler ce qui va s'exécuter

RE

Je reste perplexe. J'ai étudié d'un peu plus près l'erreur 91 "variable objet ou variable de block With non définie" que j'obtiens sur le poste de mon ami, mais je ne vois toujours pas.
Je te tiendrai au courant dès que la solution sera trouvée
Merci
Jacky

Rechercher des sujets similaires à "passage 2007 2019"