Une ligne supplémentaire non désirée. comment la virer ? [Résolu]

Signaler
Messages postés
23
Date d'inscription
vendredi 13 juillet 2012
Statut
Membre
Dernière intervention
26 mars 2014
-
Messages postés
30264
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 novembre 2020
-
Bonsoir à tous et toutes.

Voulant copier des lignes entières sous condition de plusieurs onglets vers un onglet récapitulatif.
J'utilise ce code.

Sub Copie_bis()


Dim plage As Range, cel As Range
Dim Nathan As Worksheet
Dim Récap As Worksheet



Set Nathan = Worksheets("Nathan")
Set Récap = Worksheets("Récap")



'Nathan
With Nathan
derlig = .Range("K" & Rows.Count).End(xlUp).Row
Set plage = .Range("K3:K" & derlig)
End With

'cadre
Récap.Range("A13").Value = "Nathan"
Récap.Range("A13").Font.Bold = True
Récap.Range("A13:E13").Borders.Weight = xlThin
Récap.Range("B13").Value = "Nb de ref"
Récap.Range("C13").Value = Nathan.Range("k2")
Récap.Range("D13").Value = "S/T"
Récap.Range("E13").Value = Nathan.Range("I1371")

Nathan.Range("A2:I2").Copy Destination:=Récap.Range("A14")



' couleur
Récap.Range("A13:D13").Interior.ColorIndex = 44
Récap.Range("E13").Interior.ColorIndex = 35

For Each cel In plage
If cel = 1 Then
cel.EntireRow.Copy
Récap.Range("A15").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=True, Transpose:=False

Selection.Insert Shift:=xlDown

End If
Next cel

Application.ScreenUpdating = False


End Sub

les lignes 13 et 14 sont de la copie pure et dure des valeurs de présentation du tableau.


Or il apparait sur mon feuillet récap une ligne vierge de valeur en 15, mais avec les cadres des cellules adéquates.

ensuite les lignes sont recopier correctement.

A l'envers c'est à dire de bas en haut, mais ça c'est pas le plus important.

je ne comprends pas d'où provient mon erreur...

Si vos yeux aguerris découvre la faille, je suis preneur.

Bye

troph

1 réponse

Messages postés
30264
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 novembre 2020
338
Bonsoir,

déjà :
A l'envers c'est à dire de bas en haut,
C'est normal puisque au moment de "coller" ta ligne tu l'insères toujours en "A15" et tu lui demandes de décaler les autres lignes vers le bas
Selection.Insert Shift:=xlDown     


ce qui signifie que ta ligne "15" initiale... si elle contient déjà de la mise en forme...se retrouve en dernière position de ton tableau....avec des bordures.

Lorsque tu constates des comportements "anormaux" dans tes codes.... Active le ScreenUpdating ( = true) puis execute ton code en mode pas à pas ( touche F8 de ton clavier). Cela te permettra de voir le déroulement de ton script et donc de comprendre ce qu'il fait....