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 :

Limiter le nombre de caractères dans un label


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
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2012
    Messages : 143
    Par défaut Limiter le nombre de caractères dans un label
    Bonjour à tous,
    J'ai beau chercher dans tous les sens je ne trouve pas de solution à mon problème.
    J'ai un label dans lequel j'appele un valeur contenue dans une cellule d'une feuille de clacul.
    Il s'agit du résultat d'une division donc pas un nombre entier, parfois un nombre à virgule.
    J'aimerais faire en sorte que si un nombre est du style 1,666666666667 il ne s'affiche que 1,66 dans le label, soit 2 chiffre maxi après la virgule.
    Quelqu'un aurait-il une idée ?

    Merci par avance à ceux qui se pencheront sur ce poste.
    Laurent

  2. #2
    Invité
    Invité(e)
    Par défaut
    Voici un exemple qui correspond à ce que tu souhaites faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Option Explicit
     
    Private Sub Test()
    Dim intNombre As Double
        intNombre = 1.666666666667
        Debug.Print (intNombre)
        Debug.Print (Format(intNombre, "0.00"))
    End Sub

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2012
    Messages : 143
    Par défaut merci
    Merci à toi Vincent mais 1,66666667 était un exemple.
    Il va de soit que le résultat d'une division peut être n'importe quoi. C'est le nombre de chiffres après la virgule que je veux limiter à 2.

    Puis je ne comprend pas ce qui définit l'application à mon Label dans tout ça puisqu'il n'en est même pas question

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bien sur que c'est un exemple !

    Il faut que tu utilises la propriété 'Format' lorsque la propriété '.Caption' du Label est renseignée. Si ton Label s'appelle 'lbl1' alors:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lbl1.Caption = Format(1.666666666667, "0.00")
    Et le chiffre sera arrondi à deux chiffres après la virgule.

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2012
    Messages : 143
    Par défaut
    Tiens, voilà mon code.
    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
    Private Sub UserForm_Activate()
    Dim i As Long
    For i = 2 To 101
        Historique.Controls("Label" & 5 + i) = Sheets("Feuil3").Range("A" & -1 + i)
    Next i
     
    For i = 2 To 101
        Historique.Controls("Label" & 105 + i) = Sheets("Feuil3").Range("B" & -1 + i)
    Next i
     
    For i = 2 To 101
        Historique.Controls("Label" & 205 + i) = Sheets("Feuil3").Range("C" & -1 + i)
    Next i
     
    For i = 2 To 101
        Historique.Controls("Label" & 305 + i) = Sheets("Feuil3").Range("D" & -1 + i)
    Next i
     
    For i = 2 To 101
        If Historique.Controls("Label" & 5 + i) = "" Then
        Historique.Controls("Label" & 5 + i).Visible = False
        Historique.Controls("Label" & 105 + i).Visible = False
        Historique.Controls("Label" & 205 + i).Visible = False
        Historique.Controls("Label" & 305 + i).Visible = False
        Else
        End If
    Next i
    Label307.Caption = Format(1.666666666667, "0.00")
    Label308.Caption = Format(1.666666666667, "0.00")
     
    End Sub
    A part 1,67 dans chacun des label concernés, je n'obtiens rien d'autre -))

    code que j'ai modifié pour limiter les lignes de code :

    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
    Private Sub UserForm_Activate()
    Dim i As Long
    For i = 2 To 101
        Historique.Controls("Label" & 5 + i) = Sheets("Feuil3").Range("A" & -1 + i)
    Next i
    
    For i = 2 To 101
        Historique.Controls("Label" & 105 + i) = Sheets("Feuil3").Range("B" & -1 + i)
    Next i
    
    For i = 2 To 101
        Historique.Controls("Label" & 205 + i) = Sheets("Feuil3").Range("C" & -1 + i)
    Next i
    
    For i = 2 To 101
        Historique.Controls("Label" & 305 + i) = Sheets("Feuil3").Range("D" & -1 + i)
        Historique.Controls("Label" & 305 + i).Caption = Format(1.666666666667, "0.00")Next i
    
    For i = 2 To 101
        If Historique.Controls("Label" & 5 + i) = "" Then
        Historique.Controls("Label" & 5 + i).Visible = False
        Historique.Controls("Label" & 105 + i).Visible = False
        Historique.Controls("Label" & 205 + i).Visible = False
        Historique.Controls("Label" & 305 + i).Visible = False
        Else
        End If
    Next i
    
    
    End Sub

  6. #6
    Invité
    Invité(e)
    Par défaut
    '1.666666666667' est un nombre pris en exemple pour illustrer la fonction 'Format' !
    Il faut que tu le remplaces par la valeur effective du Label (le résultats de la division comme tu le décris dans ton premier post).

    Quelque chose du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Historique.Controls("Label" & 305 + i).Caption = Format(Sheets("Feuil3").Range("D" & -1 + i), "0.00")

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

Discussions similaires

  1. limiter le nombre de caractères dans <textarea>
    Par swissmade dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/03/2007, 10h13
  2. Réponses: 2
    Dernier message: 17/08/2006, 12h36
  3. limite du nombre de caractères dans une requete
    Par pheno82 dans le forum Access
    Réponses: 3
    Dernier message: 01/06/2006, 22h12
  4. Limiter le nombre de caractère dans un textarea
    Par Taz_8626 dans le forum Général JavaScript
    Réponses: 34
    Dernier message: 25/04/2006, 15h57
  5. Limiter le nombre de caractère dans un textearea?
    Par Death83 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/01/2006, 02h24

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