VBA macro avec IF

Anais51

XLDnaute Nouveau
Bonjour,

Je ne doit pas trouver les bon mots clé à mettre dans recherche sur le fofo mais je n'arrive pas à trouver comment réaliser ce que je veux.

En gros je veux que dans une macro, si une cellule est positive alors elle doit réaliser tel lignes de codes sinon non.
J'ai donc fait ceci:

If Worksheets("Synthèse").Range("EG191").Value > 0 Then

"lignes de codes"

End if

Seulement, que ma celule (EG191) soit positive ou non les lignes de codes entre les deux agissent toujours.

Qu'est ce qui ne va pas?

Merci d'avance :D
 

Dranreb

XLDnaute Barbatruc
Re : VBA macro avec IF

Bonjour,
Mettez un point d'arrêt sur votre première ligne de code,
puis, à l'arrêt, un espion sur "Worksheets("Synthèse").Range("EG191").Value"
Attention particulièrement au type de variant (String ou Double)
Cordialement.
 

Anais51

XLDnaute Nouveau
Re : VBA macro avec IF

Bonjour,

Non, EG191 n'est pas sous format texte mais bien sous format nombre vu que c'est le résultat d'une addition. Cependant c'est le début de la macro qui crée les montants de l'addition. Serait-il possible que n'ayant pas fini le calcul de la première partie de la macro la suite se lance mal?
Dranred c'est quoi les string ou double?

J'attaque direct ce que je veux faire après est-ce de là que vient le probléme? (suis débutante)
En gros ça donne ceci:


If Worksheets("Synthèse").Range("EG191").Value < 0 Then

Range("D36").Select
ActiveCell.FormulaR1C1 = _
"=(IF(ISERROR(VLOOKUP(RC[-1],bla.xls!C1:C9,3,FALSE)),0,VLOOKUP(RC[-1],bla.xls!C1:C9,3,FALSE)))/1000"

etc.
Merci :)
 
Dernière édition:
G

Guest

Guest
Re : VBA macro avec IF

Bonjour,

If Worksheets("Synthèse").Range("EG191").Value < 0 Then

Ce n'est déjà plus ce que tu disais dans ta demande initiale. > 0 ou < 0 ?

Ensuite sans fichier exemple il est très difficile de deviner d'où cela peut venir. Alors si tu veux te donner une chance d'avoir une réponse concluante, joints un fichier <50 ko reproduisant le problème avec quelques données et la macro.

A+
 

Anais51

XLDnaute Nouveau
Re : VBA macro avec IF

Voilà un exemple.

EDIT: le soucis c'est que dans ce type d'exemple, ma macro fonctionne. Comme dans exemple 2. Donc pour moi le probléme vient soit de la masse du fichier (la cellule cible EG191 n'est autres que l'addition de l'addition de plusieurs centaines de données) du coup la dernière addition n'est pas fini quand la macro se lance. Soit de la répétition des exécution entre le IF et le end if qui fait tout planter.
 

Pièces jointes

  • Exemple.xls
    25.5 KB · Affichages: 61
  • Exemple.xls
    25.5 KB · Affichages: 62
  • Exemple.xls
    25.5 KB · Affichages: 61
  • Exemple 2.xls
    27.5 KB · Affichages: 59
  • Exemple 2.xls
    27.5 KB · Affichages: 83
  • Exemple 2.xls
    27.5 KB · Affichages: 61
Dernière édition:
G

Guest

Guest
Re : VBA macro avec IF

Re,

ton exemple ne reproduit pas le problème [B14] est > 0. De plus tu n'as pas de macro 3 ni 4 mais 1 et 2 !???

C'est à toi de nous livrer quelque chose de juste. Pas à nous de le faire.

A+
 

Anais51

XLDnaute Nouveau
Re : VBA macro avec IF

Dans mon exemple 2, le bouton 3 fait les choses correctement.
Le soucis vient donc soit:
- De la multitude de consignes entre IF et END IF.
- De la série de calcul qui ménent au résultat de la cellule de référence qui n'ont peut être pas eu le temps de se recalculer complétement au lancement de la macro.

Dans mon exemple 1, le bouton 3 est lié à la macro 1 et le bouton 4 à la macro 2. J'avais donné un exemple type caricaturé pour donner le contexte (et B14 n'est pas forcément <0 sinon pas besoin d'exemples conditionnels) mais c'était les macros qui étaient intéressantes.

Dans mon exemple 2, j'ai appliqué la macro cité plus haut. Et ça fonctionne. Ma macro est donc bonne pour un exemple simple.

Je l'ai remis dans mon EDIT.

Un exemple ne peut donc pas expliquer mon problème car c'est la masse d'info qui crée mon soucis.
 
Dernière édition:

Discussions similaires