Macro pour transférer les lignes utilisées vers une autre feuille, Excel VBA

Vous ne devez jamais oublier de sauvegarder vos données les plus importantes. À quelle vitesse peut-il arriver que vous ne puissiez plus ouvrir un certain classeur ou que vous ayez accidentellement supprimé un classeur? Dans les pages suivantes, vous découvrirez quelques méthodes pour dupliquer vos tables, transférer vos données les plus importantes ou même lire certaines données des tables et les enregistrer.

-Transférer les lignes utilisées vers une autre table

Dans la solution suivante, toutes les lignes utilisées sont enregistrées d’une table à une autre. Pour ce faire, utilisez le code de macro suivant .

Sub TransfertDeLignes ()

Dim Blatt1 As Worksheet

Dim Blatt2 As Worksheet

Dim i As Long

Set Blatt1 = Sheets("affectation ")

Set Blatt2 = Sheets("A- Fusible ")

Application.ScreenUpdating = False

Blatt1.Activate

Range("A2").Select

For i = 1 To ActiveSheet.UsedRange.Rows.Count

 Blatt1.Range(ActiveCell.Address).EntireRow.Copy

 Blatt2.Activate

 Range("A65536").End(xlUp).Offset(1, 0).Select

 ActiveSheet.Paste

 Blatt1.Activate

 ActiveCell.Offset(1, 0).Select

Next i

Application.CutCopyMode = False

Application.ScreenUpdating = True

End Sub

Au début de la macro, définissez les deux tables Sheet1 et Sheet2. Sheet1 contient les données d’origine, Sheet2 est la table dans laquelle les données doivent être copiées en tant que sauvegarde. Désactivez ensuite la mise à jour de l’écran à l’aide de l’instruction Application.ScreenUpdating = False. Cela signifie que votre écran reste constant pendant la séquence macro et ne change pas. Puis transférez-les ligne par ligne en boucle. À la fin, réactivez la mise à jour de l’écran en définissant la propriété ScreenUpdating sur True.

-Copier et renommer la table

Si vous souhaitez enregistrer la table dans son ensemble, vous pouvez également la copier et la nommer en conséquence. Lors de cette opération, nommez la table sauvegardée Sauvegarde, suivi du nom d’origine de la table. La macro pour cette tâche est:

Sub EnregistrerLaTable ()

Dim s As String

Dim i As Integer

s = ActiveSheet.Name

i = ActiveWorkbook.Sheets.Count

 ActiveSheet.Copy After:=Sheets(i)

 ActiveSheet.Name = "Sicherung " & s

End Sub

 

Déterminez le nombre de tables dans le classeur et enregistrez-les dans la variable i. La sauvegarde de la table active

doit être placé à la toute fin du classeur. C’est précisément pourquoi vous spécifiez l’index déterminé i dans l’argument After de la méthode Copy. Cela colle la table copiée à la toute fin du classeur. Nommez cette table avec l’ajout BACKUP. 

Figure: Transfert de 7 lignes Enregistrer la table

 

-Transférer des textes

Imaginez que vous ayez un tableau avec des textes dans la colonne A. Votre tâche consiste maintenant à enregistrer tous les textes soulignés dans un autre tableau. Jetez un œil à l’illustration suivante.

Tableau: Certaines données qui devaient être transférées.

Maintenant, pour transférer toutes les cellules soulignées dans le tableau, utilisez la macro .

Sub CopierLesValeursSouligneesDansUneAutreFeuille ()
Dim Sheet1 As Worksheet
Dim Sheet2 As Worksheet
Dim area As Range
Dim Cell As Range
Dim i As Long
Set Blatt1 = Sheets ("Feuil2")
Set Blatt2 = Sheets ("Feuil3")
Set range = sheet1.Range ("A1: A10")
i = 1
For Each Cell In Range
  If cell.Font.Underline = xlUnderlineStyleSingle Then _
  Sheet2.Cells (i, 1) .Value = Cell.Value: i = i + 1
Next cell
End Sub

Définissez d’abord votre table source et votre table cible à l’aide de l’instruction Set. Définissez ensuite la zone de données dans votre table de sortie qui contient les données pour le transfert. Dans la boucle suivante, utilisez la propriété UnderLine pour vérifier si la cellule appropriée est soulignée. Si tel est le cas, transférez le texte de la cellule dans le tableau le13. Ensuite, augmentez la variable i de la valeur 1 de sorte que le pointeur de cellule soit positionné exactement une ligne vers le bas de sorte qu’aucune valeur de la feuille 3 ne soit écrasée lors du transfert suivant.

-Ecrire un tableau dans un fichier texte

Une autre façon d’enregistrer des données Excel est en dehors d’Excel. Enregistrez votre tableau dans un fichier texte. La situation initiale est la suivante:

Tableau: La table de sortie juste avant la sauvegarde

Pour enregistrer maintenant la table Order dans un fichier texte et utiliser le point-virgule comme séparateur, démarrez la macro .

Sub EnregistrerLaTableDansFichierTexte ()
Dim s As String
Dim i As Integer
Dim e As Integer
Open " C:\Users\JOSUE-PC\Documents\affectation.xlsm " For Output As #1
    Sheets("affectation").Activate
    Range("A2").Select
    For i = 2 To ActiveSheet.UsedRange.Rows.Count
      For e = 1 To ActiveSheet.UsedRange.Columns.Count
        s = s & ActiveCell.Value & ";"
        ActiveCell.Offset(0, 1).Select
      Next e
       Print #1, s
       s = ""
       Range("A" & i).Select
    Next
    Close #1
    Application.ScreenUpdating = True
MsgBox " Fichier texte créé!"
End Sub

Dans la première étape, ouvrez un fichier texte. Le fichier texte n’a pas besoin d’être créé pour cela. Activez ensuite la table que vous souhaitez transférer et placez le pointeur de la souris à la position de départ de cette table. Deux boucles suivent maintenant. Dans la première boucle, toutes les lignes utilisées sont traitées. Dans la deuxième boucle, les cellules utilisées sont traitées dans une ligne. Dans la variable s, vous écrivez le contenu exact de ces cellules, séparés par un point-virgule. Lorsqu’une ligne a été complètement traitée, écrivez la ligne correspondante directement dans le fichier texte. Appliquez-y   u l’instruction Imprimer. Videz ensuite la variable s et placez le pointeur de la souris sur la ligne suivante de votre tableau. Lorsque toutes les lignes ont été transférées dans le fichier texte, fermez le fichier texte à l’aide de l’instruction Close et affichez un message à l’écran.

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

Fonctions Excel

Macro VBA Utiles

Excel Pratique

Programmation VBA

Sur Facebook

Sur YouTube

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