Multiple regression avec des séries non fixes
Résolu
vbondoma
-
vbondoma -
vbondoma -
Bonjour,
Je débute dans les macro vba et viens de passer un certain temps à essayer de debugger mon code. J'espère que quelqu'un sur le forum pourra m'aider.
J'ai un fichier avec 19 variables (18 expliquées et 1 explicative). Je dois donc réaliser 18 régressions linéaires sur la base de ces données. Sachant que mes 19 séries "accueillent" une nouvelle donnée tous les mois ce qui fait que la longueur de ma série n'est pas fixe.
J'ai dans un premier temps, écris à l'aide de l'enregistreur de macro le code ci-dessous qui effectue les 18 régressions dont j'ai besoin (code non optimal je sais bien). Et celui-ci marche bien:
Ensuite j'ai essayé de prendre en compte le fait que mes séries sont évolutives avec le code ci-dessous et là je reçois 2 sortes de messages d'erreur :
"La plage d'entrée ne peut contenir des données non numériques"
" Les plages d'entrées pour les variables X et pour la variable Y doivent avoir le même nombre de ligne, sans y compter l'intitulé"
A noter que quand je lance les blocs de code un à un, ils fonctionnent tous. C'est ensemble qu'ils dysfonctionnent.
Quelqu'un saurait-il pourquoi et ce que je peux y faire?
Les propositions d'optimisation de mon code sont également les bienvenues!
Merci d'avance!
Je débute dans les macro vba et viens de passer un certain temps à essayer de debugger mon code. J'espère que quelqu'un sur le forum pourra m'aider.
J'ai un fichier avec 19 variables (18 expliquées et 1 explicative). Je dois donc réaliser 18 régressions linéaires sur la base de ces données. Sachant que mes 19 séries "accueillent" une nouvelle donnée tous les mois ce qui fait que la longueur de ma série n'est pas fixe.
J'ai dans un premier temps, écris à l'aide de l'enregistreur de macro le code ci-dessous qui effectue les 18 régressions dont j'ai besoin (code non optimal je sais bien). Et celui-ci marche bien:
ActiveWorkbook.Sheets("Reg_taux_longs").Cells.Select Selection.ClearContents Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone Selection.Borders(xlEdgeLeft).LineStyle = xlNone Selection.Borders(xlEdgeTop).LineStyle = xlNone Selection.Borders(xlEdgeBottom).LineStyle = xlNone Selection.Borders(xlEdgeRight).LineStyle = xlNone Selection.Borders(xlInsideVertical).LineStyle = xlNone Selection.Borders(xlInsideHorizontal).LineStyle = xlNone ' Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$C$5:$C$382"), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$382"), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$1:$I$18"), False, False, False, False, , False Sheets("Reg_taux_longs").Range("B1").Select ActiveCell.FormulaR1C1 = "=Données!R[3]C[1]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$D$5:$D$382"), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$382"), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$20:$I$38"), False, False, False, False, , False Sheets("Reg_taux_longs").Range("B20").Select ActiveCell.FormulaR1C1 = "=Données!R[-16]C[2]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$E$5:$E$382"), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$382"), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$40:$I$58"), False, False, False, False, , False Sheets("Reg_taux_longs").Range("B40").Select ActiveCell.FormulaR1C1 = "=Données!R[-36]C[3]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$F$5:$F$382"), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$382"), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$60:$I$78"), False, False, False, False, , False Sheets("Reg_taux_longs").Range("B60").Select ActiveCell.FormulaR1C1 = "=Données!R[-56]C[4]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$G$5:$G$382"), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$382"), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$80:$I$98"), False, False, False, False, , False Sheets("Reg_taux_longs").Range("B80").Select ActiveCell.FormulaR1C1 = "=Données!R[-76]C[5]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$H$5:$H$382"), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$382"), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$100:$I$118"), False, False, False, False, , False Sheets("Reg_taux_longs").Range("B100").Select ActiveCell.FormulaR1C1 = "=Données!R[-96]C[6]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$I$5:$I$382"), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$382"), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$120:$I$138"), False, False, False, False, , False Sheets("Reg_taux_longs").Range("B120").Select ActiveCell.FormulaR1C1 = "=Données!R[-116]C[7]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$J$5:$J$382"), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$382"), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$140:$I$158"), False, False, False, False, , False Sheets("Reg_taux_longs").Range("B140").Select ActiveCell.FormulaR1C1 = "=Données!R[-136]C[8]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$K$5:$K$382"), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$382"), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$160:$I$178"), False, False, False, False, , False Sheets("Reg_taux_longs").Range("B160").Select ActiveCell.FormulaR1C1 = "=Données!R[-156]C[9]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$L$5:$L$382"), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$382"), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$180:$I$198"), False, False, False, False, , False Sheets("Reg_taux_longs").Range("B180").Select ActiveCell.FormulaR1C1 = "=Données!R[-176]C[10]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$M$5:$M$382"), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$382"), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$200:$I$218"), False, False, False, False, , False Sheets("Reg_taux_longs").Range("B200").Select ActiveCell.FormulaR1C1 = "=Données!R[-196]C[11]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$N$65:$N$382"), _ ActiveWorkbook.Sheets("Données").Range("$B$65:$B$382"), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$220:$I$238"), False, False, False, False, , False Sheets("Reg_taux_longs").Range("B220").Select ActiveCell.FormulaR1C1 = "=Données!R[-216]C[12]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$O$65:$O$382"), _ ActiveWorkbook.Sheets("Données").Range("$B$65:$B$382"), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$240:$I$258"), False, False, False, False, , False Sheets("Reg_taux_longs").Range("B240").Select ActiveCell.FormulaR1C1 = "=Données!R[-236]C[13]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$P$173:$P$382"), _ ActiveWorkbook.Sheets("Données").Range("$B$173:$B$382"), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$260:$I$278"), False, False, False, False, , False Sheets("Reg_taux_longs").Range("B260").Select ActiveCell.FormulaR1C1 = "=Données!R[-256]C[14]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$Q$65:$Q$382"), _ ActiveWorkbook.Sheets("Données").Range("$B$65:$B$382"), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$280:$I$298"), False, False, False, False, , False Sheets("Reg_taux_longs").Range("B280").Select ActiveCell.FormulaR1C1 = "=Données!R[-276]C[15]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$R$5:$R$382"), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$382"), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$300:$I$318"), False, False, False, False, , False Sheets("Reg_taux_longs").Range("B300").Select ActiveCell.FormulaR1C1 = "=Données!R[-296]C[16]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$S$5:$S$382"), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$382"), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$320:$I$338"), False, False, False, False, , False Sheets("Reg_taux_longs").Range("B320").Select ActiveCell.FormulaR1C1 = "=Données!R[-316]C[17]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$T$65:$T$382"), _ ActiveWorkbook.Sheets("Données").Range("$B$65:$B$382"), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$340:$I$358"), False, False, False, False, , False Sheets("Reg_taux_longs").Range("B340").Select ActiveCell.FormulaR1C1 = "=Données!R[-336]C[18]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$U$5:$U$382"), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$382"), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$360:$I$378"), False, False, False, False, , False Sheets("Reg_taux_longs").Range("B360").Select ActiveCell.FormulaR1C1 = "=Données!R[-356]C[19]" End Sub
Ensuite j'ai essayé de prendre en compte le fait que mes séries sont évolutives avec le code ci-dessous et là je reçois 2 sortes de messages d'erreur :
"La plage d'entrée ne peut contenir des données non numériques"
" Les plages d'entrées pour les variables X et pour la variable Y doivent avoir le même nombre de ligne, sans y compter l'intitulé"
A noter que quand je lance les blocs de code un à un, ils fonctionnent tous. C'est ensemble qu'ils dysfonctionnent.
ActiveWorkbook.Sheets("Reg_taux_longs").Cells.Select Selection.ClearContents Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone Selection.Borders(xlEdgeLeft).LineStyle = xlNone Selection.Borders(xlEdgeTop).LineStyle = xlNone Selection.Borders(xlEdgeBottom).LineStyle = xlNone Selection.Borders(xlEdgeRight).LineStyle = xlNone Selection.Borders(xlInsideVertical).LineStyle = xlNone Selection.Borders(xlInsideHorizontal).LineStyle = xlNone Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$C$5:$C$" & Range("C" & Rows.Count).End(xlUp).Row), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$" & Range("B" & Rows.Count).End(xlUp).Row), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$1:$I$18"), _ False, False, False, False, , False Sheets("Reg_taux_longs").Range("B1").Select ActiveCell.FormulaR1C1 = "=Données!R[3]C[1]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$D$5:$D$" & Range("D" & Rows.Count).End(xlUp).Row), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$" & Range("B" & Rows.Count).End(xlUp).Row), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$20:$I$38"), _ False, False, False, False, , False Sheets("Reg_taux_longs").Range("B20").Select ActiveCell.FormulaR1C1 = "=Données!R[-16]C[2]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$E$5:$E$" & Range("E" & Rows.Count).End(xlUp).Row), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$" & Range("B" & Rows.Count).End(xlUp).Row), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$40:$I$58"), _ False, False, False, False, , False Sheets("Reg_taux_longs").Range("B40").Select ActiveCell.FormulaR1C1 = "=Données!R[-36]C[3]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$F$5:$F$" & Range("F" & Rows.Count).End(xlUp).Row), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$" & Range("B" & Rows.Count).End(xlUp).Row), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$60:$I$78"), _ False, False, False, False, , False Sheets("Reg_taux_longs").Range("B60").Select ActiveCell.FormulaR1C1 = "=Données!R[-56]C[4]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$G$5:$G$" & Range("G" & Rows.Count).End(xlUp).Row), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$" & Range("B" & Rows.Count).End(xlUp).Row), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$80:$I$98"), _ False, False, False, False, , False Sheets("Reg_taux_longs").Range("B80").Select ActiveCell.FormulaR1C1 = "=Données!R[-76]C[5]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$H$5:$H$" & Range("H" & Rows.Count).End(xlUp).Row), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$" & Range("B" & Rows.Count).End(xlUp).Row), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$100:$I$118"), _ False, False, False, False, , False Sheets("Reg_taux_longs").Range("B100").Select ActiveCell.FormulaR1C1 = "=Données!R[-96]C[6]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$I$5:$I$" & Range("I" & Rows.Count).End(xlUp).Row), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$" & Range("B" & Rows.Count).End(xlUp).Row), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$120:$I$138"), _ False, False, False, False, , False Sheets("Reg_taux_longs").Range("B120").Select ActiveCell.FormulaR1C1 = "=Données!R[-116]C[7]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$J$5:$J$" & Range("J" & Rows.Count).End(xlUp).Row), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$" & Range("B" & Rows.Count).End(xlUp).Row), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$140:$I$158"), _ False, False, False, False, , False Sheets("Reg_taux_longs").Range("B140").Select ActiveCell.FormulaR1C1 = "=Données!R[-136]C[8]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$K$5:$K$" & Range("K" & Rows.Count).End(xlUp).Row), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$" & Range("B" & Rows.Count).End(xlUp).Row), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$160:$I$178"), _ False, False, False, False, , False Sheets("Reg_taux_longs").Range("B160").Select ActiveCell.FormulaR1C1 = "=Données!R[-156]C[9]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$L$5:$L$" & Range("L" & Rows.Count).End(xlUp).Row), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$" & Range("B" & Rows.Count).End(xlUp).Row), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$180:$I$198"), _ False, False, False, False, , False Sheets("Reg_taux_longs").Range("B180").Select ActiveCell.FormulaR1C1 = "=Données!R[-176]C[10]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$M$5:$M$" & Range("M" & Rows.Count).End(xlUp).Row), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$" & Range("B" & Rows.Count).End(xlUp).Row), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$200:$I$218"), _ False, False, False, False, , False Sheets("Reg_taux_longs").Range("B200").Select ActiveCell.FormulaR1C1 = "=Données!R[-196]C[11]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$N$65:$N$" & Range("N" & Rows.Count).End(xlUp).Row), _ ActiveWorkbook.Sheets("Données").Range("$B$65:$B$" & Range("B" & Rows.Count).End(xlUp).Row), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$220:$I$238"), _ False, False, False, False, , False Sheets("Reg_taux_longs").Range("B220").Select ActiveCell.FormulaR1C1 = "=Données!R[-216]C[12]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$O$65:$O$" & Range("O" & Rows.Count).End(xlUp).Row), _ ActiveWorkbook.Sheets("Données").Range("$B$65:$B$" & Range("B" & Rows.Count).End(xlUp).Row), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$240:$I$258"), _ False, False, False, False, , False Sheets("Reg_taux_longs").Range("B240").Select ActiveCell.FormulaR1C1 = "=Données!R[-236]C[13]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$P$173:$P$" & Range("P" & Rows.Count).End(xlUp).Row), _ ActiveWorkbook.Sheets("Données").Range("$B$173:$B$" & Range("B" & Rows.Count).End(xlUp).Row), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$260:$I$278"), _ False, False, False, False, , False Sheets("Reg_taux_longs").Range("B260").Select ActiveCell.FormulaR1C1 = "=Données!R[-256]C[14]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$Q$65:$Q$" & Range("Q" & Rows.Count).End(xlUp).Row), _ ActiveWorkbook.Sheets("Données").Range("$B$65:$B$" & Range("B" & Rows.Count).End(xlUp).Row), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$280:$I$298"), _ False, False, False, False, , False Sheets("Reg_taux_longs").Range("B280").Select ActiveCell.FormulaR1C1 = "=Données!R[-276]C[15]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$R$5:$R$" & Range("R" & Rows.Count).End(xlUp).Row), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$" & Range("B" & Rows.Count).End(xlUp).Row), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$300:$I$318"), _ False, False, False, False, , False Sheets("Reg_taux_longs").Range("B300").Select ActiveCell.FormulaR1C1 = "=Données!R[-296]C[16]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$S$5:$S$" & Range("S" & Rows.Count).End(xlUp).Row), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$" & Range("B" & Rows.Count).End(xlUp).Row), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$320:$I$338"), _ False, False, False, False, , False Sheets("Reg_taux_longs").Range("B320").Select ActiveCell.FormulaR1C1 = "=Données!R[-316]C[17]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$T$65:$T$" & Range("T" & Rows.Count).End(xlUp).Row), _ ActiveWorkbook.Sheets("Données").Range("$B$65:$B$" & Range("B" & Rows.Count).End(xlUp).Row), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$340:$I$358"), _ False, False, False, False, , False Sheets("Reg_taux_longs").Range("B340").Select ActiveCell.FormulaR1C1 = "=Données!R[-336]C[18]" Application.Run "ATPVBAEN.XLAM!Regress", ActiveWorkbook.Sheets("Données").Range("$U$5:$U$" & Range("U" & Rows.Count).End(xlUp).Row), _ ActiveWorkbook.Sheets("Données").Range("$B$5:$B$" & Range("B" & Rows.Count).End(xlUp).Row), False, False, , ActiveWorkbook.Sheets("Reg_taux_longs").Range("$A$360:$I$378"), _ False, False, False, False, , False Sheets("Reg_taux_longs").Range("B360").Select ActiveCell.FormulaR1C1 = "=Données!R[-356]C[19]" End Sub
Quelqu'un saurait-il pourquoi et ce que je peux y faire?
Les propositions d'optimisation de mon code sont également les bienvenues!
Merci d'avance!
A voir également:
- Multiple regression avec des séries non fixes
- Ecran multiple pc - Guide
- Excel cellule choix multiple - Guide
- Copier coller multiple - Guide
- Consommation xbox series x - Accueil - Guide jeu vidéo
- Amd radeon r9 200 series ✓ - Forum Carte graphique
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonsoir, prenons d'abord le temps d'optimiser ton code de départ, il sera ensuite plus facile de le généraliser.
suggestion:
cela se comporte-il comme ton code de départ?
si oui, il suffit ensuite, je pense, de modifier la ligne 8.
suggestion:
Option Explicit Sub tt() Dim dest As Worksheet Dim source As Worksheet Dim dernlig As Long dernlig = 382 Set dest = ThisWorkbook.Sheets("Reg_taux_longs") Set source = ThisWorkbook.Sheets("Données") dest.Cells.ClearContents dest.Cells.Borders(xlDiagonalDown).LineStyle = xlNone dest.Cells.Borders(xlDiagonalUp).LineStyle = xlNone dest.Cells.Borders(xlEdgeLeft).LineStyle = xlNone dest.Cells.Borders(xlEdgeTop).LineStyle = xlNone dest.Cells.Borders(xlEdgeBottom).LineStyle = xlNone dest.Cells.Borders(xlEdgeRight).LineStyle = xlNone dest.Cells.Borders(xlInsideVertical).LineStyle = xlNone dest.Cells.Borders(xlInsideHorizontal).LineStyle = xlNone ' Application.Run "ATPVBAEN.XLAM!Regress", source.Range("$C$5:$C$" & dernlig), _ source.Range("$B$5:$B$" & dernlig), False, False, , dest.Range("$A$1:$I$18"), False, False, False, False, , False dest.Range("B1").FormulaR1C1 = "=Données!R[3]C[1]" Application.Run "ATPVBAEN.XLAM!Regress", source.Range("$D$5:$D$" & dernlig), _ source.Range("$B$5:$B$" & dernlig), False, False, , dest.Range("$A$20:$I$38"), False, False, False, False, , False dest.Range("B20").FormulaR1C1 = "=Données!R[-16]C[2]" Application.Run "ATPVBAEN.XLAM!Regress", source.Range("$E$5:$E$" & dernlig), _ source.Range("$B$5:$B$" & dernlig), False, False, , dest.Range("$A$40:$I$58"), False, False, False, False, , False dest.Range("B40").FormulaR1C1 = "=Données!R[-36]C[3]" Application.Run "ATPVBAEN.XLAM!Regress", source.Range("$F$5:$F$" & dernlig), _ source.Range("$B$5:$B$" & dernlig), False, False, , dest.Range("$A$60:$I$78"), False, False, False, False, , False dest.Range("B60").FormulaR1C1 = "=Données!R[-56]C[4]" Application.Run "ATPVBAEN.XLAM!Regress", source.Range("$G$5:$G$" & dernlig), _ source.Range("$B$5:$B$" & dernlig), False, False, , dest.Range("$A$80:$I$98"), False, False, False, False, , False dest.Range("B80").FormulaR1C1 = "=Données!R[-76]C[5]" Application.Run "ATPVBAEN.XLAM!Regress", source.Range("$H$5:$H$" & dernlig), _ source.Range("$B$5:$B$" & dernlig), False, False, , dest.Range("$A$100:$I$118"), False, False, False, False, , False dest.Range("B100").FormulaR1C1 = "=Données!R[-96]C[6]" Application.Run "ATPVBAEN.XLAM!Regress", source.Range("$I$5:$I$" & dernlig), _ source.Range("$B$5:$B$" & dernlig), False, False, , dest.Range("$A$120:$I$138"), False, False, False, False, , False Sheets("Reg_taux_longs").FormulaR1C1 = "=Données!R[-116]C[7]" Application.Run "ATPVBAEN.XLAM!Regress", source.Range("$J$5:$J$" & dernlig), _ source.Range("$B$5:$B$" & dernlig), False, False, , dest.Range("$A$140:$I$158"), False, False, False, False, , False dest.Range("B140").Select ActiveCell.FormulaR1C1 = "=Données!R[-136]C[8]" Application.Run "ATPVBAEN.XLAM!Regress", source.Range("$K$5:$K$" & dernlig), _ source.Range("$B$5:$B$" & dernlig), False, False, , dest.Range("$A$160:$I$178"), False, False, False, False, , False dest.Range("B160").FormulaR1C1 = "=Données!R[-156]C[9]" Application.Run "ATPVBAEN.XLAM!Regress", source.Range("$L$5:$L$" & dernlig), _ source.Range("$B$5:$B$" & dernlig), False, False, , dest.Range("$A$180:$I$198"), False, False, False, False, , False dest.Range("B180").FormulaR1C1 = "=Données!R[-176]C[10]" Application.Run "ATPVBAEN.XLAM!Regress", source.Range("$M$5:$M$" & dernlig), _ source.Range("$B$5:$B$" & dernlig), False, False, , dest.Range("$A$200:$I$218"), False, False, False, False, , False dest.Range("B200").FormulaR1C1 = "=Données!R[-196]C[11]" Application.Run "ATPVBAEN.XLAM!Regress", source.Range("$N$65:$N$" & dernlig), _ source.Range("$B$65:$B$" & dernlig), False, False, , dest.Range("$A$220:$I$238"), False, False, False, False, , False dest.Range("B220").FormulaR1C1 = "=Données!R[-216]C[12]" Application.Run "ATPVBAEN.XLAM!Regress", source.Range("$O$65:$O$" & dernlig), _ source.Range("$B$65:$B$" & dernlig), False, False, , dest.Range("$A$240:$I$258"), False, False, False, False, , False dest.Range("B240").FormulaR1C1 = "=Données!R[-236]C[13]" Application.Run "ATPVBAEN.XLAM!Regress", source.Range("$P$173:$P$" & dernlig), _ source.Range("$B$173:$B$" & dernlig), False, False, , dest.Range("$A$260:$I$278"), False, False, False, False, , False dest.Range("B260").FormulaR1C1 = "=Données!R[-256]C[14]" Application.Run "ATPVBAEN.XLAM!Regress", source.Range("$Q$65:$Q$" & dernlig), _ source.Range("$B$65:$B$" & dernlig), False, False, , dest.Range("$A$280:$I$298"), False, False, False, False, , False dest.Range("B280").FormulaR1C1 = "=Données!R[-276]C[15]" Application.Run "ATPVBAEN.XLAM!Regress", source.Range("$R$5:$R$" & dernlig), _ source.Range("$B$5:$B$" & dernlig), False, False, , dest.Range("$A$300:$I$318"), False, False, False, False, , False dest.Range("B300").FormulaR1C1 = "=Données!R[-296]C[16]" Application.Run "ATPVBAEN.XLAM!Regress", source.Range("$S$5:$S$" & dernlig), _ source.Range("$B$5:$B$" & dernlig), False, False, , dest.Range("$A$320:$I$338"), False, False, False, False, , False dest.Range("B320").FormulaR1C1 = "=Données!R[-316]C[17]" Application.Run "ATPVBAEN.XLAM!Regress", source.Range("$T$65:$T$" & dernlig), _ source.Range("$B$65:$B$" & dernlig), False, False, , dest.Range("$A$340:$I$358"), False, False, False, False, , False dest.Range("B340").FormulaR1C1 = "=Données!R[-336]C[18]" Application.Run "ATPVBAEN.XLAM!Regress", source.Range("$U$5:$U$" & dernlig), _ source.Range("$B$5:$B$" & dernlig), False, False, , dest.Range("$A$360:$I$378"), False, False, False, False, , False dest.Range("B360").FormulaR1C1 = "=Données!R[-356]C[19]" End Sub
cela se comporte-il comme ton code de départ?
si oui, il suffit ensuite, je pense, de modifier la ligne 8.
J'ai modifier la ligne 8 avec dernlig=Range("A" & Rows.Count).End(xlUp).Row. Mais je n'obtiens pas les résultats escomptés. et avec
With source.UsedRange
dernlig = .Rows.Count
End With
J'ai un message d'erreur...