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

traduction formule

  • Initiateur de la discussion Initiateur de la discussion romika
  • 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 !

romika

XLDnaute Occasionnel
Bonjour,

Pouvez vous m'aider à "traduire" cette formule...

Je comrends pas les R1C1, RC[10], =_...


Do Until ActiveCell = "STOP"
If ActiveCell.Value <> "STOP" Then ActiveCell.FormulaR1C1 = _
"=IF(RIGHT(LEFT(RC[10],9),1)=""0"",LEFT(RC[10],10),LEFT(RC[10],7))"
Selection.Offset(1, 0).Select
Loop

Merci pour votre aide
 
Re : traduction formule

Bonjour Romika,

Style R1C1 (Row, Column):

références absolues
$A$1 = R1C1

$B$12 = R12C2

références relatives :
RC[10] signifie la cellule sur la même ligne que la formule et 10 colonnes à droite
R[-2]C[5] signifie la cellule 2 lignes au-dessus de la formule et 5 colonnes à droite
 
Re : traduction formule

merci.

en fait je cherche la traduction en excel, car je ne comprends pas la logique qui y est inscrite car j'ai besoin de la modifier pour rajouter une condition qui dirait a1 =si(nbcar(b1)=9,b1)
 
Re : traduction formule

Bonjour à vous deux

juste une remarque :

Do Until ActiveCell = "STOP"
If ActiveCell.Value <> "STOP" Then ActiveCell.FormulaR1C1 = _
"=IF(RIGHT(LEFT(RC[10],9),1)=""0"",LEFT(RC[10],10),LEFT(RC[10],7))"
Selection.Offset(1, 0).Select
Loop

la partie en rouge me semble à première vue inutile compte tenu du test boucle

me trompe-je? 😕
 
Re : traduction formule

Re,
Bonjour Eric S,

en effet le "If" me semble inutile

Pour la traduction en Excel de la formule :

(en partant du principe que Activecell est A1)

=SI(DROITE(GAUCHE(J1;9);1)="0";gauche(J1;10);gauche(J1;7))

qui pourrait s'écrire aussi

=SI(STXT(J1;9;1)="0";Gauche(J1;10);Gauche(J1;7))

ou alors

=GAUCHE(J1;7+(STXT(J1;9;1)="0")*3)
 
Re : traduction formule

re

a essayer

range("A1").select
Do Until ActiveCell = "STOP"
ActiveCell.FormulaR1C1 = "=IF(LEN(RC[1])=9,RC[1],"""")"
Selection.Offset(1, 0).Select
Loop

la formule if... est obtenue par l'enregistreur de macro

on sélectionne A1
on boucle tant que l'on ne rencontre pas "stop"
on copie la formule
on incrémente d'une ligne (offset) donc A2 puis A3...

Attention, si en b il n'y a pas 9 caractères, je n'écris rien """"
 
Re : traduction formule

re

autre info

si par hasard tu écris stop ou Stop au lieu de STOP, ton test risque d'être faux

une possibilité :

Do Until Ucase(ActiveCell) = "STOP"
 
- 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

  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
367
  • Question Question
Microsoft 365 VBA sur outlook
Réponses
14
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…