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

XL 2016 Set Range(Cells, Cells) ne veut pas fonctionner

Olic78124

XLDnaute Nouveau
Bonjour à toutes et à tous,

Pas de code à poster à part cette ligne Set RangeCalcul = Sheets("Mapping").Range(Cells(Valeur.Row, ColonneProjet), Cells(Valeur.Row, DernColonne)) qui ne veut rien savoir : "Erreur d'exécution 1004"

Valeur.Row, ColonneProjet et DernColonne contiennent bien les valeurs que j'attends (en l"occurrence et respectivement 2, 5 et 33) ce qui devrait donner

Set RangeCalcul = Sheets("Mapping").Range(Cells(2, 5), Cells(2, 33))

pour un équivalent

Set RangeCalcul = Sheets("Mapping").Range("E2:AG2")

Le but étant de compter et récupérer dans une variable le nombre de cellules renseignées de ce RangeCalcul via WorksheetFunction.CountA(RangeCalcul)

D'avance merci pour vos suggestions et excellente journée.
Olivier
 

patricktoulon

XLDnaute Barbatruc
bonjour
c'est normal que ça ne fonctionne pas c'est l'une des rares occasion ou vba n'est pas permissif dans le codage
Set RangeCalcul = Sheets("Mapping").Range(Cells(2, 5), Cells(2, 33))
la raison est simple
cells(2,5) ou cells(2,33) oui !!!! mais de quel feuilles?????????????????????

voila comment on réduit son écriture pour que vba identifie bien le parent des deux cells

with Sheets("Mapping"):Set RangeCalcul =.Range(.Cells(2, 5), .Cells(2, 33)):end with

en gros pour que tu comprenne bien d'ou vient le problème
voila l’écriture longue

Set RangeCalcul = Sheets("Mapping").Range( Sheets("Mapping").(2, 5), Sheets("Mapping").(2, 33))
 
Dernière édition:

Olic78124

XLDnaute Nouveau
Il me semblait tellement évident que Set RangeCalcul = Sheets("Mapping").Range(Cells(2, 5), Cells(2, 33)) faisait référence à la feuille "Mapping" pour le Range attenant, mais visiblement ce n'est pas le cas !

Merci pour cette réponse, je teste début PM et je reviens (pour râler) si ça ne fonctionne pas

Olivier
 

Olic78124

XLDnaute Nouveau
Bonjour @patricktoulon ,

Un seul mot : respect, ça fonctionne à merveille et si je retiens le truc, j'aurai vraiment appris quelque chose

With Sheets("Mapping"): Set RangeCalcul = .Range(.Cells(Valeur.Row, ColonneProjet), .Cells(Valeur.Row, DernColonne)): End With

Longue vie au forum.
Olivier
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…