Remplissage automatique avec une macro - Exemples de code VBA

Remplissage automatique en VBA

Cet article montre comment utiliser le remplissage automatique dans VBA.

Le remplissage automatique est un excellent outil dans Excel lorsque les données sont répétitives ou séquentielles (comme les jours de la semaine, les dates, les mois de l'année, etc.). Nous remplirions normalement les deux premières cellules avec les données requises, puis utiliserions le remplissage automatique pour copier les données requises dans une plage sélectionnée.

Tout cela peut être fait à l'aide d'une macro VBA.

Remplissage automatique à l'aide de nombres incrémentiels

Premièrement, dans notre code, nous pouvons déclarer deux variables Range.

Selection1 est la plage avec les données à remplir automatiquement - par exemple 1 et 2.

Selection2 est le tout plage à remplir automatiquement, cela inclut la première plage plus les espaces vides à remplir automatiquement.

Nous utilisons ensuite la méthode AutoFill pour remplir la deuxième plage de sélection.

123456789101112131415 Public Sub MyAutoFill()'par easyexcel.net'Déclarer les variables de plageDim selection1 As RangeDim selection2 As Range'Définir les variables de plage = leurs plages respectivesDéfinir selection1 = Sheet1.Range("A1:A2")Définir selection2 = Sheet1.Range("A1:A12")'Remplissage automatiqueselection1.Destination de remplissage automatique :=selection2Fin du sous-marin

Nous pouvons ensuite exécuter la macro sur Autofill Range (A1:A12).

Lorsque nous utilisons la méthode AutoFill, nous pouvons sélectionner le type de remplissage automatique que nous souhaitons effectuer. Dans l'exemple ci-dessus, nous n'avons pas spécifié le type de remplissage automatique, ce qui signifie que le type par défaut a été utilisé - dans ce cas, en incrémentant les nombres de 1 sur chaque ligne.

Remplissage automatique à l'aide de mois

La macro de remplissage automatique à l'aide des mois est presque identique à celle utilisée pour incrémenter les nombres, à une exception près.

1234567891011 Sous-publication AutoFillMonths()'par easyexcel.net'Déclarer les variables de plageDim selection1 As RangeDim selection2 As Range'Définir les variables de plage = leurs plages respectivesDéfinir selection1 = Sheet1.Range("A1:A2")Définir selection2 = Sheet1.Range("A1:A12")'Remplir automatiquement les moisDestination de remplissage automatique :=selection2, Type :=xlFillMonthsFin du sous-marin

Lorsque nous remplissons le type de remplissage automatique, nous avons le choix entre un certain nombre de constantes Excel. Si nous omettons cela, Excel déterminera le type de données à remplir à partir des données d'origine fournies.

Excel est capable de récupérer des séries standard telles que des mois, des jours de la semaine et des nombres incrémentiels sans avoir besoin d'utiliser l'argument Type.

Remplissage automatique à l'aide de xlFillCopy

Si nous voulons utiliser une macro AutoFill pour copier les informations dans de nouvelles cellules, nous pouvons utiliser la constante xlFillCopy.

1234567 Sous-remplissage automatique public ()Dim Selection1 As RangeDim Selection2 As RangeDéfinir Selection1 = Sheet1.Range("A1:A1")Définir Selection2 = Sheet1.Range("A1:A12")Selection1.AutoFill Destination :=Selection2, Type :=xlFillCopyFin du sous-marin

L'exécution de cette macro copierait les données dans Range ("A1") jusqu'à Range ("A1: A12") plutôt que de remplir automatiquement les cellules avec les mois suivants à partir de "Jan".

Remplissage automatique à l'aide de xlFlashFill

Lorsque nous devons convertir du texte en colonnes dans Excel, nous pouvons soit utiliser l'option texte en colonnes, soit utiliser une option appelée Flash Fill. Ceci est extrêmement utile en VBA.

Prenons par exemple les données suivantes :

Nous pouvons taper le nom de famille « Tolley » dans la cellule B2, puis utiliser une macro pour remplir le reste des données.

1234567 Sous-FlashFill()Dim Selection1 As RangeDim Selection2 As RangeDéfinir Sélection1 = Plage("B2:B2")Définir Sélection2 = Plage("B2:B15")Selection1.AutoFill Destination :=Sélection2, Type :=xlFlashFillFin du sous-marin

Nous pouvons ensuite répéter cela dans les colonnes C, D et E pour obtenir les données restantes.

1234567891011 Définir Sélection1 = Plage("C2:C2")Définir Sélection2 = Plage("C2:C15")Selection1.AutoFill Destination :=Sélection2, Type :=xlFlashFillDéfinir Sélection1 = Plage("D2:D2")Définir Sélection2 = Plage("D2:D15")Selection1.AutoFill Destination :=Sélection2, Type :=xlFlashFillDéfinir Sélection1 = Plage("E2:E2")Définir Sélection2 = Plage("E2:E15")Selection1.AutoFill Destination :=Sélection2, Type :=xlFlashFill

Chaque colonne se remplira ensuite avec les données appropriées en fonction de la valeur de la ligne 2.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave