Il s'agit d'une question Visual Basic difficile, donc je ne suis pas sûr que quiconque dans ce forum puisse vous aider. Mais ça vaut le coup d'essayer.Maintenir l'intégrité des lignes dans le collage des lignes non vierges
J'ai écrit un programme dans Visual Basic pour être utilisé comme macro dans Excel.
Dans la macro, je prends des données dans sheet1 (FINAL) et copie & en collant les valeurs dans sheet2 (Data). Ma plage de données dans sheet1 contient de nombreuses cellules vides, donc je voulais créer un programme qui ne colle que des lignes avec des valeurs (par rapport aux lignes avec seulement des cellules vides).
Mon programme modifie maintenant ma plage de données dans la feuille 1 avant de coller dans la feuille 2 et je ne veux pas que ... ..mon formatage soit tout foutu en conséquence aussi. Au lieu de cela, je veux que les données de mon sheet1 restent complètement identiques et que les lignes vierges soient supprimées dans l'action de collage entrant dans sheet2.
Mes données dans sheet1 commencent à la colonne AL et passent à la colonne CD.
Il est très important que l'intégrité des lignes soit maintenue. Je ne veux pas que les cellules vides soient effacées pendant la pâte, mais plutôt les BLANK ROWS de la gamme à effacer pendant la pâte. Donc, s'il y a une ligne entre les colonnes AL et CD qui n'a même qu'un seul point de données, la ligne dans son ensemble doit être maintenue dans la pâte. Mais pour toutes les lignes entre les colonnes AL et CD qui sont complètement vides, elles doivent être supprimées dans l'action de collage entrant dans sheet2.
Mon programme existant est ci-dessous. Toute aide serait grandement appréciée.
Dim ws As Worksheet
Set ws1 = Worksheets("FINAL")
Set ws2 = Worksheets("Data")
With ws1.UsedRange
lastcolumn = .Cells(1, 1).Column + .Columns.Count - 1
lastrow = .Cells(1, 1).Row + .Rows.Count - 1
End With
ws1.Range(Cells(1, 38), Cells(lastrow, lastcolumn)).AutoFilter field:=1, Criteria1:="<>"
ws1.Range(Cells(1, 38), Cells(lastrow, lastcolumn)).Copy
ws2.Range("A1").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Wow! C'est assez impressionnant! Oui ... cela fonctionne parfaitement. Je vous remercie beaucoup pour votre aide. – user2284021
Heureux d'être de l'aide :) –
Je viens de poster une autre question, mais il est plus basé sur Excel que VB, au moins je pense. Puis encore ..... Je ne sais pas si je peux le faire dans Excel sans un type de macro. Mais n'hésitez pas à consulter mon dernier message et à nous faire part de vos commentaires si vous en avez. Il s'agit de boutons radio dans Excel. Vous m'avez très impressionné de résoudre mon dernier problème, alors j'ai pensé que je vous le ferais savoir au cas où vous auriez un aperçu. – user2284021