Sub Macro2()
Dim li As Integer 'déclare la variable li
Sheets('Feuil1').Select 'sélectionne l'onglet 'Feuil1'
li = Range('A65536').End(xlUp).Row + 1 'définit la variable li
'li est le numéro de la première cellule vide de la colonne A
'pour le déterminer, on part de la dernière cellule de la colonne A : A65536
'et on atteint la dernière cellule éditée en remontant : .End(xlup)
'on obtient le numéro de ligne : .Row
'et on ajoute 1 pour avoir la cellule juste en dessous (la première vide)
'si toute la colonne A est vide, li renvoit 2 car on considère que
'A1 va contenir la désignation de la donnée
'si tu tiens absolument à commencer la la ligne 1 tu peux aussi faire :
'If Range('A1') = '' Then'si la cellule A1 est vide
' li = 1
'Else'sinon
' li = Range('A65536').End(xlUp).Row + 1 'définit la variable li
'End If
'place les donnéees dans le tableau en fonction de la variable li
Range('A' & li) = dte 'ou Cells(li, 1) = dte (qui revient au même)
Range('B' & li) = prod 'ou Cells(li, 2) = prod (qui revient au même)
Range('C' & li) = fourn 'ou Cells(li, 3) = fourn (qui revient au même)
'comme tu vois je n'utilise pas Offset dans cet exemple
'car pour l'utiliser il faut sélectionner une cellule de base
'et le fait de selectionner en VBA est a bannir au maximum car il ralentit
'considérablement le code (merci @+Thierry)
End Sub