Copier les cellules de la ligne ActiveCell à une feuille de base de données en utilisant VBA dans Microsoft Excel
Dans Microsoft Excel, nous pouvons copier des cellules de la ligne de cellule active vers une feuille spécifique. Dans cet article, nous utiliserons le code VBA pour transférer les données de chaque feuille et fusionner les données en une seule feuille de calcul. Nous ajouterons une feuille principale dans le classeur et enregistrerons les données de la plage spécifiée dans une seule feuille.
_Les exemples de codes seront copiés dans une feuille de base de données avec le nom Sheet2.
Chaque fois que nous exécutons une macro, les cellules seront placées sous la dernière ligne avec des données après la dernière colonne de sheet2. Cette macro copiera les cellules de la colonne A, D de ActiveCell._
Voici l’image de l’échantillon de données:
Pour copier des cellules de la ligne de cellule active vers la feuille Sheet2; nous devons suivre les étapes ci-dessous pour lancer l’éditeur VB:
Cliquez sur l’onglet Développeur Dans le groupe Code, sélectionnez Visual Basic
===
-
Cliquez sur Insérer puis Module
Cela créera un nouveau module Entrez le code suivant dans le module standard
Sub CopyCells() Dim sourceRange As Range Dim destrange As Range Dim Lr As Long Lr = LastRow(Sheets("Sheet2")) + 1 Set sourceRange = Sheets("Sheet1").Cells( _ ActiveCell.Row, 1).Range("A1:D1") Set destrange = Sheets("Sheet2").Range("A" & Lr) sourceRange.Copy destrange End Sub
Sub CopyCellsValues() Dim sourceRange As Range Dim destrange As Range Dim Lr As Long Lr = LastRow(Sheets("Sheet2")) + 1 Set sourceRange = Sheets("Sheet1").Cells( _ ActiveCell.Row, 1).Range("A1:D1") With sourceRange Set destrange = Sheets("Sheet2").Range("A" _ & Lr).Resize(.Rows.Count, .Columns.Count) End With destrange.Value = sourceRange.Value End Sub
Function LastRow(sh As Worksheet) On Error Resume Next LastRow = sh.Cells.Find(What:="*", _ After:=sh.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Row On Error GoTo 0 End Function
Function Lastcol(sh As Worksheet) On Error Resume Next Lastcol = sh.Cells.Find(What:="*", _ After:=sh.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByColumns, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Column On Error GoTo 0 End Function
===
Pour vérifier le code VBA ci-dessus; ajouter des données dans la plage «A1: D1» et puis exécuter la macro en appuyant sur la touche de raccourci F5 Les données stockées dans la plage spécifiée seront copiées dans «Sheet2» à partir de A1
-
Si nous exécutons à nouveau cette macro; les données seront enregistrées dans la ligne suivante; voir ci-dessous l’image:
Nous pouvons changer la plage dans la macro ci-dessus qui convient à notre exigence Conclusion: * Avec la macro ci-dessus, nous pouvons copier des cellules de la ligne de cellule active vers une nouvelle feuille en utilisant le code VBA.
Si vous avez aimé nos blogs, partagez-les avec vos amis sur Facebook. Et vous pouvez aussi nous suivre sur Twitter et Facebook.
Nous serions ravis de vous entendre, faites-nous savoir comment nous pouvons améliorer, compléter ou innover notre travail et le rendre meilleur pour vous. Écrivez-nous à [email protected]