[Excel]Avoir un Range() à fin variable

Marco-X -  
Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Dans l'idée je remplace toute les cases vides d'une colonne par une formule, ça marche bien en sois mais j'aimerais que cela s'arrete au bas du tableau (un total) peu importe le nombre de lignes rajoutées (Les users auront le droit d'en rajouter à volonter)
Un bout de code est plus explicite :

Private Sub Worksheet_Change(ByVal Target As Range)
 
Dim Fin As Range
Dim CaseFin As String
Dim LigneFin As Integer 'Aucune idée du type à adopter
'LigneFin = ?? là je bloque !
CaseFinH = "H" & LigneFin

Set Fin = Sheets("HEURES").Range("H10:" & CaseFinH)
For Each macell In Range("Fin")
   If macell = "" Then
        macell.Formula = "=+R[0]C[-1]*R[0]C[-2]-R[0]C[-3]"
   End If
Next
End Sub

Je ne sais pas de quel type doit etre LigneFin, ni comment definir sa valeur par la denière ligne remplie de la feuille.
Et bien sur il ya peut être des erreurs dans mon code à vous de me dire.
Ca doit être tout simple mais ça ne marche pas :/

En espérant avoir de vos nouvelles.

Marc
A voir également:

1 réponse

Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   309
 
Bonjour,
si tu n'as pas de ligne vide dans ton tableau (si les données sont saisies sans sauter de ligne), alors tu peux utiliser la propriété end :

dim LigneFin as Long
LigneFin = range("A1").end(xldown).row

ou bien, en partant de la fin :
LigneFin = range("A65536").end(xlup).row

I.
0