XL 2016 VBA syntaxe Range

  • Initiateur de la discussion Initiateur de la discussion Remteyss
  • 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 !

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
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,

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
😉
 
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 😕
 
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
 
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
 
- 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
5
Affichages
707
Réponses
4
Affichages
581
Réponses
4
Affichages
671
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
8
Affichages
530
Retour