Convertir en francs dans textBox et actualiser

W

Willy

Guest
Bonjour à tous,
Tout d'abord, bravo pour cet EXCELlent forum qui est une mine d'or pour le débutant que je suis.
Vivement que l'on puisse à nouveau télécharger les exemples joints !!
Etant débutant donc le meilleur moyen pour moi d'apprendre Vba c'est bien sur ce forum et triturer du code.
Mon exercice actuel et le but à atteindre:
1 - Ouvrir un userform par un bouton
2 - Quand je clique sur une cellule contenant des chiffres,
effectuer la conversion Euros vers Francs dans le textBox de mon userform
3 - Actualiser la conversion dans le textBox lors de clic dans d'autres cellules
4 - Ignorer les cellules qui ne contiennent pas de chiffres.

Ma première tentative :
Avec une procédure Sub dans un module affectée à un bouton:

Je clique sur une cellule;
j'ouvre l'userform et la conversion est bien affichée dans le text box.
Si je clique dans une autre cellule, l'actualisation de la nouvelle conversion ne se fait pas
J'ai une erreur si je clique dans une cellule contenant du texte.

Ma tentative actuelle :
J'ai modifié et placé la procédure dans la feuille avec la fonction sélection change, et j'obtient le résultat suivant :

Mon userform s'ouvre automatiquement lors de clic dans les cellules;
l'actualisation de la conversion par contre se fait bien;
J'ai toujours une erreur si la cellule contient du texte.

Voici la procédure que j'utilise actuellement :

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim Francs As String
Dim PrixTotal As DataObject
Dim MyValeur

MaCellule = ActiveCell.Value

Set PrixTotal = New DataObject
Francs = Format(((MaCellule) * 6.55957), "#,##0.00") + " F"
PrixTotal.SetText Francs

If IsNumeric(MaCellule) = True Then
EuroConvert.Conversion_Eur.Value = Franc

Else
If IsNumeric(MaCellule) = False Then
Unload EuroConvert

Else
If MaCellule = "" Then
Unload EuroConvert
End If
End If
End If
End Sub

Mes questions :
Comment faire donc pour que l'userform ne s'ouvre pas en cliquant sur une cellule mais uniquement par le bouton ?

Que l'actualisation du textBox soit réalisée si l'userform est ouvert en cliquant sur les cellules ?

Enfin filtrer les cellules, c'est à dire que si la cellule contient autre choses que des chiffres, laisser le textBox vide ?

Meric beaucoup pour votre aide
Willy
 
@

@+Thierry

Guest
Bonjour Willy

Je ne sais pas pourquoi tu utilises DataObject et toutes ces variables qui me semble bien compliquées pour un petit truc comme çà...

Pour m'éviter d'écrire un roman je t'ai fait une mini démo, qui je pense tient compte de tous tes problèmes et tes questions...

Regardes et dis moi...

Bon Aprèm (fin)
@+Thierry
 

Pièces jointes

  • EuroConvert.zip
    14.1 KB · Affichages: 112
W

Willy

Guest
Bonsoir Thierry
Merci pour ta réponse, mais je ne peut télécharger aucun fichier du site.
J'ai bien essayer de le faire avec le soft (je me souviens plus de son nom ) préconisé par quelques posts du forum mais sans résultat.
A+
Willy
 
W

Willy

Guest
Re Thierry,
Merci pour l'exemple, c'est exactement ce que je recherche.
Effectivement j'avais beaucoup de variable pour rien, en fait pour apprendre Vba, je part de bout de code que je trouve un peu partout et je me sert de l'aide.
Dès que mon exercice tourne comme je veux, j'essai d'aléger et surtout de comprendre chaque ligne.
Mais je n'ai pas encore saisie le fonctionnement et la déclaration des variables.
Je connais bien un autre langage LINGO du logiciel director de macromédia et j'ai pas mal de confusion entre les deux codes
Merci à toi et bonne soirée
William
 
@

@+Thierry

Guest
Heureux que celà corresponde

Puisque tu débutes et essaies d'apprendre, (ce qui me fait très plaisir),
tu noteras qu'il n'y a qu'une seule variable des cette mini appli.

Elle est partagé par le UserForm tout en étant remise à jour par la Private Sub Worksheet_SelectionChange et formattée par la Private Sub du UserForm_Initialize...... Pourquoi et surtout comment celà est possible?

car elle est déclarée dans un autre module Standard comme ceci :
Public Francs As Double

D'ailleurs on pourrait la déclarer "As Currency" aussi puisque pour des valeurs monétaires c'est le cas. Si elle n'est pas déclarée là, sur l'entête d'un Module Standard, tu ne peux l'utiliser entre les différents controls de différents UserForms (par exemple quand tu veux la conserver à la sortie d'un UserForm).

Là est la clef pour savoir jouer avec une valeur dont on a besoin tout le temps...

Hier soir, j'ai fait un truc interressant avec une variable public d'un mini tableau indexé séquentiellement.... Lien supprimé

Comme tu ne pourras pas charger le fichier je te l'envoie sur demande si ça t'interresse.

Au fait tu devrais revoir le fil avec que j'ai eu avec Christophe cet aprèm, il a chargé "Download Express" et il est OK now !!.... (Voir le Fil de Discussion)

Voilà à plus Willy,
Je tenais aussi à te dire tu es poli et interressant

Bon samedi soir
@+Thierry
 
W

Willy

Guest
Re bonsoir Thierry,
Bien sur que j'aimerai que tu m'envoi ta démo d'un mini tableau indexé séquentiellement !!

J'ai aussi téléchargé Download Express mais je suis sur aol et va n'a pas marché.
Je souhaite que ce problème de téléchargement soit résolu car il y à beaucoup d'exemple interressant pour mon apprentissage
A+
Willy
 

Discussions similaires

Statistiques des forums

Discussions
312 262
Messages
2 086 643
Membres
103 345
dernier inscrit
SabSab