Merci beaucoup Thierry, cela va beaucoup m'aider. En plus, cela m'a permi de comprendre un peu la programmation sous excel.
J'ai modifié un peu la mise en page afin de recopier les titres descellules (nom, prénom,etc)
Voici le script :
Option Explicit
Sub ReportImpaye()
Dim Cible As Range
Dim MaPlage As Range
Dim LigneSource As Long
Dim LigneCible As Long
Dim RowCible As Long
Dim Cell As Range
Dim FormuleD As String
Dim FormuleE As String
Dim SousToto As Range
Dim Titre As Range
Set Cible = Sheets(3).Range("A2:H65536")
With Cible
.ClearContents
.Font.Bold = False
End With
RowCible = Sheets(1).Range("A65536").End(xlUp).Row
Set MaPlage = Worksheets(1).Range("H2:H" & RowCible)
LigneCible = Sheets(3).Range("A65536").End(xlUp).Row + 2
For Each Cell In MaPlage
If Cell.Value = "" Then
LigneSource = Cell.Row
Sheets(3).Range("A" & LigneCible & ":F" & LigneCible).Value = _
Sheets(1).Range("A" & LigneSource & ":F" & LigneSource).Value
Sheets(3).Range("G" & LigneCible).Value = _
Sheets(1).Range("I" & LigneSource).Value
LigneCible = LigneCible + 1
End If
Next
If LigneCible = 2 Then GoTo Sortie
Sheets(3).Range("A" & LigneCible + 1).Value = "Total en attente"
FormuleD = "=SUM(D2
" & LigneCible - 1 & ")"
Sheets(3).Range("D" & LigneCible + 1).Value = FormuleD
FormuleE = "=SUM(E2:E" & LigneCible - 1 & ")"
Sheets(3).Range("E" & LigneCible + 1).Value = FormuleE
Set SousToto = Sheets(3).Range("A" & LigneCible + 1 & ":E" & LigneCible + 1)
With SousToto
.Font.Bold = True
End With
Sheets(3).Range("A" & 3 & ":F" & 3).Value = _
Sheets(1).Range("A" & 2 & ":F" & 2).Value
Sheets(3).Range("G" & 3).Value = "Remarque"
Set Titre = Sheets(3).Range("A" & 3 & ":G" & 3)
With Titre
.Font.Bold = True
End With
Exit Sub
Sortie:
MsgBox "Il n'y a pas de facture impayée"
End Sub
Encore merci.
Si un jour tu as un souci en PHP, tu peux m'envoyer un email, et si je peux t'aider, ce sera avec plaisir.
a+
Gaëtan