Bonjour a vous,

JE suis en train de trouver une alternative a une boucle afin d'optimiser un code. Pour des données "fixe" j'utilisent maintenant les filtres avancées mais ou que je bug c'est lorsque je fait référence a une adresse dans une formule.


Dans ma boucle j'avais cette section si qui m'intéresse dans mon cas présent


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 For Each produit_a_creer In feuille_mandatAValider.Range(LettreVoulue & 2, LettreVoulue & LastLignUsedInColumn(LettreVoulue))
 
    x = x + 1
 
        feuille_creation.Cells(x + 1, feuille_creation.Range("item_etab_moulinette").Column) = _
        rmultUnique(feuille_creation.Cells(x + 1, feuille_creation.Range("ID").Column), _
        feuille_revise.Range("B2:t" & LastLignUsedInSheet_Column("tmp_MoulinetteRévisée", "a") + 1), 5)
 
 
 
    Next produit_a_creer
Dont rmultUnique est une fonction similaire a la recherchev permettant d'avoir tout les données possible et ce sans la répétition de la même réponse si celle-ci apparaît plus qu'une fois.


J'arrive au code suivant si j'applique la fonction à la cellule situer à la position 2 de la colonne "item_etab_moulinette" et d'autre permettant de trouver la lettre de la colonne et la derniere ligne utilisé d'une feuille

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
    feuille_creation.Range(TrouveLettreColonne(Range("item_etab_moulinette")) & 2) = _
    rmultUnique(feuille_creation.Range(TrouveLettreColonne([ID]) & 2), _
    feuille_revise.Range("B2:t" & LastLignUsedInSheet_Column("tmp_MoulinetteRévisée", "a") + 1), 5)
Jusqu'à présent je n'ai aucun problème. Mais je veux appliquer le code à une grande plage sois de la deuxieme ligne de la colonne "item_etab_moulinette" jusqu'à la dernière



Ce qui me donne ceci toujours avec mes fonctions


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
    feuille_creation.Range((TrouveLettreColonne([item_etab_moulinette]) & 2), TrouveLettreColonne([item_etab_moulinette]) _
    & LastLignUsedInSheet_Column("Demande de création", "B")) = rmultUnique(feuille_creation.Range(TrouveLettreColonne([ID]) & 2), _
    feuille_revise.Range("B2:t" & LastLignUsedInSheet_Column("tmp_MoulinetteRévisée", "a") + 1), 5)

LE seul hic que j'ai présentement c'est que je veux remplacer la valeur fixe 2 (en rouge et en gras dans le code) par la référence de sont emplacement de ligne i.e. la ligne 3 le 2 est remplacer par 3, la ligne 4 le 2 est un 4, etc ...


J'ai été donc lire l'aide sur la propriété range.row ...

Est-ce que je peux affecter une variable correspondant a la row sans faire de boucle ???

ou dois-je absolument faire comme mon exemple du début a fin de "populer" la variable ????

un gros merci pour votre temps et aide