dionys0s
XLDnaute Impliqué
Bonjour le forum
j'ai la boucle suivante qui me permet de remplir diverses lignes et colonnes d'un tableau
J'ai fait le test sur 70 lignes, et ça prend plus de 30 secondes... certes mon PC rame mais pas à ce point.
Donc j'aimerais savoir s'il est possible d'accélérer ça, ou si je suis obligé de mettre une fonction.
Par exemple on peut se pas utiliser les fonctions GAUCHE, DROITE, TROUVE, etc en utilisant directement Left, Right, Find, InStr etc. dans le VBE. Est-ce possible avec COUNTA, AVERAGE etc. ? Voici mon code.
Pour info, les codes de type
" & Cellule.Offset(0, 3) & "_Joueur_" & Cellule & "_" & Cellule.Offset(0, 1) & "_Notes
renvoient une plage nommée dans mon gestionnaire de formule. Toutes mes plages sont nommées dynamiquement.
J'espère être assez précis.
D'avance merci pour votre aide
dionys0s
j'ai la boucle suivante qui me permet de remplir diverses lignes et colonnes d'un tableau
J'ai fait le test sur 70 lignes, et ça prend plus de 30 secondes... certes mon PC rame mais pas à ce point.
Donc j'aimerais savoir s'il est possible d'accélérer ça, ou si je suis obligé de mettre une fonction.
Par exemple on peut se pas utiliser les fonctions GAUCHE, DROITE, TROUVE, etc en utilisant directement Left, Right, Find, InStr etc. dans le VBE. Est-ce possible avec COUNTA, AVERAGE etc. ? Voici mon code.
Code:
For Each Cellule In Sheets(61).Range(Range("A2"), Range("A2").End(xlDown))
Cellule.Offset(0, 4).FormulaR1C1 = "=IFERROR(COUNTA(" & Cellule.Offset(0, 3) & "_Joueur_" & Cellule & "_" & Cellule.Offset(0, 1) & "_Notes),"""")"
Cellule.Offset(0, 4) = Cellule.Offset(0, 4)
Cellule.Offset(0, 5).FormulaR1C1 = "=IFERROR(COUNTA(" & Cellule.Offset(0, 3) & "_Joueur_" & Cellule & "_" & Cellule.Offset(0, 1) & "_Minutes)-RC5,"""")"
Cellule.Offset(0, 5) = Cellule.Offset(0, 5)
Cellule.Offset(0, 6).FormulaR1C1 = "=IFERROR(SUM(" & Cellule.Offset(0, 3) & "_Joueur_" & Cellule & "_" & Cellule.Offset(0, 1) & "_Minutes),"""")"
Cellule.Offset(0, 6) = Cellule.Offset(0, 6)
Cellule.Offset(0, 7).FormulaR1C1 = "=IFERROR(AVERAGE(" & Cellule.Offset(0, 3) & "_Joueur_" & Cellule & "_" & Cellule.Offset(0, 1) & "_Notes),"""")"
Cellule.Offset(0, 7) = Cellule.Offset(0, 7)
Cellule.Offset(0, 8).FormulaR1C1 = "=IFERROR(SUM(" & Cellule.Offset(0, 3) & "_Joueur_" & Cellule & "_" & Cellule.Offset(0, 1) & "_Jaunes),"""")"
Cellule.Offset(0, 8) = Cellule.Offset(0, 8)
Cellule.Offset(0, 9).FormulaR1C1 = "=IFERROR(SUM(" & Cellule.Offset(0, 3) & "_Joueur_" & Cellule & "_" & Cellule.Offset(0, 1) & "_Rouges),"""")"
Cellule.Offset(0, 9) = Cellule.Offset(0, 9)
Cellule.Offset(0, 10).FormulaR1C1 = "=IFERROR(SUM(" & Cellule.Offset(0, 3) & "_Joueur_" & Cellule & "_" & Cellule.Offset(0, 1) & "_Buts),"""")"
Cellule.Offset(0, 10) = Cellule.Offset(0, 10)
Cellule.Offset(0, 11).FormulaR1C1 = "=IFERROR(SUM(" & Cellule.Offset(0, 3) & "_Joueur_" & Cellule & "_" & Cellule.Offset(0, 1) & "_Passes),"""")"
Cellule.Offset(0, 11) = Cellule.Offset(0, 11)
Next Cellule
Pour info, les codes de type
" & Cellule.Offset(0, 3) & "_Joueur_" & Cellule & "_" & Cellule.Offset(0, 1) & "_Notes
renvoient une plage nommée dans mon gestionnaire de formule. Toutes mes plages sont nommées dynamiquement.
J'espère être assez précis.
D'avance merci pour votre aide
dionys0s