Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Intégrégation dans un With d'une plage avec cells

  • Initiateur de la discussion Initiateur de la discussion balez
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

balez

XLDnaute Nouveau
Bonjour,


J'essaye d'intégrer cette ligne

With ActiveSheet.Range(Cells(xRow, 2), Cells(xRow, 9))

VBA me retourne l'erreur 1004, même avec une valeur à la place de 'xrow'

J'ai réussi à le faire tourner dans un module, mais impossible dans une feuille.

Ou se trouve l'erreur de programmation?

Je joint un fichier test.

Merci à tous,

Chris
 

Pièces jointes

Solution
Bonjour,
Le code est dans la feuille D
Set wsp = ThisWorkbook.Worksheets("P")
Set wsd = ThisWorkbook.Worksheets("D")

remplacez :
With wsp.Range(Cells(xRow, 2), Cells(xRow, 9))​
par
With wsp.Range(wsp.Cells(xRow, 2), wsp.Cells(xRow, 9))​
Ou
with wsp.Rows(xrow).Columns("B:I")​
Bonjour,
Le code est dans la feuille D
Set wsp = ThisWorkbook.Worksheets("P")
Set wsd = ThisWorkbook.Worksheets("D")

remplacez :
With wsp.Range(Cells(xRow, 2), Cells(xRow, 9))​
par
With wsp.Range(wsp.Cells(xRow, 2), wsp.Cells(xRow, 9))​
Ou
with wsp.Rows(xrow).Columns("B:I")​
 
Dernière édition:
Bonjour à tous.
Question quand j'écris : wsp.Range("B2:B10") je ne précise pas le nom de la feuille...Pourquoi tant de haine???

J'étais en train de plancher dessus mais vous avez été plus rapide et plus efficace ...
 
Bonjour à tous,

Merci à tous pour vos réponses rapides. Effectivement, une astuce à connaître que je n'avais pas réussi à ressortir de mes différentes recherches.
Comme tbft, je reste sur ma faim d'explication, d'autant plus que dans un module en déterminant wsp comme feuille active et
With ActiveSheet.Range(Cells(xRow, 2), Cells(xRow, 9)), cela fonctionne !!!!

Bonne journée,
 
Bonjour le fil

Personnellement, je préfère la seconde syntaxe 😉
(parce qu'un peu plus courte à saisir dans VBE)
VB:
Sub test()
Dim xRow&
xRow = 3
With ActiveSheet
MsgBox Range(.Cells(xRow, 2), .Cells(xRow, 9)).Address
End With
With ActiveSheet.Cells(xRow, 2).Resize(, 8)
MsgBox .Address
End With
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
16
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…