Range("A" & Rows.Count).End(xlUp).Row + 1

Bonsoir à vous tous

For scan3A80 = 3 To 3
If Range("L3") = "Clôturé" Then
 With Sheets(Range("D" & scan3A80).Value)
  [b] Derligne = .Range("A" & Rows.Count).End(xlUp).Row + 1[/b]
   Range("B" & scan3A80 & ":C" & scan3A80 & "," & "F" & scan3A80 & ":J" & scan3A80 & "," & "M" & scan3A80 & ":T" & scan3A80).Copy
   .Range("B" & Derligne).PasteSpecial Paste:=xlPasteValues
   .Range("B" & Derligne).PasteSpecial Paste:=xlPasteComments
  End With
    Else
    End If

Cette portion de code me permet de copier coller une ligne de cellules juste en dessous de la dernière dans ce genre ci :

24.06.2015 .............. ................ .................. ................... ...................

25.06 2015 ............. ................ ................... ................... ...................

26.06.2015 Dernier enregistrement ici en bas.

Cependant j'aurais aimé faire l'inverse, du genre : insérer une nouvelle ligne au dessus de la précédente et remplir cette ligne vide avec les cellules.

Genre

26.06.2015 Dernier enregistrement en haut et non en bas

25.06 2015 ............. ................ ................... ................... ...................

24.06.2015 .............. ................ .................. ................... ...................

23.06 2015 ............. ................ ................... ................... ...................

J'ai pensé à faire un Insert Shift:=xlDown en VBA mais je ne trouve pas comment détecter cette ligne vide.

Je vous remercie de m'avoir lu.

Bonjour

variable a écrit :

J'ai pensé à faire un Insert Shift:=xlDown en VBA mais je ne trouve pas comment détecter cette ligne vide.

Dans ce cas la variable Derligne contient le numéro de la 1ère ligne

Donc dans une version

Sub Test()
 Derligne = 2
  With Sheets(Range("D" & scan3A80).Value)
    For scan3A80 = 3 To 3
      If Range("L3") = "Clôturé" Then
        .Rows(Derligne).Insert
        Range("B" & scan3A80 & ":C" & scan3A80 & "," & "F" & scan3A80 & ":J" & scan3A80 & "," & "M" & scan3A80 & ":T" & scan3A80).Copy
        .Range("B" & Derligne).PasteSpecial Paste:=xlPasteValues
        .Range("B" & Derligne).PasteSpecial Paste:=xlPasteComments
      End If
    Next scan3A80
  End With
End Sub

Comme tu es sensé de connaitre le numéro de la 1ère ligne

Version où la première ligne a le numéro 2

Sub TestBis()
  With Sheets(Range("D" & scan3A80).Value)
    For scan3A80 = 3 To 3
      If Range("L3") = "Clôturé" Then
        .Rows(2).Insert
        Range("B" & scan3A80 & ":C" & scan3A80 & "," & "F" & scan3A80 & ":J" & scan3A80 & "," & "M" & scan3A80 & ":T" & scan3A80).Copy
        .Range("B2").PasteSpecial Paste:=xlPasteValues
        .Range("B2").PasteSpecial Paste:=xlPasteComments
      End If
    Next scan3A80
  End With
End Sub

Salut Banzai64

J'ai copié ton code dans la boucle d'origine et ca à marché du feu de Dieu.

If Range("L3") = "Clôturé" Then

 .Rows(2).Insert
  Range("B" & scan3A80 & ":C" & scan3A80 & "," & "F" & scan3A80 & ":J" & scan3A80 & "," & "M" & scan3A80 & ":T" & scan3A80).Copy
 .Range("B2").PasteSpecial Paste:=xlPasteValues
 .Range("B2").PasteSpecial Paste:=xlPasteComments

End If

Un grand merci

Rechercher des sujets similaires à "range rows count end xlup row"