XL 2013 VBA modifier feuille différente

kenzo1245

XLDnaute Nouveau
Bonjour,

le code suivant fonctionne si je suis sur la bonne feuille mais pas quand je change:

Code:
Sheets("montage").Range(Cells(Cells(Rows.Count, 8).End(xlUp).Offset(1).Row, 8), Cells(Cells(Rows.Count, 8).End(xlUp).Offset(1).Row + UBound(listMontage), 8)).Value = listMontage

C'est pour mettre l'array (listMontage) sur la feuille ("montage").
Je ne sais pas pourquoi ça ne fonctionne pas depuis une autre feuille.
Merci d'avance pour vos réponse.

Bonne journée!
 

Paf

XLDnaute Barbatruc
Re : VBA modifier feuille différente

Bonjour kenzo1245, jpb388

Range et Cells se rapporte toujours à la feuille active si on ne leur indique pas explicitement la feuille de 'travail'

dans votre code le premier Range est bien référencé à la feuille montage, mais tous le reste se rapporte à la feuille active.

il aurait fallu en gardant votre code, en utilisant With Sheets("montage") pour simplifier l'écriture:
Code:
With Sheets("montage")
.Range(.Cells(.Cells(.Rows.Count, 8).End(xlUp).Offset(1).Row, 8), .Cells(.Cells(.Rows.Count, 8).End(xlUp).Offset(1).Row + UBound(listMontage), 8)).Value = listMontage
End With
Attention à ne pas oublier le . (point) devant tout ce qui est lié à la feuille définie dans With Worksheets(...


on aurait pu simplifier en utilisant Resize :
Code:
With Sheets("montage")
.Range("H" & .Range("H" & .Rows.Count).End(xlUp).Row + 1).Resize(UBound(listMontage), 1) = listMontage
End With

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 216
Messages
2 086 351
Membres
103 195
dernier inscrit
martel.jg