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 :

Formats de cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 233
    Par défaut Formats de cellule
    Bonjour,
    En fait je récupère des données de mes cellules dans des labels sur mon Userform.
    Ensuite je les modifie et je les rentre dans ma feuille:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(ActiveCell.Row, 1) = Me.Lbltest
    Et au lieu d'avoir par exemple 6.00 dans le format de cellule par défaut, j'obtiens 6.
    Pourtant si j'insert une ligne et que je rentre 6 il m'affiche 6.00.
    Comment faire pour insérer sans modifier le format?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Par défaut
    Bonjour,

    Est-ce qu'en changeant les proriétés de la cellule cela change quelque chose ?
    As tu regardé la fonction FORMAT sous vba ??

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Ce problème survient parce que le contenu d'un textbox est du texte. Donc, tu introduis du texte dans ta cellule au lieu d'introduire une valeur numérique.

    Parmi d'autres solutions, celle ci-dessous devrait convenir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(ActiveCell.Row, 1) = Me.Lbltest * 1
    Ok?

    P.S.: Attention, la fonction Format dont parle PeaceAndLove... renvoie toujours une chaine de caractères...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 233
    Par défaut
    Je n'ai pas encore regardé l'utilisation de la fonction format.
    Par contre j'ai utilisé le *1, et ça marche sauf pour un cas spécial.
    A un moment j'essai de multiplier "/0" et ça ne marche pas à cause du "/" je pense. Faut-il que je fasse une condition dans ce cas ou il y a une autre solution?
    Merci pour votre aide

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    l'astuce de *1 ne fonctionne qu'à partir du moment où la valeur saisie dans le textbox peut être "comprise" comme étant une valeur numérique. Le *1 permet en fait un transtypage de la donnée. A mon avis, toute autre solution de transtypage renverra la même erreur avec une valeur non numérique. Or, "/0" n'est pas une valeur numérique.

    Il faut donc:
    soit tester la validité de la saisie (à la sortie du contrôle (évènement Exit ou évènement BeforeUpdate ou lors de la validation du formulaire)
    soit tester si la valeur saisie est numérique et ne multiplier par 1 que dans ce cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if isnumeric(Me.Lbltest) then Cells(ActiveCell.Row, 1) = Me.Lbltest * 1
    Soit gérer les erreurs (On Error Resume Next) avant la ligne et On Error goto 0 après la ligne) (déconseillé)
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 233
    Par défaut
    Merci! J'ai toute les clés en main!
    Au boulot! lol

    Bonne continuation! Encore merci!

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

Discussions similaires

  1. [PEAR][Spreadsheet] PHP/EXPORT EXCEL : nombre de formats de cellule différents !
    Par joe_le_mort dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 27/10/2005, 17h21
  2. [VB.NET]Format de cellules Excel
    Par seemax dans le forum Windows Forms
    Réponses: 2
    Dernier message: 01/08/2005, 16h03
  3. [excel] format de cellule
    Par alpachico dans le forum Excel
    Réponses: 5
    Dernier message: 28/07/2005, 10h09
  4. Format des cellules en Ole Excel
    Par kurul1 dans le forum C++Builder
    Réponses: 9
    Dernier message: 05/04/2005, 16h20
  5. [VBA] Access-> Excel Format de cellule
    Par toflofr dans le forum VBA Access
    Réponses: 19
    Dernier message: 31/07/2003, 14h26

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