Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
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 10/02/2011, 14h52   #1
Membre du Club
 
Inscription : décembre 2006
Messages : 132
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 132
Points : 53
Points : 53
Par défaut Fonction vraifaux vba

Bonjour,

Dans le code ci-dessous, la fonction Vraifaux me renvoie une erreur de syntaxe dans une macro VBA.
Pouvez-vous m'aider ou bien, y a t'il une autre façon d'écrire ?

Code :
1
2
3
4
5
6
7
8
9
a = Range("A65536").End(xlUp).Row
 
Columns("H:H").Select
    Selection.NumberFormat = "0.00%"
    Range("H2").Select
    ActiveCell.FormulaR1C1 = vraifaux(rc[-1]=0;100;"(RC[-2]-RC[-1])/RC[-1]")
    Range("H2").Select
    Selection.AutoFill Destination:=Range("H2:H" & a)
    Range("H2:H" & a).Select
zebi42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 15h11   #2
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 205
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 205
Points : 5 258
Points : 5 258
Salut,

En VBA il faut utiliser la notation anglo-saxone avec , au lieu de ; :

Code :
iif(condition,SiVrai, SiFaux)
A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 15h30   #3
Membre du Club
 
Inscription : décembre 2006
Messages : 132
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 132
Points : 53
Points : 53
merci pour ta réponse, mais cela ne fonctionne pas mieux; il doit y avoir une erreur dans la syntaxe.
zebi42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 19h17   #4
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 205
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 205
Points : 5 258
Points : 5 258
Citation:
Envoyé par zebi42 Voir le message
merci pour ta réponse, mais cela ne fonctionne pas mieux; il doit y avoir une erreur dans la syntaxe.
En effet, il doit y avoir une problème dans cette expression:

Code :
ActiveCell.FormulaR1C1 = vraifaux(rc[-1]=0;100;"(RC[-2]-RC[-1])/RC[-1]")
Je ne connais pas bien Excel, mais a mon avis il attend l'expression d'une formule, donc je verrai bien une chaine de caractère du style :
Code :
1
2
 
ActiveCell.FormulaR1C1 = "=Somme([A1:A10])"
ou encore

Code :
1
2
 
ActiveCell.FormulaR1C1 = "=SI(A1;A10;A20)"
un truc du style quoi

Je ne suis pas sûr de l'argument...
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2011, 09h40   #5
Membre du Club
 
Inscription : décembre 2006
Messages : 132
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 132
Points : 53
Points : 53
J'ai enfin trouvé la bonne syntaxe:

Code :
ActiveCell.FormulaR1C1 = "=IF(ISBLANK(RC[-1]), 1, (RC[-2]-RC[-1])/100)"
zebi42 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 11h50.


 
 
 
 
Partenaires

Hébergement Web