Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Optimisation de code...

  • Initiateur de la discussion Initiateur de la discussion natorp
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

natorp

XLDnaute Barbatruc
Bjr à tous et toutes

J'ai mis ce code dans le code VBA de ma feuil1 afin que la somme des cellules
I13 et J13 se fasse automatiquement en K13 (pour eviter la suppression de la formule dans la cellule de la feuille)

Range("K13") = "=SUM(I13+J13)"

j'ai besoin de mettre la même formule sur les cellules suivantes jusqu'à K31

J'ai tenté une boucle avec for.... next, mais je n'y arrive pas, merci de votre aide

Cordialement Gérard
 
Re : Optimisation de code...

Salut natorp,

Ce n'est pas de l'optimisation de code, pas à mon avis en tout cas

Pas besoin de somme pour 2 cellules
Code:
For Lig = 13 to 31
  Range("K" & Lig ).FormulaLocal = "=I" & lig & "+J" & lig 
Next Lig

A+
 
Re : Optimisation de code...

Re...
Ou encore :
Code:
[COLOR="DarkSlateGray"]Sub toto()
   Range("K13") = "=SUM(I13+J13)" [COLOR="SeaGreen"]'Ou tout autre fonction à votre goût.[/COLOR]
   Range("K13").AutoFill Destination:=Range("K13:K31"), Type:=xlFillDefault
End Sub[/COLOR]
ROGER2327
 
Re : Optimisation de code...

Merci Bruno et Roger
Pour Bruno, cela bloque complètement mon fichier quand après avoir entré une donnée en I13 je ne peux plus rien faire dans aucune autre cellule.
Pour Roger cela fonctionnerait correctement si le temps de réponse était plus court, à chaque valeur ajouter dans les I13 à J31 à chaque fois je vois toutes les cellules K13 à K31 qui clignotent avant de se mettre à jour....

à suivre... merci
Gérard
 
Re : Optimisation de code...

Re...
Code:
[COLOR="DarkSlateGray"]Sub toto()
   [B]Application.ScreenUpdating = False
   Application.Calculation = xlCalculationManual[/B]
   Range("K13") = "=SUM(I13+J13)" 'Ou tout autre fonction à votre goût.
   Range("K13").AutoFill Destination:=Range("K13:K31"), Type:=xlFillDefault
   [B]Application.Calculation = xlCalculationAutomatic
   Application.ScreenUpdating = True[/B]
End Sub[/COLOR]
devrait améliorer les choses...​
ROGER2327
 
Re : Optimisation de code...

Bonsoir natorp, Bruno, Roger 🙂

19 cellules à remplir, ça se fait en moins d'un millième de secondes...

Il y a de la macro Worksheet_Change dans l'air, essayer :

Code:
Application.EnableEvents = False
For Lig = 13 to 31
  Range("K" & Lig ).FormulaLocal = "=I" & lig & "+J" & lig 
Next Lig
Application.EnableEvents = True

Edit : mieux :

Code:
Application.EnableEvents = False
Range("K13:K31").FormulaR1C1 = "=RC[-2]+RC[-1]"
Application.EnableEvents = True

A+
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…