Numérotation de lignes

MaD_021 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
LePierre Messages postés 249 Statut Membre -
Bonjour,

J'ai un problème concernant une macro sur Excel 2003 sur laquelle je travaille et j'aimerais avoir de l'aide de quelqu'un de plus doué que moi dans ce domaine.

Je veux énumérer les lignes des tableaux que j'exporte d'un autre programme. Le nombre de lignes changent dependamment du tableau. Mon programme fait le tableau et tout, mais il faut que j'aie un nombre de lignes fixes. or, je n'ai jamais de nombres fixe.

Voici la partie du programme dont je vous parle qui me cause des ennuis.

"For i = 1 To NumRows
Range("A2").Select
ActiveCell.FormulaR1C1 = "1"
ActiveCell.FormulaR1C1 = "=R[-1]C+1"
Range("A3", Range("A3").End(xlDown)).Select
Selection.AutoFill Destination:=Range("A3", Range("A3").End(xlDown)), Type:=xlFillDefault
Range("A3", Range("A3").End(xlDown)).Select

Exit For
Next i"

Au moment du autofill, il y a erreur. je ne sais pas si j'ai ete tres clair, mais bon.

Merci d'avance pour votre aide

4 réponses

LePierre Messages postés 249 Statut Membre 338
 
Bonjour

Voici une petite procédure qui fonctionne pour dupliquer la formule en A3 de la ligne 3 à la ligne 16 :
Sub test()
    numRows = 16
    For i = 2 To numRows
        Range("A" & i).FormulaR1C1 = "1"
    Next i
    Range("A3").FormulaR1C1 = "=R[-1]C+1"
    Range("A3").AutoFill Destination:=Range("A3:A" & Range("A3").End(xlDown).Row), Type:=xlFillDefault
End Sub
Voici une autre forme si l'on connait le N° de la dernière ligne à atteindre :
Sub test2()
    numRows = 16
    Range("A2").FormulaR1C1 = "1"
    Range("A3").FormulaR1C1 = "=R[-1]C+1"
    Range("A3").AutoFill Destination:=Range("A3:A" & numRows), Type:=xlFillDefault
End Sub
à plus
0
MaD_021 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Hahaha! Ca fonctionne a merveille!! Merci LePierre! Bon sang, je commence a prendre gout a la Prog avec VBA, haha!
0
MaD_021 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Ok, en voici une autre. Là, j'aimerais que mon tableau se fasse en fonction de tout ca

Voici une partie de mon programme

" Range("A1:P195").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With"

A la place d'avoir P195, j'aimerais avoir toutes les cellules du tableau. J'avais 195 car j'avais ete oblige de donner un range, mais dependant du tableau que j'exporte, je peux me rendre autant a 211 qu'à 61. Quel serait le range qui s'ajusterait automatiquement a ca?

Merci encore!
0
LePierre Messages postés 249 Statut Membre 338
 
Bonjour

Remplace ta ligne :
Range("A1:P195").Select 
par :
Range("A1:P" & Range("A1").End(xlDown).Row).Select
à plus
0