OVH Cloud OVH Cloud

vba2000 versus vba97

1 réponse
Avatar
Mathieu René
Bonjour à tous.
J'ai un programme de gestion de liste qui fonctionne en excel97 et pas en
excel2000, sous WinXP.
Je n'ai pas trouvé dans les aides sur le forum, mal cherché peut-être.
L'entrée se fait par une boite de dialogue avec zone édition, zone de liste
et bouton.
Les boutons fonctionne correctement mais pas les zones de liste ou édition.
voici la partie de programme qui ne fonctionne pas:
___________________________
Dim numéroN As Integer
___________________________
Sub Bouton1_QuandClic()
saisie
End Sub
___________________________
Sub saisie()
finDialogueN = 0
Do
Application.DialogSheets("Dialog1").Show
numéroN = dtextezone("Dialog1", "Modification 2")
-----
-----
-----
If finDialogueN = 0 Then
enregistrer
End If
Loop While finDialogueN = 0
End Sub
___________________________

'Fonctions pour la lecture des objets de la boîte de dialogue

Function dtextezone(dfeuille, dobjet)
dtextezone = DialogSheets(dfeuille).DrawingObjects(dobjet).Text
End Function
___________________________

L'erreur est signalée par VBA lors de l'execution de la fonction, ce qui
parait normal car dtextezone est vide, mais numeroN est aussi vide,
je me demande comment modifier cette saisie dans la boite de dialogue?
Quelle est la différence entre VBA 97 et VBA2000?

Merci pour votre aide.

1 réponse

Avatar
Benead
Bonsoir Mathieu,

La seule différence que j'ai noté entre XL97 et XL2000 est justement l'interprétation de certains objets et tableaux :
sous XL97 une valeur vide était chargée en "", sous XL 2000 elle est vide ce qui fait que certains comparatif de
variables ne correspondent plus. Par exemple If Tableau(1)="" Then fonctionne très bien sous XL97 quand l'item 1 du
tableau n'a pas été rempli, sous XL2000 il faut mettre le contrôle suivant : If IsEmpty(Tableau(1)) Then

Dans ton cas il faut peut-être déclarer ta fonction comme ceci :

Function dtextezone(dfeuille, dobjet) AS STRING
dtextezone = DialogSheets(dfeuille).DrawingObjects(dobjet).Text
End Function

A tester...

A+
Benead

Mathieu René a écrit:
Bonjour à tous.
J'ai un programme de gestion de liste qui fonctionne en excel97 et pas
en excel2000, sous WinXP.
Je n'ai pas trouvé dans les aides sur le forum, mal cherché peut-être.
L'entrée se fait par une boite de dialogue avec zone édition, zone de
liste et bouton.
Les boutons fonctionne correctement mais pas les zones de liste ou édition.
voici la partie de programme qui ne fonctionne pas:
___________________________
Dim numéroN As Integer
___________________________
Sub Bouton1_QuandClic()
saisie
End Sub
___________________________
Sub saisie()
finDialogueN = 0
Do
Application.DialogSheets("Dialog1").Show
numéroN = dtextezone("Dialog1", "Modification 2")
-----
-----
-----
If finDialogueN = 0 Then
enregistrer
End If
Loop While finDialogueN = 0
End Sub
___________________________

'Fonctions pour la lecture des objets de la boîte de dialogue

Function dtextezone(dfeuille, dobjet)
dtextezone = DialogSheets(dfeuille).DrawingObjects(dobjet).Text
End Function
___________________________

L'erreur est signalée par VBA lors de l'execution de la fonction, ce qui
parait normal car dtextezone est vide, mais numeroN est aussi vide,
je me demande comment modifier cette saisie dans la boite de dialogue?
Quelle est la différence entre VBA 97 et VBA2000?

Merci pour votre aide.