Multiple regression avec des séries non fixes

Résolu
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:
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!

1 réponse

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonsoir, prenons d'abord le temps d'optimiser ton code de départ, il sera ensuite plus facile de le généraliser.
    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.
    0
    1. vbondoma
       
      Bonjour, le code que tu proposes se comporte en effet comme mon code de départ.

      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...
      0
    2. vbondoma
       
      J'ai essayer avec dernlig = source.Range("C" & Rows.Count).End(xlUp).Row et là ça marche beaucoup mieux. Merci encore pour votre réponse qui m'a conduit vers cette solution!
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > vbondoma
         
        plus prudent:
        dernlig = source.Range("C" & source.Rows.Count).End(xlUp).Row
        0
      2. vbondoma > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Merci!
        0