XL 2019 VBA - Excel comprend un Range de B2 à EA201 comme de B2 à EA201201

CiolBel

XLDnaute Nouveau
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??

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
 
Solution
Bonjour,

L'erreur n'est-elle pas là wsCopy.Range("B2:EA201" & lCopyLastRow) ?

Ce qui fait bégayer votre 201 ...

Le code ci-dessous devrait mieux correspondre
wsCopy.Range("B2:EA" & lCopyLastRow)

Cordialement

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

L'erreur n'est-elle pas là wsCopy.Range("B2:EA201" & lCopyLastRow) ?

Ce qui fait bégayer votre 201 ...

Le code ci-dessous devrait mieux correspondre
wsCopy.Range("B2:EA" & lCopyLastRow)

Cordialement
 

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG