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?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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?
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?