J'ai trouvé mon erreur ! En fait pour que ça fonctionne il faut commencer le code par :
Worksheets("Feuil2").Select
Désolé !
Je vois que tu n'as rien compris aux explications de LouReed...
Alors voici ton code, écrit en VBA cette fois (pas en enregistreur) :
Sub nvl_col()
With Worksheets("Feuil2")
.Columns("K").Insert xlShiftToRight
With .Cells(2, 11)
.Value = "nouvelle colonne"
.Font.Color = vbRed
End With
End With
End Sub
Tu remarqueras que bien que ta macro soit plutôt courte, celle-ci l'est encore plus. Qu'elle ne comporte aucun Select ou Selection, et qu'un certain nombre d'autres éléments ont disparus, car ce sont des valeurs de paramètres par défaut qu'il est donc inutile de reparamétrer à la valeur qu'ils ont déjà ! Si tu l'exécutes tu constateras que tu n'as pas changé de feuille, comme te l'indiquait LouReed, tu as donné tes directives que VBA exécute sans que tu aies à courir d'une feuille à l'autre.
Et si tu mesures la durée d'exécution, tu pourras constater que ta macro s'exécutait en 31,25 millisecondes, c'est peu certainement mais pour ce qu'elle avait à faire, soit presque rien, c'est déjà beaucoup. Si tu mesures la durée d'exécution de celle-ci, tu constateras que la durée mesurée reste égale à 0 ! Non pas qu'il ne lui faille aucun temps pour réaliser ce qu'elle a à faire, mais cette durée est trop courte pour que l'appareil qui nous sert à mesurer puisse la saisir.
Elle est donc au mininimum de 6 à 10 fois plus rapide que ta macro initiale !
Tant qu'on a quasiment rien à faire, la durée est négligeable, mais dès lors que tu auras à traiter un grand nombre de données, là la différence va devenir plus nettement sensible, et il y aura un moment où tu reviendras vers le Forum pour dire que tu trouves ta macro bien lente et demander si on ne pourrait pas aller un peu plus vite. Et bien, c'est dès le début où l'on se met à coder que l'on doit apprendre à coder d'une façon plus optimale, en dépouillant le code de tout élément inutile et en privilégiant les méthodes les plus rapides, c'est dans chaque détail que l'on va gagner une durée infinitésimale, durées qui cumulées vont produire le résultat souhaité.
Cordialement.