Entrer X dans un textbox et retrouver X € dans la cellule cible

Résolu/Fermé
amiralS Messages postés 46 Date d'inscription samedi 26 octobre 2013 Statut Membre Dernière intervention 21 février 2020 - 5 nov. 2016 à 23:14
amiralS Messages postés 46 Date d'inscription samedi 26 octobre 2013 Statut Membre Dernière intervention 21 février 2020 - 6 nov. 2016 à 12:46
Bonsoir,
Bonsoir à Eric en premier je n'ai pas lâché le travail fait avec le classement cross je l'ai bien habillé et il fonctionne bien. Le plus sera de pouvoir faire évoluer les possibilités de compositions d'équipes.
Il y a du temps pour cela.
Ce qui m'amène ce soir:
J'ai un tableau (une base de données excel qui contient les noms d'élèves qui s'inscrivent à l'Association sportive du collèges avec un certain nombre de renseignements dont le montant de la cotisation et c'est la que je bute.
Je veux obtenir une valeur en € dans la cellule cible de mon tableau (BDD) je n'obtient qu'une valeur au format texte que je ne peux pas utiliser pour faire des calculs.

http://www.cjoint.com/data/FKfwmQWiKQi_CCM-Inscription-AS-.xlsm

Je joins un fichier exemple avec un merci d'avance pour celle ou celui qui m'apportera une solution que je n'ai pas réussit à trouver sur internet



A voir également:

1 réponse

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié par eriiic le 6/11/2016 à 00:52
Bonjour,

il faut le convertir en numérique. Par exemple :
ActiveCell.Offset(0, 10).Value = CDbl(TxtMontant)

Mais il faut que tu fasses un contrôle de validité de TxtMontant avant.
"" (vide) ou une chaine autre que convertible en numérique te fera planter.

ActiveCell.Offset(0, 10).Value = Val(Replace(TxtMontant, ",", "."))
est un peu plus passe-partout

Bonsoir à Eric en premier je n'ai pas lâché le travail fait avec le classement cross je l'ai bien habillé et il fonctionne bien. Le plus sera de pouvoir faire évoluer les possibilités de compositions d'équipes.
Je veux bien jeter un oeil mais il me faudrait la dernière version que tu utilises et que tu reprécises les régles pour le choix de la composition des équipes.
Tu peux le déposer en mp, ou si tu crées un nouveau fil m'y mettre le lien.
eric

PS : je viens de voir la 2nde question...
C'est ton soucis avec les checkboxes ? Et si tu dois pouvoir mettre un nombre (2 avirons) ils ne peuvent pas te servir.
Sinon ça pourrait être
ActiveCell.Offset(0, 4).Value = IIf(CheckBox1, 1, "")


En essayant continuellement, on finit par réussir. 
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
0
Bonjour Eric

Après moult essais et erreur j'ai fini par trouver une procédure pour que la valeur qui s'inscrit dans la cellule cible soit une valeur numérique et non texte.
J'ai ajouté 4 lignes de codes (Les 4 dernières)
Private Sub btnAjout_Click()
Sheets("BDD").Activate
Range("A1").Select
Selection.End(xlDown).Select ' on se positionne sur la denière ligne non vide
Selection.Offset(1, 0).Select 'On se décale d'une ligne (0 coonne) vers le bas
ActiveCell = cboSexe.Value
ActiveCell.Offset(0, 1).Value = cboNom
ActiveCell.Offset(0, 2).Value = cboPrénom
ActiveCell.Offset(0, 3).Value = txtClasse
ActiveCell.Offset(0, 4).Value = TxtAviron
ActiveCell.Offset(0, 5).Value = txtHandball
ActiveCell.Offset(0, 6).Value = TxtCross
ActiveCell.Offset(0, 7).Value = TxtMail
ActiveCell.Offset(0, 8).Value = TxtTéléphone
ActiveCell.Offset(0, 9).Value = cboMoyPaiement
ActiveCell.Offset(0, 10).Value = TxtMontant

' CODE POUR OBTENIR UNE VALEUR NUMERIQUE DANS LA CELLULE CIBLE

If frmSaisie!TxtMontant.Value = "" Then
ActiveCell.Offset(0, 10).Value = ""
Else
ActiveCell.Offset(0, 10).Value = CDbl(frmSaisie!TxtMontant.Value)
End If

End Sub

Merci pour ton intervention
A une autre fois
amiralS
0
amiralS Messages postés 46 Date d'inscription samedi 26 octobre 2013 Statut Membre Dernière intervention 21 février 2020 2
6 nov. 2016 à 11:43
amiralS- 6 nov. 2016 à 11:39
Bonjour Eric

Après moult essais et erreur j'ai fini par trouver une procédure pour que la valeur qui s'inscrit dans la cellule cible soit une valeur numérique et non texte.
J'ai ajouté 4 lignes de codes (Les 4 dernières)
Private Sub btnAjout_Click()
Sheets("BDD").Activate
Range("A1").Select
Selection.End(xlDown).Select ' on se positionne sur la denière ligne non vide
Selection.Offset(1, 0).Select 'On se décale d'une ligne (0 coonne) vers le bas
ActiveCell = cboSexe.Value
ActiveCell.Offset(0, 1).Value = cboNom
ActiveCell.Offset(0, 2).Value = cboPrénom
ActiveCell.Offset(0, 3).Value = txtClasse
ActiveCell.Offset(0, 4).Value = TxtAviron
ActiveCell.Offset(0, 5).Value = txtHandball
ActiveCell.Offset(0, 6).Value = TxtCross
ActiveCell.Offset(0, 7).Value = TxtMail
ActiveCell.Offset(0, 8).Value = TxtTéléphone
ActiveCell.Offset(0, 9).Value = cboMoyPaiement
ActiveCell.Offset(0, 10).Value = TxtMontant

' CODE POUR OBTENIR UNE VALEUR NUMERIQUE DANS LA CELLULE CIBLE

If frmSaisie!TxtMontant.Value = "" Then
ActiveCell.Offset(0, 10).Value = ""
Else
ActiveCell.Offset(0, 10).Value = CDbl(frmSaisie!TxtMontant.Value)
End If

End Sub

Merci pour ton intervention
A une autre fois
amiralS
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
6 nov. 2016 à 11:55
Bonjour,

que tu peux réduire à :
If frmSaisie!TxtMontant.Value <> "" Then ActiveCell.Offset(0, 10).Value = CDbl(frmSaisie!TxtMontant.Value)

Mais la 2nde proposition que je te faisais avec val() te permet d'éliminer aussi les plantages sur une erreur de frappe telle que "33e"
eric
0
amiralS Messages postés 46 Date d'inscription samedi 26 octobre 2013 Statut Membre Dernière intervention 21 février 2020 2 > eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024
6 nov. 2016 à 12:46
Bonjour
Tu as raison tout cela marche très bien et je vais conserver celle qui ne génère pas de plantage sur une erreur de frappe. Hier je n'avais peut être les yeux en face des trous ou plutôt je n'avais peut être pas mis le code au bon endroit.
Encore merci
Bon dimanche
amiralS
0