[2007] Macro ou formule ?
Bonjour à tous !
Je suis face à une grande question :
J'ai créé un formulaire que doivent remplire certaines personnes, à chaque fin de saisie les données sont recopiées les unes en dessous des autres selon une ligne.
A la suite de cette ligne, je dois effectuer des opérations à l'aide des données saisies.
En gros on a les mêmes formules appliquées pour chaque ligne dans la même colonne.
Je me pose cette question :
je pourrais très bien effectuer une fois les calcules pour la première ligne et l'appliquer aux autres mais le nombre de ligne finale est inconnu et peut être conséquent ce qui aurait pour conséquence d'alourdir le fichier si j'étend les fomules sur toutes les colonnes
Ou alors je créé une macro qui va repérer une ligne saisie et effectuer les calcules comme un grand et s'arrêter quand il n'y a plus de donnée à traiter, cette solution m'interesse mais j'ignore comment proceder...
J'aurais besoin de votre avis sur le coups
Bonne journée
Bonjour!
Il est vrai que ce serait quand même plus pratique de passer par du VBA!
Tu peux faire Ceci :
DernLigne = Range("A" & Rows.Count).End(xlUp).Row 'là tu définie la dernière ligne d'application de ta formule
Range("I2").FormulaR1C1 = _
"=*CALCUL*" 'là tu fait ton calcul sur la case I2
Range("I2").AutoFill Destination:=Range("I2:I" & DernLigne) 'et là tu étend ta formule jusqu'à la dernière ligne Attention, lorsque tu remplaceras *CALCUL* par le calcul que tu souhaites effectuer, tu devras faire attention que VBA le comprenne.
En effet VBA est conçu en Américain donc il ne reconnaîtra pas les opérateurs que tu indiqueras si tu fais comme sur ta feuille de calcul excel.
Pour régler ce problème, je te propose une solution simple:
Tu active l'enregistreur de macro, tu tape ta formule dans une case, ensuite tu stopes l'enregistreur de macro. Tu vas dans la macro qui a été écrite par l'enregistreur et puis tu récupère le calcul qu'il a transcrit!
J'espère que cette réponse te conviendra!
Dis moi ce qu'il en est!
Amicalement
Florian
J'ai finalement trouvé la solution un peu avant que tu réponde et du coups j'ai zappé mon appel à l'aide...
Donc oui je suis passé par la VBA et tout fonctionne !
Bref, merci pour ta réponse