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 :

Affiche entier au lieu de décimaux [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Par défaut Affiche entier au lieu de décimaux
    Bonjour,

    Je suis nouvelle sur Visual basic et j'ai un petit probleme:

    J'ai fait un programme qui doit faire la somme des nombres dans un tableau excel. Ca marche sauf que c'est des nombres décimaux et ca me fais des nombres entiers.

    Ex: Au lieu de m'afficher 485,96 ca m'affiche 486

    Voici mon programme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    For i = 2 To 10000
     
     
            cellule$ = "L" & Format(i)
            Contenu$ = ActiveSheet.Range(cellule$).Value
     
              If Contenu$ = client$ Then
                  cellule = "I" & Format(i)
                  somme = CDec(somme) + CDec(ActiveSheet.Range(cellule$).Value)
              End If
     
         Next i
    Quelqu'un peut m'aider?
    Merci beaucoup

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Quel est le format de tes cellules dont la valeur est utilisée dans tes calculs ?

  3. #3
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    Bonjour,

    Quel est le format de tes cellules dont la valeur est utilisée dans tes calculs ?
    Le format des cellules c'est à dire?

    Je prends l'information dans la colonne I donc c'est I2, I15 ..
    sinon les données sont 469; 388,96...

    Je suis désolée je ne comprends pas trop la question

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Citation Envoyé par chouki60 Voir le message
    Le format des cellules c'est à dire?

    Je suis désolée je ne comprends pas trop la question
    Re,...
    désolé moi également, alors ...
    Les bases restent les bases et elles sont indispensables !!!
    place-toi dans une cellule et regarde sur tes barres : il y a peut-être un onglet disant "Format" et, lorsque l'on clique dessus, il s'affiche un menu déroulant (cellule y figuire peut-être...) ... et ainsi de suite !
    C'est là l'une des bases d'Excel, avant même de parler de VBA ...

  5. #5
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Par défaut
    Le format de mes cellules est "nombre" avec deux décimales

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    Test..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Somme As Double
        For i = 2 To 10000
            If Cells(i, 12) = client$ Then
                Somme = Somme + Cells(i, 9)
            End If
        Next i
    A+

  7. #7
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Par défaut
    Bonjour et merci,

    Le test ne marche pas l'erreur est "déclaration existante dans la portée en cours"

    En fait mon programme est plus grand mais la partie en vert marche:

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    
    Private Sub Calculer_Click()
        'Calculer nombre d'affaire à l'heure et chiffre d'affaire
           
           If Num_sem% = 0 Then
               MsgBox ("vous devez d'abord choisir la semaine")
               Exit Sub
           End If
          
          client$ = Choix_client.Value
            
         prod_livr$ = "Production livrée " & Format$(Num_sem)
         Sheets(prod_livr$).Select
         ActiveSheet.Range("$A$1:$S$1066").AutoFilter Field:=12, Criteria1:=client$
        
         prod_livr$ = "'Production livrée " & Format$(Num_sem)
         prod_livr$ = prod_livr$ & "'!"
         Somme% = 0
         
         For i = 2 To 10000
             cellule$ = "L" & Format(i)
             Contenu$ = ActiveSheet.Range(cellule$).Value
            
               If Contenu$ = client$ Then
                   cellule$ = "H" & Format(i)
                   Somme = Somme + ActiveSheet.Range(cellule$).Value
               End If
            
         Next i
        
       
         Sheets(client$).Select
         '"=SUM('Production livrée 2'!R[569]C[-6],'Production livrée 2'!R[891]C[-6])"
         
         If Num_sem < 26 Then
             cellule$ = Chr$(65 + Num_sem)
             ElseIf Num_sem < 52 Then
                 cellule$ = "A" & Chr$(64 + Num_sem - 25)
                 Else
                     cellule$ = "BA"
         End If
        
         cellule$ = cellule$ & "10"
         Range(cellule$).Select
         ActiveCell.FormulaR1C1 = Somme
        
        'Calcul retard CA
        
         client$ = Choix_client.Value
         prod_livr$ = "Production livrée " & Format$(Num_sem)
         Sheets(prod_livr$).Select
         ActiveSheet.Range("$A$1:$S$1066").AutoFilter Field:=12, Criteria1:=client$
        
         prod_livr$ = "'Production livrée " & Format$(Num_sem)
         prod_livr$ = prod_livr$ & "'!"
         Somme% = 0
        
          For i = 2 To 10000
            cellule$ = "L" & Format(i)
            Contenu$ = ActiveSheet.Range(cellule$).Value
            
               If Contenu$ = client$ Then
                    cellule$ = "I" & Format(i)
                    Somme = Somme + ActiveSheet.Range(cellule$).Value
              End If
            
         Next i    
    
           Sheets(client$).Select
         
           If Num_sem < 26 Then
               cellule$ = Chr$(65 + Num_sem)
               ElseIf Num_sem < 52 Then
                   cellule$ = "A" & Chr$(64 + Num_sem - 25)
                   Else
                       cellule$ = "BA"
           End If
        
          cellule$ = cellule$ & "11"
          Range(cellule$).Select
          ActiveCell.FormulaR1C1 = Somme

    Alors comme la partie verte marche j'ai voulu faire un copier/coller mais comme les nombres sont décimaux ça ne marche plus..

  8. #8
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    A mon avis tu devrais commencer par déclarer tes variables

    Pour la déclaration des variable regarde ici et pour connaitre les différent type regarde ici

    A mon avis il considère somme comme un entier et non un réel

  9. #9
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    comme dit Krovax, déclare tes variables.
    Tu met.. somme% = 0 ?? ce qui revient à déclarer cette variable en "Long", ce qui explique que tu n'a pas de décimale.
    Enlève le % et déclare somme as Double, ca devrait aller.
    Et à titre d'info, l'erreur que tu signale c'est qu'il y a plusieurs déclarations de la même variable ...ce qui est le cas.
    A+

  10. #10
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Par défaut
    Merci beaucoup LeForestier! Grace à toi ça marche enfin, merci merci !

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

Discussions similaires

  1. Afficher "Annexes" au lieu de "Chapitre"
    Par Dan_coyle dans le forum Mise en forme
    Réponses: 19
    Dernier message: 19/05/2009, 16h52
  2. Afficher &eacute; au lieu de é dans un textarea
    Par bucky3325 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 22/12/2006, 13h42
  3. PB SYSDATE, par ex : affiche 04h00 au lieu 16h00
    Par wormseric dans le forum Oracle
    Réponses: 4
    Dernier message: 06/10/2006, 17h55
  4. [ODBC] Afficher entierement une bd sans le nom des tables !!
    Par carlatocer dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 09/06/2006, 09h57
  5. Réponses: 16
    Dernier message: 18/11/2005, 13h33

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