Bonjour
La méthode Array ne fonctionne que si le nombre de colonnes est le même entre array et cible.
Tu peux éventuellement replacer la ligne par
.DataBodyRange.Rows(.DataBodyRange.Rows.Count).Resize(, .ListColumns.Count - 1) = Array("Pomme", "France", 17, 14.55)
Car cela concerne la dernière colonne mais pour ma part je n'aime pas cette façon de procéder lié à l'ordre des colonnes qui peut évoluer.
Je préfère me baser sur les titres de colonnes qu'Excel trouvera toujours
De même, la référence à la feuille est inutile : il vaut mieux partir du nom du tableau : Excel le trouvera
[TableVenteFruits].Listobject
ou
Range("TableVenteFruits").Listobject