Copier des feuilles de tableau, déplacer et insérer
Vous devez souvent accéder à des feuilles de calcul existantes pour les copier ou les déplacer vers un autre emplacement. Comment ça marche avec VBA?
1-Copier la feuille de travail
Dans le premier exemple, une copie d’une feuille de calcul existante doit être créée. Vous pouvez déterminer vous-même le nom de la copie via une zone de saisie. La copie doit être insérée à la fin du classeur, c’est-à-dire à la dernière position à l’extrême droite, en utilisant la méthode Copy.
Sub tableauxFeuilleCopie () Dim s As String Dim i As Integer s = _ InputBox ("Veuillez saisir le nom de la feuille!", _ "Attribuer des noms de feuille", "Feuil1") If s = "" Then Exit Sub i = Sheets.Count On Error Resume Next Sheets (1). Copy After: = Sheets (i) ActiveSheet.Name = s End Sub
La fonction de zone de saisie est idéale pour travailler de manière interactive avec l’utilisateur. Ici, l’utilisateur entre le nom de la feuille copiée. Pour soulager un peu, entrez le nom de la table ici.
Dans l’exemple suivant, la zone utilisée dans FEUIL1 est copiée et collée dans FEUIL2. La macro pour cette tâche se trouve dans l’extrait .
Sub zoneUtiliseeCopierDansUneAutreTable () Worksheets("Feuil1").UsedRange.Copy Worksheets("Feuil2").Paste _ Worksheets("Feuil2").Range("A1") Application.CutCopyMode = False End Sub
Utilisez la propriété UsedRange pour déterminer la plage utilisée de la table. Utilisez la méthode Copy pour copier cette zone. Utilisez la méthode Paste pour coller la zone copiée dans FEUIL2. N’oubliez pas de définir la propriété CutCopyMode sur False à la fin. Cela supprime les marges de copie qui sont automatiquement générées pendant un processus de copie.
Si vous ne souhaitez pas utiliser la méthode Copy et que vous souhaitez plutôt transférer des données à l’aide de variables, vous pouvez également choisir une approche différente. suivante transfère toutes les cellules de la colonne A de FEUIL1 à FEUIL2.
Sub transfertfeuil () Dim mafeuil1 As Worksheet Dim mafeuil2 As Worksheet Dim i As Integer Dim y As Integer Set mafeuil1 = ThisWorkbook.Worksheets("Feuil1") Set mafeuil2 = ThisWorkbook.Worksheets("Feuil2") For i = 1 To mafeuil1.UsedRange.Rows.Count y = y + 1 mafeuil2.Cells(i, 1) = mafeuil1.Cells(y, 1) Next i End Sub
Dans la première étape, définissez la table source (mafeuil1) et la table cible (mafeuil2). Pour ce faire, utilisez l’instruction Set. Ensuite, vous formez une boucle qui traverse toutes les lignes utilisées dans Table1. Dans la boucle, vous transférez les cellules une par une d’une table à une autre.