XL 2016 VBA syntaxe Range

Remteyss

XLDnaute Junior
Bonjour le forum,

J'aurais besoin d'un petit coup de pouce concernant une syntaxe d'un range.
Initialement mon code était :
With mafeuille
LastRow_new = .Range("H" & Rows.Count).End(xlUp).Row
End With

J'adapte mon code pour qu'il détermine automatiquement la colonne H
Ainsi, la valeur chiffrée de la colonne est contenue dans ma variable integer num_colonne (elle vaut donc 8 ici)

Comment adapter le code ci-dessus en utilisant ma variable ?

J'ai essayé ceci mais ça ne fonctionne pas :

With mafeuille
LastRow_new = .Range(num_colonne & Rows.Count).End(xlUp).Row
End with

En vous remerciant !

Remteyss
 
Solution
Re

Donc en partant de l'autre fil
VB:
Sub test()
Dim mafeuille As Worksheet, col&
Set mafeuille = ActiveSheet
With mafeuille
    col = Range("H1").Column
    LastRow_new = .Cells(Rows.Count, col).End(xlUp).Row
    MsgBox LastRow_new
    col = 8
LastRow_new = .Cells(Rows.Count, col).End(xlUp).Row
MsgBox LastRow_new
End With
End Sub

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Pas très clair tout ça mais essayez :
LastRow_new = .Range(Rows.Count, num_colonne).End(xlUp).Row
qui vous donnera la dernière ligne occupée de la colonne représentée par num_colonne.

cordialement
 

patricktoulon

XLDnaute Barbatruc
Bonjour,

Pas très clair tout ça mais essayez :
LastRow_new = .Range(Rows.Count, num_colonne).End(xlUp).Row
qui vous donnera la dernière ligne occupée de la colonne représentée par num_colonne.

cordialement
Bonjour le fil
@Roblochon
.range(numerique,numerique) heu..... tu es sur ?

ça serait pas plutôt
.cells(rows.count,8).end(xlup).row
ou bien encore
.cells(rows.count,"H").end(xlup).row
;)
 

Remteyss

XLDnaute Junior
Bonjour Staple1600, bonjour Reblochon

Je te remercie Staple, je ne suis pas encore sénile et me souviens en effet de mes précédents topics...
La réponse apportée par Reblochon (merci à toi ;)) revient à la réponse que tu m'avais apporté sur mon post de la semaine dernière, nous sommes d'accord ;)
Je l'avais en effet testée mais elle ne fonctionne pas non plus, une erreur me disant que la méthode range avec l'objet Worksheet a échouée.

Je pensais pouvoir contourner cette erreur mais je vais devoir la corriger ! J'ai lu de nombreux topics à ce sujet, conseillant notamment d'utiliser le .Activate (à éviter dans l'absolu apparement) ou sinon d'utiliser justement les With.
"With mafeuille" m'a en effet permis de corriger plusieurs fois cette erreur mais la voila de nouveau :confused:
 

Staple1600

XLDnaute Barbatruc
Re

Donc en partant de l'autre fil
VB:
Sub test()
Dim mafeuille As Worksheet, col&
Set mafeuille = ActiveSheet
With mafeuille
    col = Range("H1").Column
    LastRow_new = .Cells(Rows.Count, col).End(xlUp).Row
    MsgBox LastRow_new
    col = 8
LastRow_new = .Cells(Rows.Count, col).End(xlUp).Row
MsgBox LastRow_new
End With
End Sub
 

Remteyss

XLDnaute Junior
Re bonjour à tous,

Merci pour votre réactivité ! En effet, j'avais moi même utilisé le .Range(x,y) et donc mal adapté la réponse que tu m'avais apporté sur le précédent fil @Staple1600
Je m'excuse donc pour ce topic qui n'était finalement, je vous l'accorde, pas nécessaire...

Bonne journée le forum
 

Statistiques des forums

Discussions
311 711
Messages
2 081 794
Membres
101 817
dernier inscrit
carvajal