Salut Michel, le Forum
Tout dépend de tes connaissances en VBA, car la solution la plus simple sera de faire un petit peu de programmation.
Exemple Simple, éléments nécessaires :
Une Feuille : "Facture"
Une Feuille : "Report"
Dans la Feuille "Facture"
Une cellule nommée : "FactureNum"
Une cellule nommée : "Client"
Une cellule nommée : "Date"
Une cellule nommée : "Montant"
Pour nommer une cellule, la sélectionner, puis Menu/Insertion/Nom => Définir
Dans la Feuille Report tu peux indiquer les libellés d'entêtes de colonnes de "A1 à D1" et aussi foramter tes cellules comme tu le veux (Colonne "C" en format Date)
En suite tu fais tourner cette macro :
Sub Reporting()
Dim L As Integer
Dim Item as Variant
Dim i As Byte
i = 1
L = Sheets("Report").Range("A65536").End(xlUp).Row + 1
For Each Item In Array("FactureNum", "Client", "Date", "Montant")
If Sheets("Facture").Range(Item) = "" Then
MsgBox "Le Champs " & Item & " est vide"
Exit Sub
End If
Sheets("Report").Cells(L, i) = Sheets("Facture").Range(Item)
i = i + 1
Next
End Sub
On notera que la condition "If" permet d'annuler la procédure si un des champs n'est pas rempli. (Non obligatoire, et peut être supprimée de If à End If)
Voilà grosso modo, le moyen le plus simple en VBA, en utilisant des cellules nommées, ce qui simplifie bien le travail sur une Array
Bonne programmation !
@+Thierry