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
ça fonctionne sur XL 2003 ou 2007
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+
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
ç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+