Tournoi ATP - Excel 97 refuse un format Combobox : CDec

ZZR09

XLDnaute Occasionnel
Bonjour à tous,

j'ai fait un gestionnaire de tournoi ATP.
il a été développé pour ne fonctionner qu'avec des formules et, dans un second temps, j'ai rajouté une interface pour faciliter les saisies et étendre les possibilités.

Il fonctionne mais, j'ai rencontré un problème que j'ai contourné. Je souhaiterai donc savoir pourquoi ça plantait :(

Voici le problème rencontré:
ce que fait le code incriminé:
dans les lignes d'un tableau j'ai les résultats, par joueur, des matches sous forme de points. En bout de ligne, j'additionne tous les points gagnés lors des différents matches.
les points gagnés sont fonction de certains critères plus ou moins complexes.
j'ai donc, en dessous du tableau une "calculatrice" : on indique les noms des joueurs, les scores et les résultats (les points) obtenus peuvent être reportés dans le tableau.

Le code incriminé pilote la "calculatrice", c'est à dire qu'il rentre les données et récupère les points obtenus dans deux TextBox(TextBox5 et TextBox6).
Jusque là pas de problèmes.

le problème :
j'ai les points à reporter dans mes deux TextBox (variable string)
je retrouve la référence de la cellule correspondant au joueur et je lui colle la valeur contenue dans la TextBox. C'est là que ça coince ... seulement avec Excel 97: la valeur de la TextBox est une chaîne de caractère, pour qu'elle puisse être comptabilisée dans ma feuille de calcul, je la convertie en décimal : CDec(TextBox5.Value).

Excel 97 ne veut pas faire ça (en rouge dans le code ci-dessous). Quelqu'un pourrait il m'expliquer pourquoi :confused: :confused:
ça fonctionne sur XL 2003 ou 2007

Code:
Sub saisir()

'bouton insérer'
If UserForm1.ComboBox1 = "" Or UserForm1.ComboBox2 = "" Then
    MsgBox "Veuillez sélectionner des joueurs", vbCritical, "Joueurs?"
    Exit Sub
End If
If UserForm1.TextBox5 = "" Or UserForm1.TextBox6 = "" Then
    MsgBox "Veuillez indiquer des résultats", vbCritical, "Scores?"
    Exit Sub
End If

Dim colJr1, ColJr2 As Byte

colJr1 = Cells(idxLg1 + 1, Range("mire_col").Column - 1).End(xlToLeft).Column + 1
ColJr2 = Cells(idxLg2 + 1, Range("mire_col").Column - 1).End(xlToLeft).Column + 1

If UserForm1.TextBox5.Value = "interdit" Or UserForm1.TextBox6.Value = "interdit" Then Exit Sub

Cells(idxLg1 + 1, colJr1) = [COLOR="Red"]CDec(UserForm1.TextBox5.Value)[/COLOR]
Cells(idxLg2 + 1, ColJr2) = [COLOR="Red"]CDec(UserForm1.TextBox6.Value)[/COLOR]

Call sauve_synthese 'module 2'

'effacer les données afin qu'elles ne soient pas ré-insérées'
UserForm1.TextBox3 = ""
UserForm1.TextBox4 = ""
UserForm1.TextBox5 = "OK"
UserForm1.TextBox6 = "OK"

End Sub

Merci de m'avoir lu, en espérant que vous ayez une idée à me proposer... le pire c'est que je suis persuadé que pur ceux qui savent, c'est tout bête!

A+
 

Pièces jointes

  • Tournoi-ATP_v2.11_XLD.zip
    32.5 KB · Affichages: 59

jp14

XLDnaute Barbatruc
Re : Tournoi ATP - Excel 97 refuse un format Combobox : CDec

Bonjour

Une piste
Extrait de la documentation VBA

"Notez que le type de données Decimal n'est pour le moment disponible qu'au sein d'une variable de type Variant. Il est impossible d'attribuer à une variable le type Decimal. Vous pouvez en revanche créer une variable de type Variant et de sous-type Decimal à l'aide de la fonction CDec"

JP
 

ZZR09

XLDnaute Occasionnel
Re : Tournoi ATP - Excel 97 refuse un format Combobox : CDec

Bonjour JP14,

J'ai effectivement lu ça dans l'aide; j'ai donc essayé de déclarer le contenu du textBox dans une variable de type variant "inter" par exemple et de convertir ensuite cette variable. ça n'a pas fonctionné.

M'y prenais-je mal?

dim inter as variant
inter=UserForm1.TextBox5
Cells(1,2)=CDec(inter)

ça n'a pas fonctionné. Est-ce bien comme cela que l'on défini une sous catégorie?

Merci pour la piste
 

jp14

XLDnaute Barbatruc
Re : Tournoi ATP - Excel 97 refuse un format Combobox : CDec

Bonsoir

A tester

dim inter as variant
inter=cdec(UserForm1.TextBox5)

Une autre piste

Au lieu d'utiliser Cdec (si l'application le permet) déclarer le nombre en Ccur ce qui évite la notation scientifique par contre le nombre de chiffres après la virgule est limité.

JP
 

Discussions similaires

Statistiques des forums

Discussions
314 095
Messages
2 105 821
Membres
109 436
dernier inscrit
alex.972