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 :

Format de cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Janvier 2013
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Janvier 2013
    Messages : 88
    Par défaut Format de cellule
    Bonjour à tous,

    j'ai fait la macro suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    With Workbooks("dt.xls").Worksheets("b")
        For i = 0 To .Columns(.Range("E4").Column).Find("*", , , , xlByColumns, xlPrevious).Row - 1
            If WorksheetFunction.CountIf(Workbooks(str).Worksheets("P").Range("C4:C297"), .Range("B4").Offset(i, -1)) > 0 Then
                .Range("B4").Offset(i, 0) = WorksheetFunction.VLookup(.Range("B4").Offset(i, -1), Workbooks(str).Worksheets("Portfolio").Range("C2:AZ297"), 20, False)
            Else
                'rien
            End If
        Next i
    End With

    le code me renvoie des chiffres tels que: 20401; 1421 ou 3

    toutefois, j'aimerai que toutes les cellules aient le meme format, i.e des nombres à 10 chiffres.
    ex pour 20401 : 0000020401
    1421 : 0000001421
    3 : 0000000003

    en Excel, je fais '00000000000000020401 puis =droite('00000000000000020401,10).

    pouvez vous m aider à le faire sur vba.

    bien cordialement

  2. #2
    Membre Expert
    Femme Profil pro
    Data engineer
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Data engineer
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Par défaut
    Bonjour,

    En Excel, on peut aussi le faire avec la fonction Texte().
    Par exemple, si la valeur est en A1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =TEXTE(A1;"0000000000")
    En VBA, c'est la fonction Format() qu'il faut utiliser.
    Par exemple pour 20241 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Format(20241, "0000000000")

  3. #3
    Membre confirmé
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Janvier 2013
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Janvier 2013
    Messages : 88
    Par défaut
    merci pour cette astuce.

    du coup, je l insere ou dans ma macro?

  4. #4
    Membre Expert
    Femme Profil pro
    Data engineer
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Data engineer
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Par défaut
    Re,
    Si la ligne de code qui alimente la valeur est bien celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range("B4").Offset(i, 0) = WorksheetFunction.VLookup(.Range("B4").Offset(i, -1), Workbooks(str).Worksheets("Portfolio").Range("C2:AZ297"), 20, False)
    alors la fonction doit s'insérer comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range("B4").Offset(i, 0) = Format(WorksheetFunction.VLookup(.Range("B4").Offset(i, -1), Workbooks(str).Worksheets("Portfolio").Range("C2:AZ297"), 20, False), "0000000000")

  5. #5
    Membre confirmé
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Janvier 2013
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Janvier 2013
    Messages : 88
    Par défaut
    merci pour votre réponse, toutefois ca ne marche pas.
    les chiffres qui me sont données apres execution de la macro restent les memes.

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