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
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
Bonjour à tous,
Pourtant ils le savent qu'on code bourrés.
Rien contre toi djidji, on a tous démarré. C'est la remarque de mapomme qui m'a fait penser à Coluche.
eric
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
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 )