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

VBA/ Excel 2003/Répéter une fonction

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 !

Zizkovak

XLDnaute Nouveau
Bonjour à tous,

Je vous remercie si vous pourrez m'aidez à résoudre un problème sur lequel je bloque depuis quelques jours.

Je crée une macro à l'intérieur de laquelle je multiplie tous les montants d'une colonne par 1.

Donc dans la colonne de gauche, pour chaque cellule, j'obtiens le résultat multiplié par 1.

Le problème est que la longueur de la colonne est variable. Je ne vois pas comment répéter cette multiplication tant qu'elle est possible et l'arrêter dès que la colonne de droite contient une cellule vide ?

Je vous montre ce que j'ai saisi :

ActiveCell.Select
ActiveCell.FormulaR1C1 = "=IF(RC[1]="""","""",RC[1]*1)"
ActiveCell.Select
Selection.AutoFill Destination:=ActiveCell.Range("A1:A65536")

J'ai tenté d'utiliser un Do _ While, mais je ne vois pas comment indiquer après while "tant qu'il y a un nombre à droite" ?

J'ai aussi tenté d'utiliser la fonction val pour transformer toutes les cellules de la colonne de texte en chiffres. Mais je n'arrive pas à appliquer cette fonction sur une colonne.

Si vous pouvez m'aider, ce serait fort aimable,

Merci bien,
 
Re : VBA/ Excel 2003/Répéter une fonction

Bonjour,

J'ai saisi le code suivant :
Dim i As Integer
For i = 1 To Range("B65536").End(xlUp).Row
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "=IF(RC[1]="""","""",RC[1]*1)"
Next

Mais j'ai un problème avec le next. S'il n'y a aucun Next, la macro ne s'exécute pas. Si je mets Next i, la macro tourne en rond. Elle continue de multiplier par 1 les mêmes cellules.

Merci pour ton aide,
 
Re : VBA/ Excel 2003/Répéter une fonction

Essaies çà :

Dim i As Integer
For i = 1 To Range("B65536").End(xlUp).Row
ActiveCell.Offset(1, 0).cells(i,1).Select
ActiveCell.FormulaR1C1 = "=IF(RC[1]="""","""",RC[1]*1)"
Next i
 
- 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
40
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…