Bonjour à tous, j'ai une macro qui fonctionne parfaitement sur un petit échantillon et qui devient un peu débile quand je l'étends à la taille de mon projet.
En gros elle ouvre un classeur, copie le range B2:EA201 vers une Feuil1 d'un autre classeur, copie cette Feuil1 vers une Feuil2 renommée et nettoie Feuil1 pour pouvoir la réutiliser.
Pour une raison qui m'échappe, demander de copier de B2 à EA201 rend Excel (ou moi! ) un peu bête et il copie de B2 à EA201201 pour une raison qui m'échappe totalement.
Utiliser ctrl+Fin m'emmène en EA201201 qui est complètement vide sur Feuil1 comme Feuil2 de destination, je comprends pas du tout ce qu'il se passe, je me dis que je ne connais peut-être pas la bonne notation pour des colonnes à deux lettres? C'est la première fois que j'en utilise... Et puis pourquoi que les lignes et pas les colonnes??
En gros elle ouvre un classeur, copie le range B2:EA201 vers une Feuil1 d'un autre classeur, copie cette Feuil1 vers une Feuil2 renommée et nettoie Feuil1 pour pouvoir la réutiliser.
Pour une raison qui m'échappe, demander de copier de B2 à EA201 rend Excel (ou moi! ) un peu bête et il copie de B2 à EA201201 pour une raison qui m'échappe totalement.
Utiliser ctrl+Fin m'emmène en EA201201 qui est complètement vide sur Feuil1 comme Feuil2 de destination, je comprends pas du tout ce qu'il se passe, je me dis que je ne connais peut-être pas la bonne notation pour des colonnes à deux lettres? C'est la première fois que j'en utilise... Et puis pourquoi que les lignes et pas les colonnes??
VB:
Workbooks.Open fileName:="C:\FilePath\ClasseurX.xlsm"
Application.Wait (Now + TimeValue("0:00:05"))
Dim wsCopy As Worksheet
Dim wsDest As Worksheet
Dim lCopyLastRow As Long
Dim lDestLastRow As Long
Set wsCopy = Workbooks("ClasseurX.xlsm").Worksheets("Synthèse")
Set wsDest = Workbooks("ClasseurPrimaire.xlsm").Worksheets("Feuil1")
lCopyLastRow = wsCopy.Cells(wsCopy.Rows.Count, "B").End(xlUp).Row
lDestLastRow = wsDest.Cells(wsDest.Rows.Count, "B").End(xlUp).Offset(1).Row
wsCopy.Range("B2:EA201" & lCopyLastRow).Copy _
wsDest.Range("B" & lDestLastRow)
Workbooks("ClasseurX.xlsm").Close SaveChanges:=False
ThisWorkbook.Activate
Dim WSCount As Long
WSCount = Worksheets.Count
'
ActiveWorkbook.Sheets("Feuil1").Copy _
After:=ActiveWorkbook.Sheets(WSCount)
Sheets("Feuil1 (2)").Name = "NewSheet" & WSCount + 1
ActiveWorkbook.Sheets("Feuil1").Activate
Range("B2:EA201").Clear
End Sub