Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Comment mettre en forme la numérotation automatique jusqu'à la derniére cellule.

nicolasvb

XLDnaute Nouveau
J'ai un tableau de données et je voudrais permettre à l'utilisateur de sélectionner la cellule où commencer la numérotation et la colonne à prendre en compte.
J'utilise la methode inputbox pour obtenir les deux range choisis par l'utilisateur.

C'est pour avoir la numérotation automatique jusqu'à la dernière cellule non vide de la colonne à prendre en compte que je bloque.
Voici le code que j'ai essayé sans succès jusqu'à maintenant:
Code:
Private Sub Numauto()
Dim CelSel As Variant
Dim Colréf As Variant
Set CelSel = Application.InputBox("Veuillez sélectionner la cellule où commencer la numérotation", Type:=8) ' obtention du range de la cellule de départ de la numérotation
Set Colréf = Application.InputBox("Veuillez Sélectionner une cellule de la colonne de référence", Type:=8) ' la colonne de référence est la colonne qui déterminera la fin de la numérotation
i = CelSel.Row
j = CelSel.Column
k = Colréf.Column
Cells(i, j).Value = 1
'Range(Cells(i,j),Cells(Cells(Rows.Count, k).End(xlUp).row,k).Formulalocal = "=CelSel+1"  ' c'est là que je m'embrouille complétement!
End Sub

En vous remerciant par avance de vos suggestions.
Nicolasvb
 

Pièces jointes

  • numauto.xls
    33.5 KB · Affichages: 125
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Comment mettre en forme la numérotation automatique jusqu'à la derniére cellule.

Bonjour.
Comme ça, me parait rendre le résultat souhaité :
VB:
Sub Numauto()
Dim CelSel As Range
Dim ColRéf As Range
Set CelSel = Application.InputBox("Veuillez sélectionner la cellule où commencer la numérotation", Type:=8) ' obtention du range de la cellule de départ de la numérotation
Set ColRéf = Application.InputBox("Veuillez Sélectionner une cellule de la colonne de référence", Type:=8) ' la colonne de référence est la colonne qui déterminera la fin de la numérotation
Set ColRéf = ColRéf.End(xlDown)
CelSel.Resize(ColRéf.Row - CelSel.Row + 1).FormulaLocal = "=LIGNE()-" & CelSel.Row - 1
End Sub
À +
 

Philippe68

XLDnaute Occasionnel
Re : Comment mettre en forme la numérotation automatique jusqu'à la derniére cellule.

Bonjour à tous,

Afin de comprendre ton code Dranreb, à quel moment peux-t'on l'utiliser et qu'entend-t'on par "colonne de réfèrence" ?

Peux-t'on avoir la colonne de numérotation et de référence dans la même colonne ? (selectionner la même cellule quoi)
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Comment mettre en forme la numérotation automatique jusqu'à la derniére cellule.

Bonjour.
et qu'entend-t'on par "colonne de réfèrence" ?
J'ai considéré que le demandeur entendait par colonne de référence celle dans laquelle on cherche une dernière cellule renseignée à partir de celle indiquée, à la même ligne que laquelle la numérotation doit se terminer.
Peux-t'on avoir la colonne de numérotation et de référence dans la même colonne ? (selectionner la même cellule quoi)
Uniquement pour refaire une numérotation existante devenue fausse je suppose: Sur une colonne contenant d'autres données ça les écraserait par la numérotation, et sur une vide ça ne marcherait pas.
Cordialement
 

ROGER2327

XLDnaute Barbatruc
Re : Comment mettre en forme la numérotation automatique jusqu'à la derniére cellule.

Bonsoir à tous


Une proposition :
VB:
Sub Numauto1()
Dim CelSel As Variant
Dim Colréf As Variant
Dim i&, j&, k&
    Set CelSel = Application.InputBox("Veuillez sélectionner la cellule où commencer la numérotation", Type:=8) ' cellule de départ de la numérotation
    Set Colréf = Application.InputBox("Veuillez Sélectionner une cellule de la colonne de référence", Type:=8)  ' la colonne de référence est la colonne dont la ligne de la dernière cellule non vide déterminera la fin de la numérotation
    i = CelSel.Row
    j = CelSel.Column
    k = Cells(Rows.Count, Colréf.Column).End(xlUp).Row
    If k >= i Then Cells(i, j).Value = 1
    If k > i Then Range(Cells(i + 1, j), Cells(k, j)).FormulaLocal = "=" & CelSel.Address(0, 0) & "+1"
End Sub


ROGER2327
#5400


Mercredi 25 Décervelage 139 (Saint Petiot, expert - fête Suprême Quarte)
2 Pluviôse An CCXX, 7,3071h - mousse
2012-W03-7T17:32:13Z
 

ROGER2327

XLDnaute Barbatruc
Re : Comment mettre en forme la numérotation automatique jusqu'à la derniére cellule.

...


Et une autre évitant de surcharger la feuille de formules :
VB:
Sub Numauto2()
Dim CelSel As Variant
Dim Colréf As Variant
Dim i&, j&, k&, l&, a&()
    Set CelSel = Application.InputBox("Veuillez sélectionner la cellule où commencer la numérotation", Type:=8) ' cellule de départ de la numérotation.
    Set Colréf = Application.InputBox("Veuillez Sélectionner une cellule de la colonne de référence", Type:=8)  ' la colonne de référence est la colonne dont la ligne de la dernière cellule non vide déterminera la fin de la numérotation.
    i = CelSel.Row
    j = CelSel.Column
    k = Cells(Rows.Count, Colréf.Column).End(xlUp).Row
    If k >= i Then
        ReDim a&(1 To 1 + k - i, 0)
        For l = 1 To 1 + k - i: a(l, 0) = l: Next
        Range(Cells(i, j), Cells(k, j)).Value = a
    End If
End Sub


ROGER2327
#5401


Mercredi 25 Décervelage 139 (Saint Petiot, expert - fête Suprême Quarte)
2 Pluviôse An CCXX, 7,3288h - mousse
2012-W03-7T17:35:21Z
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…