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
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.
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
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
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
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)
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
Partager