Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/12/2011, 17h58   #1
Invité de passage
 
Homme
Étudiant
Inscription : décembre 2011
Messages : 3
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 : 3
Points : 0
Points : 0
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 :
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!
dirtymusli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 18h06   #2
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

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

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Essaie
Code :
Workbooks(Classeur).Worksheets(Datetrad).Cells(i, 11).Style = "Percent"
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 18h06   #3
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 919
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 919
Points : 7 232
Points : 7 232
Bonjour,

Essais en testant le format de la cellule

Code :
And Workbooks(Classeur).Worksheets(Datetrad).Cells(i, 11).NumberFormat <> "0.00%"
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 18h52   #4
Invité de passage
 
Homme
Étudiant
Inscription : décembre 2011
Messages : 3
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 : 3
Points : 0
Points : 0
merci pour ces réponses rapide!

Malheureusement ni l'un ni l'autre ne marchent....
dirtymusli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 09h04   #5
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

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

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Dans ce cas, il faudrait que tu regarde au niveau du débuggeur la valeur de
Code :
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 :
Right(Workbooks(Classeur).Worksheets(Datetrad).Cells(i, 11).NumberFormat, 1) <> "%"
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 21h49   #6
Invité de passage
 
Homme
Étudiant
Inscription : décembre 2011
Messages : 3
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 : 3
Points : 0
Points : 0
BIzzarement j'ai essayé cette ligne suivante à nouveau aujourd'hui:

Code :
And Workbooks(Classeur).Worksheets(Datetrad).Cells(i, 11).NumberFormat <> "0.00%"
Et ca a fonctionné

Merci beaucoup pour votre aide!

et bonne continuation!
dirtymusli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 19h35   #7
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 446
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 32
Localisation : France

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

Informations forums :
Inscription : avril 2002
Messages : 2 446
Points : 4 620
Points : 4 620
Envoyer un message via MSN à Qwazerty
Salut
Une petite simplification du code?

Code :
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
HammerFest
Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h57.


 
 
 
 
Partenaires

Hébergement Web