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.