Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utilisation "Boite de Dialogue" V5->XP

3 réponses
Avatar
Nabil
Bonjour=20

Voila j'ai un soucis sur un fichier Excel qui contient un=20
vieux modele de boite de dialogue

On peut en cr=E9er, directement dans le classeur (pas dans=20
le projet VBA), en faisant "ins=E9rer" et prenant "boite de=20
dialogue" plut=F4t que "feuille".

la boite existante etait ouverte avec
DialogSheets("Dialog1").Show
puis la valeur des champs =E9tait r=E9cup=E9r=E9e avec=20
Worksheets(1).Cells(7, 6).Value =3D=20
DialogSheets("Dialog1").EditBoxes
("Modification 9").Text

La deuxi=E8me partie ne marche plus bien sur sous XP
Mais je n'ai pas l'impression qu'il y ai de solution
en effet=20
DialogSheets("Dialog1").Show ouvre bien la boite
mais
Dialog1.Show
ca ne marche pas, ce n'est pas une Userform

Est ce qu'il y a un autre moyen d'utiliser cette boite tel=20
que
ou dois-je recr=E9er compl=E8tement le formulaire sous VBA ????

Merci pour toute information

Nabil

3 réponses

Avatar
Nabil
Bonjour AV

Désolé pour le retard, je viens juste de revenir sur le
forum.
J'ai vérifié ce que tu m'as dit, le nom (en haut a
gauche), ça aurait pu venir de la effectivement.

J'ai renommé etc.., mais ça change rien au message
d'erreur.
A priori sous XP, les méthodes et propriétés des objets
DialogSheets ne sont plus accessibles.
D'où le message « Impossible de lire la propriété
EditBoxes de la classe DialogSheets »
Ca plante sur le code
DialogSheets("Dialog1").EditBoxes("Modification 9").Text

Vu que ce code date de la V5, la compatibilité n'est
apparemment plus assurée.
J'ai bien peur de devoir recréer ma boite en UserForm

En tout cas merci de ta réponse
Et bonne journée

Nabil


-----Message d'origine-----
En résumant,
A partir du code suivant affecté à un bouton :
Sub zz_DialXL5()
DialogSheets("Dialog1").Show
Worksheets(1).Cells(7, 6).Value =
DialogSheets("Dialog1").EditBoxes("Modification 9").Text
End Sub
(Worksheets.....Text = 1 seule ligne !)

La version d'XL n'a aucune importance
Il n'y a aucune raison que ça ne marche pas SI :
* La feuille de boite de dialogue "Dialog1" existe bien !
* La zone de saisie s'appelle bien "Modification 9"
A vérifier en la sélectionnant et en regardant ce qui
s'affiche dans la barre

des noms (en haut à gauche)
Si tu as des difficultés à la renommer (ça arrive),
supprime la et recrée la et

adapte ta macro

AV


"Nabil" a écrit dans le message news:
082e01c35d94$23ab55c0$

Bonjour

Voila j'ai un soucis sur un fichier Excel qui contient un
vieux modele de boite de dialogue

On peut en créer, directement dans le classeur (pas dans
le projet VBA), en faisant "insérer" et prenant "boite de
dialogue" plutôt que "feuille".

la boite existante etait ouverte avec
DialogSheets("Dialog1").Show
puis la valeur des champs était récupérée avec
Worksheets(1).Cells(7, 6).Value =
DialogSheets("Dialog1").EditBoxes
("Modification 9").Text

La deuxième partie ne marche plus bien sur sous XP
Mais je n'ai pas l'impression qu'il y ai de solution
en effet
DialogSheets("Dialog1").Show ouvre bien la boite
mais
Dialog1.Show
ca ne marche pas, ce n'est pas une Userform

Est ce qu'il y a un autre moyen d'utiliser cette boite tel
que
ou dois-je recréer complètement le formulaire sous
VBA ????


Merci pour toute information

Nabil



.



Avatar
AV
Vu que ce code date de la V5, la compatibilité n'est
apparemment plus assurée.


Si la compatibilité descendante n'était pas assurée.. MS n'aurait plus aucun
client !

Tu peux m'envoyer ton fichier (ou extrait)
AV

Avatar
Nabil
Pour infos, si y en a d'autres qui passent par la
c'est bon
La solution était bien de renommer les champs dans le code
ou dans la boite.

En effet apparement lors de l'ouverture sous XP, les
champs sont renommés !!!
J'avais une série de noms qui a changé assez bizarement.
"Modification 9" en "Zone d'édition 9"
"Modification 6" en "Zone d'édition 6"
etc..

Il fallait faire coïncider les noms ou alors
utiliser "Edit Box 6" à la place de "Modification 6" par
exemple (ce qui est assez étrange, surrement une regle de
nommage).

En tout cas merci pour l'aide

Nabil