Après moult aventures dans le royaume de la programmation vba en tant que jeune écuyère, je bloque à nouveau sur un problème qui peut sembler parfaitement anodin : copier une stupide ligne de la feuille A sur une stupide ligne de la feuille B.
Pour vous expliquer un peu le bazar :
- L'objectif de base est de compléter la ligne de la feuille B avec les intitulés de la feuille A
- Sur les 2 feuilles, la longueur de la ligne des intitulés est variable
- C'est pour cela que je calcule quelle est la dernière cellule de chaque ligne, ce qui me permet de connaitre la longueur de la ligne de A et de B
Maintenant, voilà le code :
Sub CopierLigneTitre()
Dim derniereCelA As Integer
Dim derniereCelB As Integer
Set C = ThisWorkbook
derniereCelA = Worksheets(3).Cells(1, Cells.Columns.Count).End(xlToLeft).Column 'derniere cellule de A
MsgBox derniereCelA
derniereCelB = Worksheets(4).Cells(1, Cells.Columns.Count).End(xlToLeft).Column 'derniere cellule de B
MsgBox derniereCelB
derniereCelB = derniereCelB + 1 'ajout de 1 pour que la copie se fasse sur la cellule après la dernière de B
MsgBox derniereCelB
'-- Copie de la ligne d'intitulé de A
Worksheets(3).Activate
Range(Cells(1, 2), Cells(1, derniereCelA)).Copy
'-- Coller dans B après les cellules d'intitulées dèjà remplie
Worksheets(4).Activate
Range(Cells(1, derniereCelB), Cells(1, derniereCelB - 1 + derniereCelA - 1)).Paste '--- NOPE :( -- erreur 438
End Sub
Alors tout marche bien jusqu'à la copie de A. Par contre ça ne veut pas du tout me coller la ligne dans B. Je me retrouve avec une jolie erreur 438 (et des fois 1004 si j'enlève "Worksheets(4).Activate"). Je ne sais vraiment plus quoi faire.
J'espère avoir été claire dans mes explications, je fais maintenant appel à vous âmes charitables :)