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 :

Exclure Valeurs au format % [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 6
    Par défaut Exclure Valeurs au format %
    Bonjour tout le monde!

    j'ai un petit soucis actuellement .

    J'ai crée un compteur qui m'additionne les valeurs de la colonne 11 selon leur valeur en colonne 4.

    Mon problème actuellement est que j'aimerais exclure les valeurs de la colonne 11, dont le format est en pourcentage.

    je n'arrive pas à trouver la solution...

    Si quelqu'un peut me sauver je suis tout ouïe

    Voici la partie qui nous intéresse

    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
    For i = 2 To 662
    
    Npresse = Workbooks(Classeur).Worksheets(Datetrad).Cells(i, 4).Value
    
    If IsNumeric(Workbooks(Classeur).Worksheets(Datetrad).Cells(i, 11).Value) = True _
    
    And Workbooks(Classeur).Worksheets(Datetrad).Cells(i, 11).Value < 1000 _
    
    
    'Et Voici mon Epic fail
    
    And Workbooks(Classeur).Worksheets(Datetrad).Cells(i, 11).Value <> "%" _
    
    Then RI = Workbooks(Classeur).Worksheets(Datetrad).Cells(i, 11).Value
    
    TotalRejets = TotalRejets + RI
    
    If Npresse = "PL01" _
    Then PL01Rejets = PL01Rejets + RI
    
    If Npresse = "PL02" _
    Then PL02Rejets = PL02Rejets + RI
    
    If Npresse = "PL04" _
    Then PL04Rejets = PL04Rejets + RI
    
    If Npresse = "PL05" _
    Then PL05Rejets = PL05Rejets + RI
    
    If Npresse = "PL06" _
    Then PL06Rejets = PL06Rejets + RI
    
    Next i
    Merci d'avance tout le monde!

  2. #2
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(Classeur).Worksheets(Datetrad).Cells(i, 11).Style = "Percent"

  3. #3
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

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

    Essais en testant le format de la cellule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    And Workbooks(Classeur).Worksheets(Datetrad).Cells(i, 11).NumberFormat <> "0.00%"

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 6
    Par défaut
    merci pour ces réponses rapide!

    Malheureusement ni l'un ni l'autre ne marchent....

  5. #5
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Dans ce cas, il faudrait que tu regarde au niveau du débuggeur la valeur de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(Classeur).Worksheets(Datetrad).Cells(i, 11).NumberFormat
    Peut-être que ça pourrait marcher, mais adapte-le en fonction de ce que tu auras observé ci dessus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Right(Workbooks(Classeur).Worksheets(Datetrad).Cells(i, 11).NumberFormat, 1) <> "%"

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 6
    Par défaut
    BIzzarement j'ai essayé cette ligne suivante à nouveau aujourd'hui:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    And Workbooks(Classeur).Worksheets(Datetrad).Cells(i, 11).NumberFormat <> "0.00%"
    Et ca a fonctionné

    Merci beaucoup pour votre aide!

    et bonne continuation!

  7. #7
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    Une petite simplification du 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
    Dim i As Integer
    '...
    'Il est préférable de déclarer toutes tes variables
     
    For i = 2 To 662
        'Pour éviter d'avoir a répeter a chaque fois
        With Workbooks(Classeur).Worksheets(Datetrad)
            'Npresse = .Cells(i, 4).Value
            'Inutil de préciser = True , If attend un boolean et IsNumeric retour un boulean
            If IsNumeric(.Cells(i, 11).Value) And (.Cells(i, 11).Value < 1000) And (Right(.Cells(i, 11).NumberFormat, 1) <> "%") Then
                RI = .Cells(i, 11).Value
                TotalRejets = TotalRejets + RI
     
                Select Case .Cells(i, 4).Value
                    Case "PL01"
                        PL01Rejets = PL01Rejets + RI
                    Case "PL02"
                        PL02Rejets = PL02Rejets + RI
                    Case "PL04"
                        PL04Rejets = PL04Rejets + RI
                    Case "PL05"
                        PL05Rejets = PL05Rejets + RI
                    Case "PL06"
                        PL06Rejets = PL06Rejets + RI
                End Select
            End If 'Je suppose que le if devrait se fermer ici? sinon RI garde la même valeur à la prochaine boucle et si ton If de début n'est pas vérifié tu vas additionner l'ancienne valeur de RI
        End With
    Next i
    Et comme noté dans le code, je me fait peut-être une fausse idée de ce que tu souhaites faire, mais part du principe que ton teste IF ne se vérifie pas. Avec ton code RI conserve la valeur qu'il avait prise à l'itération précédente et s'ajoute de nouveau à TotalRejets ainsi qu'a une des valeurs PL0x, mais bon peut-être est ce le fonctionnement recherché, mais j'en doute.
    Avec le End if placé après les additions, si ton IF n'est pas vérifié, RI n'est ajouté nulle part.

    A toi de voir, mais le reste des modifications reste valable quoi qu'il en soit
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

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

Discussions similaires

  1. Détecter si une cellule a une valeur au format date
    Par thierry_b dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/06/2009, 23h52
  2. [VBA]fonction pour copier valeur ET format
    Par daniel_gre dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/08/2008, 00h00
  3. copier feuille sur place pour garder valeur et format uniquement
    Par fabiencal dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 29/07/2008, 17h45
  4. Exclure valeur avec if then else
    Par kgb1917 dans le forum VBA Access
    Réponses: 1
    Dernier message: 15/10/2007, 13h33
  5. [Cookies] Double nom et valeur non formatée
    Par nico33307 dans le forum Langage
    Réponses: 1
    Dernier message: 22/08/2007, 14h06

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