syntaxe de RANGE avec variable

infam29

XLDnaute Nouveau
Bjour à toutes et à tous ,
Marre de chercher vainement sur le site une solution à un problème sans doute simple (sauf pour moi):
Dans une macro j'ai cette ligne qui plante:

derlig = Range("D" & A5).End(xlUp).Row

"A5" est une cellule qui contient le nombre 300 représentant le nombre de lignes maximum d'une feuille de calcul.

Si j'écris

derlig = Range("D300").End(xlUp).Row

cela fonctionne et la variable "derlig" est bien initialisée avec le numéro de la dernière ligne écrite de la colonne D
Mais le nombre 300 (cellule A5) peut être augmenté par l'utilisateur.
Où est mon erreur de syntaxe ????
Merci de me dépanner
 

infam29

XLDnaute Nouveau
Re : syntaxe de RANGE avec variable

merci Pierrot93 mais ta réponse n'est pas tout à fait ce que j'espère.
Ta proposition:
Dim derlig As Long
derlig = Range("D65536").End(xlUp).Row

renvoie bien la dernière ligne écrite mais pourquoi parcourir 65536 lignes quand la feuille ne travaille que sur 300 lignes.
D'où mon désir de pointer la cellule A5 et le nombre 300 qu'elle contient.
Quant à ta 2° proposition elle renvoie "300" (nombre contenu dans A5) ce qui n'est pas la dernière ligne servie de la colonne D.
 

Pierrot93

XLDnaute Barbatruc
Re : syntaxe de RANGE avec variable

Re,

regarde le post de 17h17... A noter que le code proposé ne "parcourt" pas les 65536 lignes... et cette syntaxe est couramment employé pour déterminer la dernière ligne d'une colonne...
 
Dernière édition:

infam29

XLDnaute Nouveau
Re : syntaxe de RANGE avec variable

A Pierrot93, ton post de 17h17 ne me fournit que la valeur contenue dans A5 (300) et non la dernière ligne écrite en colonne D.
Je comprends bien que 65536 lignes ça va vite mais j'ai de toute façon besoin d'inclure dans un RANGE(...) une construction de variable à partir d'une lettre de colonne (D dans mon cas) et d'un nombre aléatoire contenu dans une cellule déterminée.
Désolé d'insister et merci de ton malaxage de cerveau
 

infam29

XLDnaute Nouveau
Re : syntaxe de RANGE avec variable

Je précise : j'ai besoin de sélectionner une plage de cellules par exemple de D108 à E123 mais 108 et 123 changent en fonction du nombre de lignes écrites en colonne D.
C'est à dire que cette plage sélectionnée doit toujours se situer après la dernière ligne écrite en D.
Je ne peux même pas joindre un fichier puisque rien ne fonctionne comme je le souhaite.
A vous lire !!!
 

infam29

XLDnaute Nouveau
Re : syntaxe de RANGE avec variable

"A5" est une cellule qui contient le nombre 300 représentant le nombre de lignes maximum d'une feuille de calcul mais qui est susceptible de varier selon le désir de l'utilisateur.
Range("D" & derlig).Select
oui mais je n'ai pas calculé "derlig" !!!
 

infam29

XLDnaute Nouveau
Re : syntaxe de RANGE avec variable

Cela fonctionne bien sûr mais A6 n'est pas renseigné: sa valeur est justement celle que je cherche avec "derlig".
"Derlig" doit contenir le numéro de la dernière ligne écrite en colonne D, d'où l'utilisation de la formule
Range("D" & A5).End(xlUp).Row
mais qui plante ("D" & A5) n'étant pas la bonne syntaxe
 

Si...

XLDnaute Barbatruc
Re : syntaxe de RANGE avec variable

bonjour

Demande toi ce que représente A5 pour la macro, à priori une variable et non pas le contenu de A5. Essaie :
Code:
derlig = Range("D" & [B][A5][/B]).End(xlUp).Row

Tu peux aussi te demander ce qui se passe avec la macro :
Code:
Sub va()
  Columns(4).Clear
  [D1:D400] = "A": [A5] = 300
  MsgBox Range("D" & [A5]).End(xlUp).Row
  [D200:D301] = ""
  MsgBox Range("D" & [A5]).End(xlUp).Row
  MsgBox Range("D" & 400).End(xlUp).Row
  MsgBox Range("D" & 500).End(xlUp).Row
End Sub
 

infam29

XLDnaute Nouveau
Re : syntaxe de RANGE avec variable

Grand merci à Pierrot93 et à Si...
En combinant vos réponses j'ai compris comment construire sans truelle (RAL équivalent de l'ignoble LOL pour Rire Aux Larmes)
J'ignorais qu'il fallait encadrer de [ ] le nom de la cellule pour en faire une variable et non un contenu.
Encore merci et un petit air iodé de Bretagne où, comme d'habitude ,il fait grand soleil (vérité aussi absolue que les crochets)
Sujet clos
 

Discussions similaires

Réponses
7
Affichages
321
Réponses
12
Affichages
247
Réponses
4
Affichages
530

Statistiques des forums

Discussions
312 195
Messages
2 086 082
Membres
103 112
dernier inscrit
cuq-laet