Excel - Une macro pour définir et remplir automatiquement une plage

Problème

J'ai enregistré une macro pour Excel et une partie du code consiste à créer une colonne d'index qui remplit la cellule avec un nombre de lignes (A2 = 1, A3 = 2, etc.) en fonction des données de la colonne B).

  • La macro a parfaitement fonctionné et enregistré. Toutefois, lorsque je tente de l’utiliser sur un autre fichier, elle pose un problème car chaque fichier ne compte pas le même nombre de lignes remplies.
  • Comment puis-je modifier le code ci-dessous pour l'adapter à tout fichier Excel que j'ouvre, quel que soit le nombre de lignes de données qu'il contient?

 Colonnes ("A: A"). Sélectionnez Selection.Insert Shift: = xlToRight, CopyOrigin: = xlFormatFromLeftOrAbove Range ("A1"). Sélectionnez ActiveCell.FormulaR1C1 = "Index" Colonnes ("B: B"). Sélectionnez Selection.Copy. Colonnes ("A: A"). Sélectionnez Selection.PasteSpecial Paste: = xlPasteFormats, Opération: = xlNone, _ SkipBlanks: = False, Transpose: = False Application.CutCopyMode = False Range ("A2"). Sélectionnez ActiveCell.FormulaR1C1 = "1" Range ("A3"). Sélectionnez ActiveCell.FormulaR1C1 = "2" Range ("A2: A3"). Sélectionnez Selection.AutoFill Destination: = Range ("A2: A295324") Range ("A2: A295324") .Sélectionner 

Solution

Essayez le code suivant:

 Sous test () Dim lRow As Long Columns ("A: A"). Sélectionnez Selection.Insert Shift: = xlToRight Range ("A1"). Value = "Index" Range ("A2"). Value = 1 Range (" A3 "). Value = 2 Range (" A2: A3 "). Sélectionnez lRow = Range (" B "& Rows.Count) .End (xlUp). Sélection de la piste. Destination de remplissage automatique: = Range (" A2: A "& lRow) End Sub 

Merci à TrowaD pour ce conseil.

Article Précédent Article Suivant

Les Meilleurs Conseils