TooFatBoy
XLDnaute Barbatruc
Bonjour,
Dans différentes macros de différents classeurs, j'ai un problème d'utilisation de Range avec des Cells.
Parfois la macro se déroule sans problème. Mais parfois la même macro plante.
Dans la dernière macro en date qui me pose souci, je tente de faire une copie d'une suite horizontale de 31 cellules d'une feuille "A1" d'un classeur "A", vers une suite horizontale de 31 cellules d'une feuille "B1" d'un classeur "B".
Le but est de copier une ligne de planning, d'un classeur vers un autre classeur.
la ligne qui plante est la suivante :
shSource.Range(Cells(LigEnCoursSource, ColNomsSource + 1), Cells(LigEnCoursSource, ColNomsSource + 31)).Copy shDest.Range(Cells(LigEnCoursDest, ColNomsDest + 1), Cells(LigEnCoursDest, ColNomsDest + 31))
j'ai aussi tenté :
shSource.Range(shSource.Cells(LigEnCoursSource, ColNomsSource + 1), shSource.Cells(LigEnCoursSource, ColNomsSource + 31)).Copy shDest.Range(shDest.Cells(LigEnCoursDest, ColNomsDest + 1), shDest.Cells(LigEnCoursDest, ColNomsDest + 31))
L'idéal serait de pouvoir faire la copie sans sélectionner le classeur "A" puis sa feuille "A1" pour faire le copier, puis sélectionner le classeur "B" puis sa feuille "B1" pour faire le coller, car (si je ne me trompe) ça fait perdre beaucoup de temps même avec le ScreenUpdating mis à FALSE.
Remarque :
shDest (le sheet de destination) est initialisé avec un "Set" : Set shDest = ThisWorkbook.Sheets(MoisAImporter)
Même principe pour le sheet source.
Dans différentes macros de différents classeurs, j'ai un problème d'utilisation de Range avec des Cells.
Parfois la macro se déroule sans problème. Mais parfois la même macro plante.
Dans la dernière macro en date qui me pose souci, je tente de faire une copie d'une suite horizontale de 31 cellules d'une feuille "A1" d'un classeur "A", vers une suite horizontale de 31 cellules d'une feuille "B1" d'un classeur "B".
Le but est de copier une ligne de planning, d'un classeur vers un autre classeur.
la ligne qui plante est la suivante :
shSource.Range(Cells(LigEnCoursSource, ColNomsSource + 1), Cells(LigEnCoursSource, ColNomsSource + 31)).Copy shDest.Range(Cells(LigEnCoursDest, ColNomsDest + 1), Cells(LigEnCoursDest, ColNomsDest + 31))
j'ai aussi tenté :
shSource.Range(shSource.Cells(LigEnCoursSource, ColNomsSource + 1), shSource.Cells(LigEnCoursSource, ColNomsSource + 31)).Copy shDest.Range(shDest.Cells(LigEnCoursDest, ColNomsDest + 1), shDest.Cells(LigEnCoursDest, ColNomsDest + 31))
L'idéal serait de pouvoir faire la copie sans sélectionner le classeur "A" puis sa feuille "A1" pour faire le copier, puis sélectionner le classeur "B" puis sa feuille "B1" pour faire le coller, car (si je ne me trompe) ça fait perdre beaucoup de temps même avec le ScreenUpdating mis à FALSE.
Remarque :
shDest (le sheet de destination) est initialisé avec un "Set" : Set shDest = ThisWorkbook.Sheets(MoisAImporter)
Même principe pour le sheet source.