Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion tryssa
  • 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 !

T

tryssa

Guest
Bonjour,

Je suis toujours dans mes boucles dans les macros et voici mon nouveau problème du jour:

(col A);;;;;;;;(col B);;;;(col C)
MONTANT;;;;SIGNE;;;;;RESULTAT
12;;;;;;;;;;;;;+;;;;;;;;;;=(si(B2="+";A2;A2*(-1))
14;;;;;;;;;;;;;-;;;;;;;;;;idem
58;;;;;;;;;;;;;+;;;;;;;;;idem
258;;;;;;;;;;;-;;;;;;;;;;;idem
156;;;;;;;;;;;-;;;;;;;;;;;idem
18;;;;;;;;;;;;+;;;;;;;;;;;idem
68;;;;;;;;;;;;+;;;;;;;;;;;idem
8;;;;;;;;;;;;;+;;;;;;;;;;;idem
4;;;;;;;;;;;;;+;;;;;;;;;;;idem
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

L'objectif étant d'incrémenter en boucle la fonction "si".

J'ai essayé de faire une macro, mais ça ne fonctionne pas:
Dim i As Long
i = 2
Do Until Range("B" & i).Value <> ""
Range("C" & i).Value = "=IF(i [-1]=""+"",i [-2],i [-2]*(-1))"
i = i + 1
Loop

Interdiction de rigoler hein ! Je suis une noobette !

Merci pour votre aide et excellente journée à tous !!!

🙂
 
Re : boucle avec si

Bonjour Tryssa, bonjour le forum,

Pas sûr d'avoir bien compris... Essaie ça :
Code:
Dim cel As Range
For Each cel In Range("C2:C" & Range("A65536").End(xlUp).Row)
    cel.FormulaR1C1 = "=IF(RC[-1]=""+"",RC[-2],-1*RC[-2])"
Next cel
 
Re : boucle avec si

Bonjour Robert,

J'ai essayé ta formule, mais elle est très longue à l'exécution.

Comment la modifier pour qu'elle s'arrête à la première cellule="" en colonne A ?

Merci encore 🙂
 
Re : boucle avec si

Bonjour le fil, bonjour le forum,

La solution que je t'ai proposée s'arrêtait déjà à la première cellule vide rencontrée en A. Je ne vois pas comment l'améliorer...

Code:
Dim cel As Range
For Each cel In Range("C2:C" & Range("[COLOR=red]A[/COLOR]65536").End(xlUp).Row)
    cel.FormulaR1C1 = "=IF(RC[-1]=""+"",RC[-2],-1*RC[-2])"
Next cel
 
Re : boucle avec si

Salut,

peut-être ne pas confondre "Do Until ... avec "Do While ..."

"Do Until..." : jusqu'à ce que ...
"Do While..." : tant que ...

Essaie
Code:
Dim i As Long
i = 2
Do [B]While[/B] Range("B" & i).Value <> ""
Range("C" & i).Value = "=IF(RC[-1]=""+"",RC[-2],-1*RC[-2])"
i = i + 1
Loop
Remarque -1*n change le signe de n. Si tu veux simplement un négatif, écris -n.
 
Re : boucle avec si

Merci à tous les deux.
J'ai testé les deux et elles se valent.
Ce sont mes fichiers qui sont énooOOOoooOOOrmes.

Je vous souhaite un excellent week-end et merci encore !
Bises
 
Re : boucle avec si

Bis,

si tes fichiers sont si énormes, pourquoi ne pas écrire les réponses plutôt que les formules (source de ralentissement) ?
Code:
For Each cel In Range("A2:A" & Range("A65536").End(xlUp).Row)
  If cel.Offset(, 1) = "+" Then cel.Offset(, 2) = -cel
Next
Remarque : je reprends le style de Robert. Le mien n'a d'intérêt que pour la distinction entre "While" et "Until".
 
Re : boucle avec si

Bonjour le fil, bonjour le forum,

Autre proposition je pense plus rapide avec AutoFill :
Code:
Sub Macro1()
Dim pl As Range 'déclare la variable pl (PLage)
 
Set pl = Range("C2:C" & Range("A65536").End(xlUp).Row) 'définit la plage pl
Range("C2").FormulaR1C1 = "=IF(RC[-1]=""+"",RC[-2],-1*RC[-2])" 'place la formule en C2
Range("C2").AutoFill Destination:=pl 'recopie la formule dans la plage pl
End Sub
 
Re : boucle avec si

Bonsoir,

quand l'auto file, l'accident se produit plus vite 😉 !
Et ainsi ?
Code:
Sub Moins()
  Range("C2:C" & Range("A65536").End(xlUp).Row).FormulaR1C1 = _
      "=IF(RC[-1]=""+"",RC[-2],-1*RC[-2])"
End Sub
 
Re : boucle avec si

Bonsoir le fil, bonsoir le forum,

Bon sang ! mais c'est bien dur ! Bien vu Lii ! Comme disait Bruno sur un autre post : "pourquoi faire simple alors qu'on peut faire compliqué"...
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

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