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 :

Problème du format de données stockées dans un tableau


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 24
    Par défaut Problème du format de données stockées dans un tableau
    Bonjour,

    J'ai crée un tableau dans lequel j'intègre mes données calculées afin de les transposer ensuite dans une feuille Excel.

    Le format que j'ai défini n'est pas pris en compte.
    Par ailleurs, le format numérique appliqué s'affiche correctement dans ma feuille mais j'ai un message m'indiquant que la donnée est stockée au format texte et m'invite à convertir en numérique.

    Pouvez-vous m'aider?

    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
     
    Sub MacroTest
    Dim ID as String
    Dim Name as String
    Dim Montant as Double
     
     
    Dim tableau()
    ReDim tableau(24, 2)
     
    i = 0
     
    For j = 1 to 25
     
    ID = worksheets("TEST").cells(j,1)
    Name = worksheets("TEST").cells(j,2)
    Montant = worksheets("TEST").cells(j,3)
     
    tableau(i, 0) = Format(ID, "General")
    tableau(i, 1) = Format(Name, "@")
    tableau(i, 2) = Format(Val(Montant), "0.00")
     
     
    i = i+1
     
    Next j
     
     
    Worksheets(Resultat).Select
    Range(Cells(3, 1), Cells(28, 3)) = tableau
     
    End Sub

  2. #2
    Membre Expert Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 671
    Par défaut
    Vous pouvez mettre votre tableau sous forme structurée, puis exploiter PowerQuey (à activer via les options XL) pour obtenir un résultat plus rapidement (sans VBA et sans erreurs)

  3. #3
    Membre averti
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 24
    Par défaut
    Merci Zekraoui,

    En fait, je souhaite passer par VBA, car là j'ai mis un exemple simplifié mais l'alimentation de mon tableau est faite via plusieurs dictionnaires...

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour
    je sais pas si ça va aider .... une tentative
    si tu ajoute CdBl

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Montant = cdbl(worksheets("TEST").cells(j,3))

  5. #5
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 122
    Par défaut
    Salut

    Quelques propositions

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Sub MacroTest()
    Dim ID As String
    Dim Name As String
    Dim Montant As Double
     
    Dim tableau()
    ReDim tableau(24, 2)
     
        'i = 0 : i = j-1
     
        'On désactive le rafraichissement de la session
        Application.ScreenUpdating = False
     
        'Il vaut mieux préciser toute les informations, Fichier-Feuille-Range
        With ThisWorkbook.Worksheets("TEST")
            For j = 1 To 25
     
                ID = .Cells(j, "A") 'plus facile à relir (à mon avis)
                Name = .Cells(j, "B")
                Montant = .Cells(j, "C")
     
                tableau(j - 1, 0) = Format(ID, "General")
                tableau(j - 1, 1) = Format(Name, "@")
                tableau(j - 1, 2) = Format(Val(Montant), "0,00") 'ici essaie la virgule au lieu du point
     
                'i = i + 1
     
            Next j
        End With
     
        With ThisWorkbook.Worksheets(Resultat)
            .Select
            .Range(Cells(3, 1), Cells(28, 3)).Value = tableau
        End With
     
    End Sub
    La non reconnaissance du format numérique me donne à penser que ton problème est lié aux préférences linguistiques de ton ordi. Si tu fais quelques recherches sur le sujet tu trouveras sans doute ton bonheur. Tu peux essayer, comme je l'ai modifié dans le code, d'utiliser la virgule au lieu du point. Attention tout de même si ton appli doit être diffuser sur d'autre ordinateur.
    Si les préférences locales sont différentes de ton ordi, il se peut que la virgule ne soit pas reconnu car le point sera attendu...Tu trouveras des exemple sur le forum qui te permettront d'aller chercher dans les paramètres de l'ordi quel est le séparateur décimal local.

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

Discussions similaires

  1. [XL-2010] Userform recherche et affichage de données stockées dans un tableau
    Par MFontana54 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/07/2018, 08h54
  2. problème de récupération de données String dans un tableau
    Par simonteb dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 08/07/2012, 17h21
  3. Problème de données stockées dans un fichier ?
    Par petitclem dans le forum C++
    Réponses: 26
    Dernier message: 11/07/2008, 12h03
  4. Format de données numériques dans une requête
    Par Aurèl90 dans le forum Access
    Réponses: 1
    Dernier message: 16/11/2005, 10h40
  5. problème xsl : inclure une donnée xml dans une balise html
    Par djodjo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/01/2003, 09h24

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