[EXCEL] Autosize variable dans une colonne

Fermé
Kapow - 15 juil. 2011 à 11:31
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 15 juil. 2011 à 11:50
Bonjour,

Je dois réaliser un tableur Excel durant mon stage et il faudrait qu'il soit automatisé le plus possible. Je débute dans les macro Excel donc elle ne sont pas forcement très poussées :/

La macro sur laquelle je bloque consiste en fait a insérer une colonne, y rentrer un titre, insérer une fonction dans la première cellule. Fonction que voici =(DROITE(B2;NBCAR(B2)-2) et donc comme elle utilise la colonne B, je veux qu'elle s'arrête sur la même ligne que la colonne B.

Et donc j'obtiens ceci :

Range("A1").Select
Selection.EntireColumn.Insert
ActiveCell.FormulaR1C1 = "NoFactureRetraité"
Range("A2").Select
ActiveSheet.Paste
Range("A2").Select
ActiveCell.FormulaR1C1 = "=(RIGHT(RC[1],LEN(RC[1])-2))"
Range("A2").Select
Selection.AutoFill Destination:=Range("A2:A1546")
Range("A2:A1546").Select
End Sub


Le problème c'est que le nombre de ligne peut varier et donc le A1546 n'est pas adapté a ce que je veux faire.

Si vous pouviez m'aider la dessus svp, ca me sauverait mon tableau qui va beaucoup fonctionner sur ce principe d'étendre une rechercheV ou autre formule, au même niveau que la ligne dans laquelle le critère est écrit. ^^


Bonne journée
A voir également:

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
15 juil. 2011 à 11:50
Bonjour,

ci joint macro VBA
Option Explicit
Sub xxx()
Dim derlig As Long

' fige le défilement de l'écran
Application.ScreenUpdating = False
'insère une colonne avant col "B" et y inscrit l'entête
With Range("A1")
     .EntireColumn.Insert
     .Value = "NoFactureRetraité"
End With
'denière ligne utilisée colonne B
derlig = Cells(Cells.Rows.Count, "B").End(xlUp).Row
'inscrit la formule
Range("A2:A" & derlig).FormulaR1C1 = "=(RIGHT(RC[1],LEN(RC[1])-2))"

End Sub


bon stage
0