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