J'essaie de mettre à jour une feuille ("EditEx") avec les données d'une feuille de registre ("TK_Register") après l'application d'un filtre basé sur le numéro de référence. Il n'y aurait pas plus de 20 lignes.
Mon problème est lié au copier-coller.
Si les données à copier se trouvent dans les 20 premières lignes, elles copient et collent les données, mais copient également les lignes vides jusqu'à la ligne 21 (comme défini dans ma plage DBExtract).
Si les données à copier se trouvent après les 20 premières lignes, j'obtiens une erreur 1004. Le filtre trouve qu'il y a des données mais mon code de copie ne regarde que les 20 premières lignes.
Comment puis-je faire fonctionner les lignes filtrées par copie SANS copier également les lignes vides (ce qui se produit également si je définis ma plage de copie sur "A: K")? Merci
Sub UpdateInputWithExisting()
ActiveCell.Offset(0, 1).Select
Set RefID = ActiveCell
Sheets("TK_Register").Range("A1:N1000").AutoFilter field:=12, Criteria1:=RefID
Dim DbExtract, DuplicateRecords As Worksheet
Set DbExtract = ThisWorkbook.Sheets("TK_Register")
Set DuplicateRecords = ThisWorkbook.Sheets("EditEx")
DbExtract.Range("A2:K21").SpecialCells(xlCellTypeVisible).copy
DuplicateRecords.Cells(32, 3).PasteSpecial xlPasteValues
On Error Resume Next
Sheets("TK_Register").ShowAllData
On Error GoTo 0
ActiveWorkbook.RefreshAll
Sheets("EditEx").Select
Range("B13").Select
MsgBox ("Record Retrieved. Make your changes and ensure you click 'Save Changes' to update the Master Registers")
End Sub
1 réponse
je vous recommande de modifier les deux lignes suivantes en (étant donné que votre feuille n'a pas de données adjacentes à votre table):
Sheets("TK_Register").Range("A1").CurrentRegion.AutoFilter field:=12, Criteria1:=RefID
Et ça:
DbExtract.Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).copy
De nouvelles questions
excel
Uniquement pour les questions sur la programmation contre des objets ou des fichiers Excel, ou le développement de formules complexes. Vous pouvez combiner la balise Excel avec VBA, VSTO, C #, VB.NET, PowerShell, l'automatisation OLE et d'autres balises et questions liées à la programmation, le cas échéant. Une aide générale concernant MS Excel pour les fonctions de feuille de calcul unique est disponible sur Super User.