Propagation formule VBA

Bonjour à tous,

Voici mon soucis : J'ai un tableau structuré avec 3 colonnes. Les 2 premières colonnes sont mes données source (Valeur_1 et Valeur_2 dans le fichier joint).

Je souhaite faire une macro qui applique la formule contenue dans la colonne C (Calcul). Ces valeurs sont variables comme une moyenne glissante. Je cherche donc la référence de la cellule en colonne A pour laquelle la valeur est la plus proche de 1,5. Je cherche ensuite la valeur correspondante pour la colonne Valeur_2. Ces 2 données sont utilisées dans la formule de la colonne C.

A titre d'exemple, la formule est la suivante pour la case C2 : C2=(B8-[@[Valeur_2]])/(A8-[@[Valeur_1]]). Ici c'est fait manuellement mais je souhaite l'automatiser et propager cette formule comme dans l'exemple. Est ce que vous avez une idée de ce code en VBA ?

Merci à tous !

18classeur1.xlsm (141.77 Ko)

Bonjour

A titre d'exemple, la formule est la suivante pour la case C2 : C2=(B8-[@[Valeur_2]])/(A8-[@[Valeur_1]]). Ici c'est fait manuellement mais je souhaite l'automatiser et propager cette formule comme dans l'exemple. Est ce que vous avez une idée de ce code en VBA ?

Pourquoi vouloir utiliser de la programmation VBA ??
Les tableaux structurés sont aussi faits aussi pour éviter d'utiliser le VBA justement...

Le fait d'ajouter une donnée en dessous de la dernière ligne de votre tableau (ligne 2321) va étendre la formule automatiquement

Cordialement

Bonjour le forum, Thibaud.Test, Dan,

Bonjour à tous,

.........

Ici c'est fait manuellement mais je souhaite l'automatiser et propager cette formule comme dans l'exemple. Est ce que vous avez une idée de ce code en VBA ?

Merci à tous !

Une proposition, le code est dans la "Feuil1"

19thibaud-test.xlsm (122.06 Ko)

Cordialement.

Re,

mdo100, à quoi cela sert de faire un code lorsqu'excel fait cela tout seul dans les tableaux structurés.

Avez-vous vu le code dans le module qui lui, peut servir au départ

Cordialement.

@Dan,

Avant de faire ma réponse, j'avais bien lu la votre sur l'extension automatique des formule concernant les tableaux structurés et je ne contredis pas votre réponse.

Et j'ai aussi vu le code dans le module, mais pour que cela reste automatique, j'ai préféré mettre le code dans la feuille, plutôt que d'être obligé de cliquer sur un bouton pour activer le code dans le module.

Cela dit, j'ai répondu à la demande @Thibaud.Test, je ne pensais pas que cela vous choquerait, libre à vous de modérer ma réponse.

Cdlt.

@mod100

Mais cela ne me choque absolument pas.

De mon avis, c'est juste que mettre un code VBA dans un tableau structuré n'a pour moi aucun intérêt puisqu'une fois la formule mise sur la première ligne du tableau elle sera automatique recopiée à chaque ajout d'une nouvelle ligne.

Crdlt

@Dan,

Nous sommes d'accord.

Cdlt.

Tout d'abord, merci pour votre aide.

J'ai peut être été un peu rapide dans mon explication du problème et un peu simpliste pour l'exemple que j'ai envoyé. Il faut imaginer que les colonnes Valeur_1 et Valeur_2 sont des données d'entrée qui varient à chaque nouvelle étude. J'ai mis un seule colonne pour le calcul mais il faut imaginer qu'il y a plusieurs colonnes, contenant différentes formules dépendantes de certaines valeurs des données d'entrée. La colonne Calcul de l'exemple se base sur la valeur la plus proche de 1,5 pour la formule de la première ligne, ce qui n'est pas forcément le cas des autres formules. Tout modifier à la main prend un temps important puisqu'il faut aller chercher à chaque fois la case correspondante à la valeur recherchée et l'insérer dans chaque formule.

D'ailleurs la valeur la plus proche de 1,5 dans la colonne A n'est pas la ligne 6 (code envoyé) ou je me trompe ?

Est ce que c'est plus clair ?

Pour clarifier l'ordre des opérations :

- Dans la colonne Valeur_1, chercher la case pour laquelle la valeur est égale à 1,5

- L'insérer dans la formule,

- Dans la colonne Valeur_2, chercher la case correspondante à la valeur 1,5 pour la colonne Valeur_1 (même ligne),

- l'insérer dans la formule

- Propager la formule dans toutes les cases en gardant le même écart que celui entre [@[Valeur_1]] et la case égale à 1,5

Bonjour,

Je pense que je n'avais pas bien compris votre demande.... j'ai tout de même regardé de plus près.

Toujours sans VBA, mettez cette formule en C2 --> =(INDIRECT(ADRESSE(EQUIV(1,5;[Valeur_1])-1+LIGNE();2;4;1))-[@[Valeur_2]])/(INDIRECT(ADRESSE(EQUIV(1,5;[Valeur_1])-1+LIGNE();1;4;1))-[@[Valeur_1]])

Elle sera recopiée automatiquement vers le bas puisque votre tableau est au format structuré

Cordialement

Rechercher des sujets similaires à "propagation formule vba"