Bonjour!
Je débute en vba, mais j'ai découvert que c'est un outil bien utile (voire parfois presque magique) pour qui sait le manier. Je me suis donc lancée dans un petit bout de code dont le but est simple : insérer une colonne nommée "seconde" (à gauche d'une colonne sélectionnée) dans laquelle j'incrémente une série de chiffres à partir de zéro. Jusque là tout va bien, et même un peu trop bien, car quand je lance ma macro excel entreprend de numéroter absolument TOUTES les lignes de ma feuille.
Autant dire que c'est long, et pas spécialement utile
Je cherche donc à préciser au programme qu'il ne doit incrémenter que tant que la cellule adjacente n'est pas vide, seulement je ne sais pas comment faire ça de façon à ce qu'il comprenne, et il continue à remplir ma feuille.
Voici le code que j'ai actuellement :
J'ai conscience qu'il n'est probablement pas optimisé et que ce n'est peut-être pas très beau, mais je souhaiterais le garder tel quel autant que possible (pour les parties qui marchent), afin de pouvoir le modifier par moi-même si besoin.
Je suppose que le soucis vient de la condition posée après "Do until" que ma macro ne doit pas comprendre. Je voudrais qu'avant de faire "case précédente +1" elle vérifie que la case à gauche de celle à remplir ne soit pas vide (dans le tableau final elle contient une heure type "09:33:52").
En bonus j'aimerais aussi assigner cette macro à une touche (F2 par exemple), mais c'est secondaire ^^
Si quelqu'un a une idée?
Je débute en vba, mais j'ai découvert que c'est un outil bien utile (voire parfois presque magique) pour qui sait le manier. Je me suis donc lancée dans un petit bout de code dont le but est simple : insérer une colonne nommée "seconde" (à gauche d'une colonne sélectionnée) dans laquelle j'incrémente une série de chiffres à partir de zéro. Jusque là tout va bien, et même un peu trop bien, car quand je lance ma macro excel entreprend de numéroter absolument TOUTES les lignes de ma feuille.
Autant dire que c'est long, et pas spécialement utile
Je cherche donc à préciser au programme qu'il ne doit incrémenter que tant que la cellule adjacente n'est pas vide, seulement je ne sais pas comment faire ça de façon à ce qu'il comprenne, et il continue à remplir ma feuille.
Voici le code que j'ai actuellement :
Code:
Sub Insertion()
'
' Insert une colonne seconde
'
Dim Lg&, cL%, i&
cL = ActiveCell.Column
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Selection.NumberFormat = "0"
ActiveCell.Offset(0, 0).FormulaR1C1 = "Seconde"
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "0"
Do Until ActiveCell(0, 1) = ""
ActiveCell.Offset(1, 0).Select
ActiveCell.Value = ActiveCell.Offset(-1, 0) + 1
Loop
End Sub
J'ai conscience qu'il n'est probablement pas optimisé et que ce n'est peut-être pas très beau, mais je souhaiterais le garder tel quel autant que possible (pour les parties qui marchent), afin de pouvoir le modifier par moi-même si besoin.
Je suppose que le soucis vient de la condition posée après "Do until" que ma macro ne doit pas comprendre. Je voudrais qu'avant de faire "case précédente +1" elle vérifie que la case à gauche de celle à remplir ne soit pas vide (dans le tableau final elle contient une heure type "09:33:52").
En bonus j'aimerais aussi assigner cette macro à une touche (F2 par exemple), mais c'est secondaire ^^
Si quelqu'un a une idée?