J'ai la macro suivante définie qui insère des lignes dans une feuille. Une fois les lignes insérées à des adresses de début spécifiées, les différentes plages sont ensuite converties en tables. Mes premières pensées sont que le problème réside dans l'utilisation de xlDown
- puisque c'est l'endroit dans le code où les lignes sont insérées.Ligne supplémentaire insérée à l'aide de xlDown dans Excel
Actuellement, j'ai 7 telles plages, mais le problème est que les trois premiers ont toujours une ligne supplémentaire insérée - cela fonctionnait auparavant sans problèmes, donc le fait que son mauvais comportement est un casse-tête pour moi.
Les plages restantes sont correctes. Le tableStartAdress
se réfère à des plages nommées dont les valeurs correspondent à la première cellule sous le titre vert, à savoir A4, A12, etc. rowsToInsert
pour cet exemple est toujours 38.
Sub InsertTableRows(tableStartAdress As String, rowsToInsert As Integer)
Dim i As Integer
Dim rowToCopy As String
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.DisplayAlerts = False
Range(tableStartAdress).Offset(1, 0).Rows.Copy
rowToCopy = Range(tableStartAdress).Offset(1, 0).row & ":" & _
Range(tableStartAdress).Offset(1, 0).row
Rows(rowToCopy).Select
Selection.Copy
Range(tableStartAdress).Offset(1, 0).Select
ActiveCell.Resize(rowsToInsert, 1).Select
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Les images suivantes illustrent ce que je veux dire.
Avant:
.
Une fois les données est renseigné les trois première gamme/tables ont une ligne supplémentaire
,
,
Alors que le reste sont corrects
@Ahmad: Lorsque vous sélectionnez la ligne à copier, a-t-elle une ligne vide après? –
@ardman - la ligne qui est copiée est en fait la ligne vide que vous voyez dans l'image avant. Donc, pour répondre à la question non, puisque la ligne suivante est en fait un espace réservé pour les sous-totaux qui seront générés une fois rempli de données – Ahmad
@Ahmad: Le problème peut se situer dans votre code de sous-totalisation plutôt que dans le code que vous avez collé. –