Itération d'une formule avec une boucle for dans VBA

Bonjour à tous. Je travail sur Office 365 Excel 2016

J'ai tenté ma première macro avec VBA en m'aidant des cours sur le site et je pense que je me rapproche de ce que je cherche mais je dois mal gérer la syntaxe. En résumé je cherche à aller chercher les composants d'une référence dans un TCD que j'ai crée au préalable. J'ai déjà fais une macro un peu "brutale" on va dire car je sais que la référence la avec le plus de composants en a 10, ma macro fais 10 rechercheV pour chaque item comme ça je suis sûr d'avoir les composants.

Maintenant j'aimerais améliorer le principe en faisant une boucle me permettant de faire le même nombre de RechercheV que de composant. Voilà ce que j'ai écrit :

Dim x As Integer

x = Range("C10")
For i = 0 To x

ActiveCell.FormulaR1C1 = "=VLOOKUP(R[-1]C,'TCD BOM'!R2C1:R108C11,COLUMN()+i,0)"

ActiveCell.Offset(1, 0).Select
Next i

End Sub

Je peux pas joindre mon fichier car il est trop volumineux même en gardant une seule référence. Désolé.

Si jamais vous avez des propositions n'hésitez pas .

Bonjour,

Félicitations pour ta première macro ...

Que représente la variable i dans ton code ...?

Bonjour James,

Ahaha merci, je me féliciterais si j'arrive à la faire fonctionner .

Pour moi i est là pour m'aider à faire une boucle. Dans les exemples de boucles dans les cours VBA j'ai vu que i était utilisé comme ça et qu'il n'était jamais déclaré.

En fait je veux i=1 à la première itération, i=2 et ainsi de suite jusqu'à x.

J'espère avoir réussi à répondre à la question

Re,

Je voulais surtout que tu me répondes si cette variable va te permettre de balayer une série de lignes ou une série de colonnes ???

Toutes les références finales sont dans une colonne sans doublons et on doit balayer les colonnes pour aller chercher les différents composants.

Je vais tenter de faire un petit schéma pour expliciter mes propos :

Référence 1 Composant 1 Composant 2 Composant 3

Référence 2 Composant 1

Référence 3 Composant 1 Composant 2

Re,

Du coup, une triple question se pose au sujet de ta boucle :

1. est-ce-qu'elle doit te retourner tes formules en lignes ? ( sur 1 Colonne ...)

2. est-ce-qu'elle doit te retourner tes formules en colonnes ? ( sur 1 Ligne ... )

3. est-ce-qu'elle doit te retourner tes formules en lignes et en colonnes ? ( sur plusieurs Lignes ET plusieurs Colonnes ...)

En colonne normalement. L'ide c'est que la personne qui saisit rentre la référence interne finale, se positionne dans la cellule au dessous et active la macro et ça donne ça :

Référence finale

Composant 1

Composant 2

Composant 3

C'est ce que j'ai essayé de faire en utilisant ActiveCell.Offset(1, 0).Select.

Re,

Est-ce-que tu peux prendre tout le temps de bien relire la triple question ...

et ensuite, seulement après réflexion, de répondre en étant sûr de toi ...!!!

Réponse 1 ou 2 ou 3 ...

Bonjour,

Fais une copie de ton fichier et supprime un certain nombre de données.

Puis joins ton fichier (anonymisé si utile).

Cdlt.

Victoire j'ai réussi à avoir ce que je souhaitais.

Merci James pour l'aide que tu m'a apporté. J'ai finalement suivi tes conseils et j'ai fais plusieurs tests pour arriver en fin au bout de cette macro. Je la copie ici juste pour information. Je me doute qu'elle n'est pas très bien écrite et qu'il y a des choses à revoir mais ça me suffit pour le moment :

Sub Nomenclature()

' Macro permettant d'aller chercher les composants d'une référence grâce à la nomenclature

' Déclaration variable x qui correspondra au nombre de composants d'une reference
Dim x As Integer

x = ActiveCell.Offset(-1, 1)
For i = 0 To x - 1

ActiveCell.FormulaR1C1 = "=VLOOKUP(R[" & -i - 1 & "]C,'TCD BOM'!R2C1:R108C11,COLUMN()+" & i & ",0)"

ActiveCell.Offset(1, 0).Select
Next i

End Sub

Même cela peut sembler ultra facile je suis quand même assez fier d'être arrivé jusqu'au bout.

Merci encore

Bonjour,

Comme je te l'ai dit ... dans le tout premier message :

Félicitations pour ta première macro ...

Je te souhaite d'attraper le virus ' Excel ' ....pour poursuivre l'aventure ...

Rechercher des sujets similaires à "iteration formule boucle for vba"