Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

macro avec condition qui ne fonctionne pas

  • Initiateur de la discussion Initiateur de la discussion Lagache
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Lagache

XLDnaute Occasionnel
Bonjour le Forum

Voici ma formule en macro:
Dim rc as Variant

if rc -1 <5 then
.Cells(1, 34) = 0
if rc -1 <10 then
.Cells(1, 34) = 2
if rc -1 <15 then
.Cells(1, 34) = 4
if rc -1 <20 then
.Cells(1, 34) = 6
End If
End If
End If
End If

mais ça ne fonctionne pas
 
Re : macro avec condition qui ne fonctionne pas

Re

Essaies plutot comme ceci

If rc - 1 < 5 Then
.Cells(1, 34) = 0
ElseIf rc - 1 < 10 Then
.Cells(1, 34) = 2
ElseIf rc - 1 < 15 Then
.Cells(1, 34) = 4
ElseIf rc - 1 < 20 Then
.Cells(1, 34) = 6
End If

Bon courage
 
Re : macro avec condition qui ne fonctionne pas

Salut Pascal

Merci à toi , mais en fait rien ne s'inscrit dans ma cellule

Est ce un probléme de déclaration de rc et d'iniatilization ?

Merci quand même
@+
 
Re : macro avec condition qui ne fonctionne pas

Bonsoir Lagache, Pascal76 et le forum,

Ton code est bon, mais tu écris ligne Colenne 34 c'est à dire en AH1 si tu cherche le résultat en A1 c'est cells(34,1) au cas ou.

Bon test.

Amicalement.

Jean-Yves
 
Dernière édition:
Re : macro avec condition qui ne fonctionne pas

Re Salut JYLL et Pascal

Excuse JYLL , je n'avais pas vu que tu étais paasé , mais je ne vois pas où tu as vu dans le code la colonne 37 !!!
Merci à Vous
@ +
 
Re : macro avec condition qui ne fonctionne pas

Bonsoir Lagache, Jyll
et toutes mes amitiés à Pascal

Lagache, j'ai lu ton message assez rapidement et indépendemment de l'aspect informatique, une chose me gène :

tu écris :

if rc -1 <5 then
.Cells(1, 34) = 0
if rc -1 <10 then
.Cells(1, 34) = 2
if rc -1 <15 then
.Cells(1, 34) = 4
if rc -1 <20 then
.Cells(1, 34) = 6

mais si rc - 1 < 5 (par exemple rc - 1 = 3), alors rc -1 est aussi inférieur à 10, et à 15 et à 20, alors que se pase-t-il ?

Dans ce cas quelle valeur doit prendre la Cellule (1, 34) ? Son contenu sera-t-il 0, 2, 4 ou 6 ? Car chacune de ces valeurs doivent convenir.

Peut être bien que je n'ai pas suivi le fil du film (ce qui est probable) mais je reste perplexe. Je réitère mon intervention n'a pour le moment aucune incidence sur l'aspect informatique.

Bonne soirée
 
Re : macro avec condition qui ne fonctionne pas

Re Bonsoir Pascal JYLL et Jacques

Effectivement il s'agit de la même cellule qui s'alimente par une autre ligne de macro dont le résultat peut être 0 ou 4 etc, 6 ou 9 etc ....
C'est la raison pour laquelle j'ai besoin de faire marcher cette macro car avec une formule , ce que j'avais, lorsque l'on rajoute un nom par l'userform, la formule disparait ( automatique) car les lignes sont décalées puisque le rajout se fait avec un tri par nom et donc au final ma base de données est fausse §

J'espére avoir été clair
Merci à Vous
@ +
 
Re : macro avec condition qui ne fonctionne pas

Re Bonsoir Lagache,Pascal et Jacques

Je pense qu'il y a une confusion dans ton code . quand tu mets

.cells(1,29)="=rc[-1]+rc[+1]+rc[+2]" , il faudrait mettre

.cells(1,29).formula="=rc[-1]+rc[+1]+rc[+2]"

rc signifie relatif colonne dans ce cas


et tu as défini rc en variant, mais à aucun moment il est initialisée alors rc est toujours égale à -1 si c'est le contenu d'une cellule qui doit être = à rc il faut l'initialiser.

J'attends une réponse pour voir si je ne fais pas fausse route car je trouve la variable un peu ambigue au niveau de son nom.

A bientôt;

Amicalement.

Jean-Yves
 
Re : macro avec condition qui ne fonctionne pas

Re Salut JYLL

Oui effectivement je pense que c'est au niveau de l'initialisation ,mais là je suis coincé , je ne sais pas comment faire

Merci à toi @+
 
Re : macro avec condition qui ne fonctionne pas

re bonsoir,

Dans ton test quand tu fais "rc-1" tu dois vouloir prendre la colonne juste avant la colonne sélectionnée . Si la séléctionnée est cells(1,29) tu prend cells(1,28) et c'est une lettre, alors cela ne peut pas coller. Il me semble qu'entre temps tu changes de cellules, Pas simple.

Autrement tu as ausssi "Index" ne faut-il pas mettre "Index" partout à la place du 1 pour te retrouver sur la bonne ligne, cells(index,29) par exemple.

A plus.

Jean-Yves
 
Dernière édition:
Re : macro avec condition qui ne fonctionne pas

Bonjour le Forum et toi JYLL

Non la colenne 29 est un calcul entre la colonne 27 (rc -2) la colonne 30 (rc +1) et la colonne 31 ( rc +2). La colonne 31 fonctionne avec la colonne 28 "code" qui permet en fonction de la lettre dde déterminer la prime 2 grâce à la formule = si(ab2="p";20;0).
Colonne 32 est le calcil d'ancienneté avec la macro :
.Cells(1, 32) = Format(Date - .Cells(1, 3).Value, "yy")
et en colonne 33 je souhaiterai justement le résultat en rapport à la colonne 32 , suivant les conditions , mais c'est là que cela coince , car je ne sais pas initialiser : rc !!


Non je n'aipas deprobléme de ligne tout fonctionne avec lasaisie sous l'userform.


Merci à Toi
@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
281
Réponses
15
Affichages
786
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…