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] Actualisation format cellule après import [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 16
    Points : 12
    Points
    12
    Par défaut [Problème] Actualisation format cellule après import
    Bonjour à tous,

    J'ai un fichier Excel qui me permet d'après une macro d'importer des données depuis d'autres fichiers.
    Ce sont principalement des prix.
    Dans un premier temps, je stock ces données dans un tableau déclaré dans le code.
    Ensuite une fonction insert les données de ce tableau dans mon fichier Excel.
    Mais j'ai un soucis que voici :

    30,00 €
    1250,00 €
    21,51
    25.12
    20 €
    25.14
    25.00 €

    Pour les chiffres décimal mais rond (20.00) : Pas de soucis
    Pour les chiffres décimale non exact (25.14) : Il y a la petite flèche verte au coin de la cellule qui me dit que la cellule est au format texte.

    Je ne comprend pas pourquoi toutes les cellules ne contiennent pas le symbole € ...

    Voici ma fonction :
    Le tableau est au format string, car il contient plusieurs données (Texte et valeur numérique).
    C'est un tableau de plusieurs colonne

    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
    '---------------------------------------------------------------------------------------------------------
    'Cette fonction permet d'exporter le tableau Tableau_Contenu_RB() dans le tableau Excel de l'onglet "Import_RB_General"
    '---------------------------------------------------------------------------------------------------------
    Function Complete_Table_RB_General(Lig_Dep As Integer, Nom_RB As String, Nbr_Colomne As Integer, Nbr_Ligne As Integer)
        Dim Temp As String
        For i = Lig_Dep To (Nbr_Ligne + Lig_Dep - 1)
            For j = 0 To Nbr_Colomne
                If j = 0 Then
                    Cells(i, (j + 1)) = Nom_RB
                Else
                    Cells(i, (j + 1)) = Tableau_Contenu_RB((i - Lig_Dep), j - 1)
                End If
            Next
        Next
        Columns("B:B").NumberFormat = "mm/dd/yy;@"
        Columns("D:E").NumberFormat = "#,##0.00 €"
        Worksheets("Import_RB_General").Columns("A:I").AutoFit
    End Function
    Et voici le résultat ... Je ne comprends pas pourquoi le problème est uniquement sur les nombres avec des chiffres après la virgules ?
    Je ne vois pas comment y remédier ...
    A la mano dans Excel si je clic sur le cellule et que je fais "Entrer" bah le signe € apparait ... bisar
    .Nom : Capture.JPG
Affichages : 492
Taille : 74,0 Ko

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour, bonjour !

    Le format de la ligne de code n°15 transforme les valeurs négatives en texte ‼

    Voilà, voilà !

    ___________________________________________________________________________________________________________
    Je suis Paris, London, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Bonjour.

    Lors de l'ecriture, il faut bien definir le type de la valeur ainsi que la propriete Numberformat.

    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
    For i = 1 To 5
     For j = 1 To 2
     
      Cells(i, j).NumberFormat = "General"
     
     If IsNumeric(t(i, j)) Then
      Cells(i, j).Value = CDbl(t(i, j))
     
     ElseIf IsDate(t(i, j)) Then
      Cells(i, j).Value = CDate(t(i, j))
     
     Else
      Cells(i, j).Value = t(i, j)
     
      End If
     Next
    Next
    Cordialement

    Docmarti.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    Marc-L :
    Ligne 15 : Cette ligne agit uniquement sur la colonne "B".
    Il n'y aucun rapport avec mes prix. Cela met en forme mes dates rien de plus ...

    Docmarti : Je ne comprend pas du tout ton code ... Pourrais-tu me fournir des explications et ou tu veux en venir dans mon code ?

    Cordialement,

    Justin

  5. #5
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut
    Citation Envoyé par justind1989 Voir le message
    Ligne 15 : Cette ligne agit uniquement sur la colonne "B".
    Exact !     Autant pour moi …    

    Bien formater les cellules avant de réaliser l'importation des données …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Bonjour
    J'ai pris le temps de comprendre le code de Docmarti !
    J'ai compris ! J'ai appliqué ! Et ca fonctionne parfaitement bien

    Grand merci

  7. #7

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

Discussions similaires

  1. Problème format de cellule après import
    Par jorisfavre dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/02/2013, 15h16
  2. Appliquer le format date après import xml
    Par Ledaf dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/05/2011, 11h04
  3. [XL-2010] Appliquer le format date après import xml
    Par tibey dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/05/2011, 00h08
  4. [XL-2007] Garder format cellule après un ClearContents
    Par Bugzy1963 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/02/2010, 21h43
  5. Format fichier apres import projet
    Par mickael.guilbert dans le forum NetBeans
    Réponses: 7
    Dernier message: 28/01/2009, 18h42

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