Copier des feuilles de calcul, 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.

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x