Macro bouton copie de lignes + conservation des formules

Bonjour,

Deux ans après ma première venue sur le forum, je me retrouve de nouveau confronter à utiliser du VBA.

Tournant en rond depuis tout à l'heure, j espere que quelqu un pourra m aider dans mon probleme

Dans le cadre d'un projet plus important, je souhaiterai créer un bouton qui permettent

  • de récupérer les saisies d'un formulaire
  • d'insérer ces données dans une structure particulière à la suite des lignes précédentes
  • conserve à chaque cellule une formule excel prédéfinie

Je vous ai creer une petit cas applicatif (voir pj) , par exemple:

Apres appuie sur le bouton, une boite de dialogue apparaît demandant à un utilisateur de saisir:

  • le pays
  • l'indicatif
Une fois saisie, 4 lignes(voir feuil1 excel) se crée à la suite avec le pays saisie, l'indicatif et les 3 prenoms identiques.

En colonne 3, la formule devra etre conserver pour qu'a l'ajout d'un numero, l'utilisateur n'ait pas à entre l indicatif

Mon principale problème est que je ne sais pas comment faire en vba pour conserver une meme "architecture" et la copier à la suite d'une ligne (derniere case non vide), tout en conservant les formules voulues

En espérant avoir était claire,

Merci pour votre aide

75macro.xlsm (14.80 Ko)

Bonsoir,

Ci-joint une proposition à tester.

Le modèle utilisé est dans l'onglet "Modèle".

Bonne soirée !

Bouben

Bonjour Bouben,

Merci c'est exactement ça !

J'avais commencé a tout codé a la main alors que copier toutes les cellules a partir d'une feuille modèle suffit, super idée !

J'ai un dernier soucis dans l'une de mes cellules j utilise une formule qui fait appel a une cellule d'une autre feuille dont le nom est une variable, la formule sous excel étant: =SOMME(F17; G17; H17) * Prix!E17

Mais quand je souhaite ajouter cette formule simple dans ma macro avec" .formula", rien a faire ca ne fonctionne pas.

Ou même ou voulant copier sans faire la somme la valeur Prix!E17 :

Cells(Lignefin + I, 5).Formula = "=" & Worksheets(nomfeuilleprix).Cells(16 + I, 5)

Cells(Lignefin + I, 5).Formula = "=SUM(RC[-3], RC[-2], RC[-1]) ..."

Note:

Cells(Lignefin + I, 5): etant la celulle dans laquelle je souhaite avoir ma formule

nomfeuillleprix étant la feuille où aller chercher le prix

Merci pour votre aide !

Bonjour

NAMVollk a écrit :

...rien a faire ca ne fonctionne pas.

Essaie de copier ta formule en 2 temps :

1 - tu mets en mémoire ta formule dans laquelle tu remplace le ‘’=’’ par ’’@’’

2 – tu colles cette variable dans ta nouvelle cellule.

Si je ne me suis pas trompé dans tes références cela devrait donner, avec ‘’formule’’ comme variable intermédiaire :

formule = Replace(Worksheets(nomfeuilleprix).Cells(16 + I, 5), "=", "@")
Cells(Lignefin + I, 5).Formula = formule

Dis-moi le résultat …

Bye !

Bonsoir gmb,

Merci de ton retour.

Ca ne fonctionne pas ou du moins ça ne donne pas le résultat voulu :/

J'ai l impression que dans formule on n'aura dans la cellule une valeur fixe et non variable dans le cas ou on changerai les données de la feuille prix, je me trompe ?

Je te mets un exemple simplifiée du but voulu avec la macro faite.

Sur la Feuil1, sur les première lignes la structure voulu et en jaune les 3 cellules qui me posent problème (contenant les formules).

Merci encore une fois pour ton aide !

34macro-copie.xlsm (27.78 Ko)

Alors, essaie cette formule :

Cells(Lignefin + I, 9).FormulaR1C1 = "=SUM(RC[-3],RC[-2],RC[-1])*Prix!R[9]C[-4]"
61macro-copie-v2.xlsm (31.21 Ko)

Toujours pas :/

Le soucis quand j applique la ligne dans ma macro est qu'au lieu d avoir :

SOMME(F20;G20;H20)*Prix!E29

SOMME(F21;G21;H21)*Prix!E30

SOMME(F22;G22;H22)*Prix!E31 avec ces trois valeurs de cellules dans la feuille prix qui restent inchangées

Ce qui va etre calculé c est :

SOMME(F20;G20;H20)*Prix!E29

SOMME(F21;G21;H21)*Prix!E30

SOMME(F22;G22;H22)*Prix!E31

Puis lorsque j execute a nouveau:

SOMME(F20;G20;H20)*Prix!E33

SOMME(F21;G21;H21)*Prix!E34

SOMME(F22;G22;H22)*Prix!E35

Ca s incrémente a chaque fois avec la valeur de I il me semble

En testant je m étais aperçu de ce soucis après avoir generé la formule avec l enregistreur de macro, est ce que tu vois ce qui pourrai poser probleme.

Cette fois ça sera la bonne !!

Merci pour ton aide:)

Alors, désolé, mais ne comprenant pas ce qu'il faut obtenir, je donne ma langue au chat.

Bye !

Bonjour,

Merci de ton retour

Je me suis peut etre mal exprimé, c'est exactement la formule que tu m'as recommandée.

Mais quand je mets la forume dans la macro, j ai aussi les valeurs de la feuille prix qui s'incrémente- ce que je ne veux pas.

Le resultat voulu est bien

SOMME(F20;G20;H20)*Prix!E29

SOMME(F21;G21;H21)*Prix!E30

SOMME(F22;G22;H22)*Prix!E31

Si quelqu un à une idée, je suis preneuse

Merci a vous !!

Rechercher des sujets similaires à "macro bouton copie lignes conservation formules"