Pourquoi ça ne marche pas ?

djidji59430

XLDnaute Barbatruc
Bonjour,
je m'essaye au vba

Sub essai()
Dim col As Integer
Dim maplage As Range
col = 2
Sheets("03").Activate
lgn = Sheets("03").Range(Cells(col, Rows.Count)).End(xlUp)(2).Row-1


Si je mets lgn = Sheets("03").Range("b" & Rows.Count).End(xlUp)(2).Row - 1, ça fonctionne
je n'arrive pas a paramétrer

merci
 

Staple1600

XLDnaute Barbatruc
Bonsoir

Tu as inversé ligne et colonne.
la syntaxe correcte est
Cells(ligne, colonne)

Ta macro ainsi corrigée fonctionne ;)
Code:
Sub essai()
Dim col As Long, lgn As Long
Dim maplage As Range
col = 2
Sheets("03").Activate
lgn = Sheets("03").Cells(Rows.Count, col).End(xlUp)(2).Row - 1
'pour test
MsgBox lgn
End Sub
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir @djidji59430 :), @Staple1600 ;),

Je suis troublé par l'écriture Sheets("03").Cells(Rows.Count, col).End(xlUp)(2).Row - 1
Et plus particulièrement par la fin: (2).Row - 1

En effet quand on a un range x, x(2) revient à considérer la cellule située sous la première cellule de la plage x
En prendre le numéro de ligne puis lui soustraire 1, revient à trouver la ligne de x
donc pour moi, il faut simplement écrire: Sheets("03").Cells(Rows.Count, col).End(xlUp).Row
 

Pièces jointes

  • test- avec ou sans (2)- v1.xlsm
    18.2 KB · Affichages: 5
Dernière édition:

djidji59430

XLDnaute Barbatruc
Bonjour,
Je suis troublé par l'écriture Sheets("03").Cells(Rows.Count, col).End(xlUp)(2).Row - 1
Et plus particulièrement par la fin: (2).Row - 1
C'est pratiquement la premiere fois que je me lance dans le vba et ma formule je l'ai pompée quelque part, et comme elle fonctionne parfaitement dans son fichier, je ne me suis pas posé de question quant au (2).
Et je comprends maintenant pourquoi j'ai du retirer 1 pour pouvoir copier en dessous apres
Merci pour cette leçon


Crdlmt
 

Staple1600

XLDnaute Barbatruc
Bonsoir à tous

Merci au VBAddictologues émérites qui peuplent ce fil de confirmer ce que je disais dans le message#2 au niveau syntaxique ;)
Car d'habitude quand on lit col dans VBE on pense colonne
Et si on veut penser ligne alors on écrit lig

Je plussoie à ce qu'à dit mapomme
djidji59430: Bienvenue dans le VBA, mais le VBA n'est le bienvenu que lorsque la Sainte Trinité d'Excel a atteint ses limites ;)

PS: Chez moi, la Sainte Trinité, c'est : les formules, les filtres, les TCD, et tout ce qu'on peut faire avec le ruban
(Merde!
Du coup, ils sont quatre au lieu de trois ;))
 

Discussions similaires