IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Reconnaissance case "currency" [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 262
    Par défaut Reconnaissance case "currency"
    Bonjour,

    En espérant que le sujet n'ait pas déjà été abordé je voulais vous demander comment savoir le type de monnaie qu'une case peut contenir.
    En effet en relisant de façon automatique les cases d'une feuille seul le montant est lu sans sa monnaie associée.

    Merci de votre aide.

    BB

  2. #2
    Inactif  
    Homme Profil pro
    Analyste-Programmeur / Intégrateur ERP
    Inscrit en
    Mai 2013
    Messages
    2 511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-Programmeur / Intégrateur ERP
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 511
    Par défaut
    Bonjour,

    lors de ton traitement qui relit chaque montant, tu peux appeler une fonction pour récupérer le symbole de la monnaie utilisée, après à toi d'en faire ce que tu veux.


    Par exemple :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function GetCurrency(Rng As Range) As String
        If IsNumeric(Right(Rng.Text, 1)) Then
            GetCurrency = ""
        Else
            GetCurrency = Right(Rng.Text, 1)
        End If
    End Function

    Si en cellule B2, tu as 35,50 € d'affiché =>


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox GetCurrency(Range("B2"))

    te retournera bien "€", que tu peux stocker dans une variable pour faire des traitements différents en fonction de la devise.

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 262
    Par défaut
    Merci Zirak,

    Désolé mais sauf mauvaise utilisation en amont d'Excel je n'y parviens pas avec ta méthode.
    Comme je disais la monnaie ne fait pas partie de la chaîne de caractère affichée dans la cellule.

    Par contre à force de chercher et de chipoter en fait il faut travailler avec Range.NumberFormat.

    Cordialement.

    BB

  4. #4
    Inactif  
    Homme Profil pro
    Analyste-Programmeur / Intégrateur ERP
    Inscrit en
    Mai 2013
    Messages
    2 511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-Programmeur / Intégrateur ERP
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 511
    Par défaut
    Bonjour,

    Effectivement, si la devise n'est pas affichée, tu n'es ni au format "monétaire", ni au format "comptabilité", qui eux affichent bien la devise renseignée dans les options d'Excel, mais seulement en format "nombre".

    Maintenant, si tes cellules sont au format nombre, c'est que la devise est implicitement connue (une seule utilisée?), ou déduite à partir d'une autre colonne (si plusieurs devises utilisées dans le même onglet).

    Par contre, par rapport à ton premier message, c'est bien en "relisant" (donc en récupérant le contenu par une macro), ou en "reliant" (tu fais juste un cellule = autre_cellule via une formule), et c'est ta cellule de réception qui n'affiche pas la devise ?

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 262
    Par défaut
    Bonjour Zirak,

    je suis en format "monétaire" et je récupère le contenu de feuilles Excel dans un programme RealBasic.
    Comme la devise n'apparaît pas dans la chaîne extraite de la cellule on peut la récupérer en exploitant le contenu de Range.NumberFormat.

    Voilà et encore merci.

    BB

  6. #6
    Inactif  
    Homme Profil pro
    Analyste-Programmeur / Intégrateur ERP
    Inscrit en
    Mai 2013
    Messages
    2 511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-Programmeur / Intégrateur ERP
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 511
    Par défaut
    Bonjour,

    Citation Envoyé par BBouille Voir le message
    et je récupère le contenu de feuilles Excel dans un programme RealBasic.
    Ce qui explique pourquoi ma méthode ne fonctionnait pas, car elle était faite pour une macro interne à Excel.

    Si tu as de nouveaux blocages, n'hésites pas à préciser que ton traitement se fait via un programme tiers, car rien dans ton message d'origine ne laissait entendre l'existence de ce programme en RealBasic.


    Tant mieux si tu as pu t'en sortir par toi-même via Range.NumberFormat, c'est le principal.

    N'hésites pas à marquer le sujet comme résolu du coup.


    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo