VBA Autofill avec Range activeCell

Bonjour

Ceci est mon premier post et je débute.

Je souhaite nettoyer certaines colonnes de mon fichier où l'import à supprimer un premier 0 dans certaine colonne.

J'ai ma formule qui fonctionne, j'ai crée (comme j'ai pu) une inputbox pour sélectionner ma colonne à nettoyer.

Je réussis à mettre ma formule de nettoyage dans ma nouvelle colonne.

Mais je ne parviens pas étendre ma formule sur toutes les lignes jusqu'à la dernière remplie.

J'ai fouillé dans le forum mais je ne trouve pas

Voici le code (vous avez le droit de vous moquer car je galère dur....)

Sub Rajout()

'
'selection colonne à nettoyer
Dim ma_colonne
Set ma_colonne = Application.InputBox("choissiez une cellule ou une plage", Type:=8)
'inserer colonne
ma_colonne.EntireColumn.Select

Columns(ActiveCell.Column + 1).Select
  Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

'formule
Dim nbcar As Long
nbcar = Application.InputBox("nb caractère", Type:=1)

    ma_colonne.Offset(1, 1).Select
    Selection.NumberFormat = "General"
    ActiveCell.FormulaR1C1 = "=IF(LEN(RC[-1])=" & nbcar & ",RC[-1],(CONCATENATE(0,RC[-1])))"

Dim derniereligne As Long
derniereligne = Cells(Rows.Count, ActiveCell.Column - 1).End(xlUp).Row
a = ActiveCell.Address

Selection.AutoFill Destination:=Range("& a &", "& DerniereLigne"), Type:=xlFillDefault

End Sub

Merci par avance de votre aide

SBB

Bonjour Sevbu_63,

À tester :

Sub Rajout()

    'selection colonne à nettoyer
    Dim ma_colonne As Range
    Set ma_colonne = Application.InputBox("choissiez une cellule ou une plage", Type:=8)

    'inserer colonne
    ma_colonne.EntireColumn.Select

    Columns(ActiveCell.Column + 1).Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

    'formule
    Dim nbcar As Long
    nbcar = Application.InputBox("nb caractère", Type:=1)

    ma_colonne.Offset(0, 1).Select
    Selection.NumberFormat = "General"
    ActiveCell.FormulaR1C1 = "=IF(LEN(RC[-1])=" & nbcar & ",RC[-1],(CONCATENATE(0,RC[-1])))"

    Dim derniereligne As Long
    derniereligne = Cells(Rows.Count, ActiveCell.Column - 1).End(xlUp).Row
    a = ActiveCell.Address

    Range(a).AutoFill Destination:=Range(a & ":" & Cells(derniereligne, ActiveCell.Column).Address), Type:=xlFillDefault

End Sub

Merci ça fonctionne bien

Par contre la formule commence à s'incrémenter dès la première ligne et ce n'est pas grave c'est un détail.

Bonne soirée

Rechercher des sujets similaires à "vba autofill range activecell"