Table des matières
Sur Microsoft Excel , Macros VBA peut facilement résoudre un grand nombre de problèmes. Si nous voulons copier des données d'un autre classeur sans l'ouvrir, nous pouvons facilement le faire en utilisant la méthode suivante Excel VBA Dans cet article, vous apprendrez Excel VBA pour copier les données d'un autre classeur sans l'ouvrir.
Télécharger le cahier d'exercices
Vous pouvez télécharger le cahier d'exercices et vous entraîner avec eux.
Copier les données d'un autre classeur.xlsm3 façons différentes de copier des données d'un autre classeur sans l'ouvrir avec Excel VBA
Parfois, nous avons besoin de données provenant d'un classeur précédent. Si nous sommes pressés et que nous avons besoin des données immédiatement sans ouvrir le classeur, nous pouvons utiliser la fonction Excel VBA Avec Excel VBA, nous pouvons rapidement copier les données d'autres classeurs, pour cela, il suffit de connaître l'emplacement de ce classeur particulier.
Pour copier les données, nous allons utiliser le nom du classeur. Détails sur le produit Et nous voulons copier la plage de données ( B4:E10 L'ensemble de données que nous voulons copier contient certains produits, leur prix de vente, le coût des marchandises et les marges bénéficiaires brutes. Examinons les différents critères permettant de copier les données d'un autre classeur.
1. copier les données d'une feuille depuis un autre classeur sans l'ouvrir avec Excel VBA
Nous pouvons copier des données à partir d'une feuille en suivant la procédure suivante VBA Pour cela, nous devons suivre les étapes suivantes.
ÉTAPES :
- Tout d'abord, rendez-vous sur le site Développeur dans le ruban.
- Après cela, cliquez sur Visual Basic pour ouvrir le Éditeur Visual Basic .
- Une autre façon d'ouvrir le Éditeur Visual Basic consiste simplement à appuyer sur Alt + F11 .
- Ou bien, cliquez avec le bouton droit de la souris sur la feuille, puis sélectionnez Afficher le code .
- Maintenant, écrivez les Code VBA ci-dessous.
Code VBA :
Sub Copy_Data_from_Another_Workbook() Dim wb As Workbook Dim newwb As Workbook Dim rn1 As Range Dim rn2 As Range Set wb = Application.ActiveWorkbook With Application.FileDialog(msoFileDialogOpen) .Filters.Clear .Filters.Add "Excel 2007-13", "*.xlsx ; *.xlsm ; *.xlsa" .AllowMultiSelect = False .Show If .SelectedItems.Count> ; 0 Then Application.Workbooks.Open.SelectedItems(1) Set newwb = Application.ActiveWorkbook Set rn1 = Application.InputBox(prompt:="Select Data Range", Default:="A1", Type:=8) wb.Activate Set rn2 = Application.InputBox(prompt:="Select Destination Range", Default:="A1", Type:=8) rn1.Copy rn2 rn2.CurrentRegion.EntireColumn.AutoFit newwb.Close False End If End With End SubEnd With End Sub
- Enfin, exécutez le code en cliquant sur le bouton Run Sub d'autre part, appuyez sur le raccourci clavier F5 pour exécuter le code.
NOTE : Vous n'avez pas besoin de modifier le code, il suffit de le copier et de le coller.
- En exécutant le code Ouverture du fichier apparaîtra depuis votre ordinateur.
- Ensuite, cliquez sur le classeur dans lequel vous voulez collecter les données.
- Ensuite, cliquez sur le OK bouton.
- Maintenant, sélectionnez les données du fichier source en les faisant glisser sur la plage. B5:E10 puis cliquez sur OK .
- Après avoir sélectionné la plage de données, sélectionnez maintenant la plage de destination où vous voulez placer les données.
- Et, cliquez OK .
- A la fin, cela fermera le fichier source et les données seront copiées sur le fichier de destination.
Lire la suite : Excel VBA : Copier une plage dans un autre classeur
Lectures similaires
- Comment coller du presse-papiers vers Excel en utilisant VBA
- Désactiver le copier-coller dans Excel sans macros (avec 2 critères)
- Comment copier les rangées cachées exclues dans Excel (4 méthodes faciles)
- Excel VBA pour copier des lignes vers une autre feuille de calcul sur la base de critères
- Comment utiliser VBA pour coller uniquement des valeurs sans mise en forme dans Excel ?
2. VBA pour copier une plage de données d'un autre classeur sans l'ouvrir dans Excel
En utilisant le VBA Le code ci-dessous nous permet de copier des données à partir d'une plage de données. Nous devons suivre les étapes ci-dessous pour y parvenir.
ÉTAPES :
- Pour commencer, accédez à la page Développeur dans le ruban.
- Ensuite, ouvrez le Éditeur Visual Basic en cliquant sur Visual Basic ou en appuyant sur Alt + F11 .
- Ou bien, il suffit de cliquer avec le bouton droit de la souris sur la feuille et de sélectionner Afficher le code pour ouvrir le Éditeur Visual Basic .
- Après cela, écrivez les Code VBA là.
Code VBA :
Sub CollectData() Dim rgTarget As Range Set rgTarget = ActiveSheet.Range("B2:E10") 'où mettre les données copiées. rgTarget.FormulaArray = "='D:\[Product_Details.xlsx]Sheet1'!$B$4:$E$10" rgTarget.Formula = rgTarget.Value End Sub
- Ici, exécutez le code en utilisant Exécuter Sous ou appuyez sur le raccourci clavier F5 pour exécuter le code.
NOTE : Vous n'avez pas besoin de modifier le code, il vous suffit de changer la plage en fonction de vos données sources.
- Et enfin, les données sont maintenant copiées d'un autre classeur dans le classeur actif.
Lire la suite : Macro pour copier et coller d'une feuille de calcul à une autre (15 méthodes)
3. Excel VBA pour copier les données d'un autre classeur sans l'ouvrir en utilisant le bouton de commande
Nous pouvons copier les données d'un autre classeur en utilisant le bouton de commande de l'onglet VBA Pour ce faire, nous devons suivre les étapes décrites ci-dessous.
ÉTAPES :
- Tout d'abord, pour mettre un Bouton de commande allez à la page Développeur onglet.
- Ensuite, cliquez sur le Insérer dans le menu déroulant.
- Troisièmement, cliquez sur le Bouton de commande .
- Nous avons mis le Produit sur la cellule A1 car il s'agit du nom de la feuille du fichier source. Et nous définissons le fichier Bouton de commande Nous avons créé la table maintenant, nous avons juste besoin des données qui sont dans un autre classeur.
- Dans le même ordre d'idées, naviguez jusqu'à la section Développeur dans le ruban.
- Ensuite, cliquez sur Visual Basic ou appuyez sur Alt + F11 pour lancer le Éditeur Visual Basic .
- Vous pouvez également ouvrir le Éditeur Visual Basic en cliquant avec le bouton droit de la souris sur la feuille et en sélectionnant Afficher le code .
- Maintenant, écrivez le VBA code en bas.
Code VBA :
Private Sub CommandButton1_Click() Dim sourceworkbook As Workbook Dim currentworkbook As Workbook Set currentworkbook = ThisWorkbook Set sourceworkbook = Workbooks.Open("D:\Products_Details.xlsx") sourceworkbook.Worksheets("Product").Range("B5:E10").Copy currentworkbook.Activate currentworkbook.Worksheets("Sheet3").Activate currentworkbook.Worksheets("Sheet3").Cells(4, 1).Select ActiveSheet.Pastesourceworkbook.Close Set sourceworkbook = Nothing Set currentworkbook = Nothing ThisWorkbook.Activate Worksheets("Sheet3").Activate Worksheets("Sheet3").Range("A2").Select End Sub
- Ensuite, enregistrez le code en appuyant sur Ctrl + S .
NOTE : Vous pouvez copier le code, il vous suffit de modifier le chemin du fichier et la plage de données.
- Et, enfin, si vous cliquez sur le Bouton de commande 1 ceci copiera les données d'un autre classeur sans l'ouvrir.
Lire la suite : Macro pour copier des données d'un classeur à un autre en fonction de critères
Conclusion
Les critères ci-dessus sont des lignes directrices pour copier des données d'un autre classeur sans l'ouvrir avec Excel VBA J'espère que cela vous aidera ! Si vous avez des questions, des suggestions ou des commentaires, n'hésitez pas à nous en faire part dans la section "Commentaires". Vous pouvez également consulter nos autres articles dans la section "Articles". ExcelWIKI.com blog !