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

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 520
dernier inscrit
Azise