HUGUESEXCEL
XLDnaute Nouveau
Bonjour à toutes et tous,
Je suis débutant en création de code VBA sous excel.
Je cherche sur une très grande plage de cellule (C2:C1000) dans mon exemple (a terme encore beaucoup plus de lignes) à appliquer une formule (C2= A2+B2 par exemple).Formule devant être "stockée" dans la macro, la cellule ne faisant apparaitre que la valeur du calcul.
J'arrive à créer un code qui fonctionne pour C2 par exemple mais vous imaginez bien que je ne peux me permettre d'écrire ce code pour chaque ligne concernée
Je pourrais créer une boucle each for mais d'après mes recherches, il semblerait que la méthode des ARRAY ou TABLEAUX VARIANTS soit beaucoup plus rapide en ce qui concerne le temps d'exécution de la macro. Sachant qu'à terme mon fichier final contiendra un nombre très important de ligne et que je ne veux pas qu'ils soit trop lourd en volume je souhaite à la fois une macro rapide et sans écrire les formules en dur dans les cellules concernées.
J'ai donc commencé à écrire le code ci après mais manifestement mes compétences sont insuffisantes car mon code "plante" sans que je n'arrive à savoir pourquoi. Je pense que je ne comprend pas bien la syntaxe des tableaux intermédiaires.
Ci après mon code, peut être que vous pourrez m'aiguiller et m'apporter une solution
J'espère être assez clair
Merci
Cordialement
Hugues
Je suis débutant en création de code VBA sous excel.
Je cherche sur une très grande plage de cellule (C2:C1000) dans mon exemple (a terme encore beaucoup plus de lignes) à appliquer une formule (C2= A2+B2 par exemple).Formule devant être "stockée" dans la macro, la cellule ne faisant apparaitre que la valeur du calcul.
J'arrive à créer un code qui fonctionne pour C2 par exemple mais vous imaginez bien que je ne peux me permettre d'écrire ce code pour chaque ligne concernée
Code:
Sub FORMULE()
Range("C2").FormulaLocal = "=A2+B2"
Range("C2").Value = Range("C2")
End Sub
Je pourrais créer une boucle each for mais d'après mes recherches, il semblerait que la méthode des ARRAY ou TABLEAUX VARIANTS soit beaucoup plus rapide en ce qui concerne le temps d'exécution de la macro. Sachant qu'à terme mon fichier final contiendra un nombre très important de ligne et que je ne veux pas qu'ils soit trop lourd en volume je souhaite à la fois une macro rapide et sans écrire les formules en dur dans les cellules concernées.
J'ai donc commencé à écrire le code ci après mais manifestement mes compétences sont insuffisantes car mon code "plante" sans que je n'arrive à savoir pourquoi. Je pense que je ne comprend pas bien la syntaxe des tableaux intermédiaires.
Ci après mon code, peut être que vous pourrez m'aiguiller et m'apporter une solution
Code:
Sub FORMULEBIS()
Dim TAB1 ' C2:C1000 I, J
Dim TAB2 ' A2:A1000 K, L
Dim TAB3 'B2:B100 M, N
Dim I As Integer, J As Integer, K As Integer, L As Integer, M As Integer, N As Integer
TAB1 = Range("C2:C1000").Value
TAB2 = Range("A2:A1000").Value
TAB3 = Range("B2:B1000").Value
For I = 2 To 1000
For J = 3 To 3
For K = 2 To 1000
For L = 1 To 1
For M = 2 To 1000
For N = 2 To 2
TAB1(I, J) = TAB2(K, L) + TAB3(M, N)
Next J
Next I
Next K
Next L
Next M
Next N
Range("c2:c1000").Value = TAB1
End Sub
J'espère être assez clair
Merci
Cordialement
Hugues