Re Bonjour Robert, Bonjour Jepi, le Forum
Je viens de faire le test du Fichier de notre Ami Robert avec la fameuse ligne désactivée...
Jepi, tu as de la chance, ce week-end en réseau à la maison j'ai de l'artillerie lourde pour les besoins de compatibilité de mon développement actuel :
Win XP S/P 2 / Office 97
Win ME / Office 2000
Win 2000 / Office 2000
Win XP S/P 1 / Office 2000
Win XP Pro S/P 2 / Office 2002
Win XP S/P 2 / Office 2003
Aucune de ces versions me fait le coup du bouton 'pansant' !! (voir définition de Robert lol)
Par contre de mémoire de BidouillouDeveloppeur, je me rappelle que j'avais eu une fois à batailler avec un bouton ActiveX sur feuille, mais il était ressorti que c'était plus un porblème de la machine (mémoire saturé, ou affichage... Nettoie bien tes 'tmp', car souvent un tas de 'mso..kekchose' se génère avec ces ActiveX...
Pour notre ami Robert, moi, je ferai ceci :
Option Explicit
Private Sub CommandButton1_Click() 'Bouton 'Enregistrer'
Dim s As Worksheet, c As Worksheet 'déclare les variable s et c (onglet Source et onglet Cible)
Dim dest As Range 'déclare la variable dest (destination)
Dim x As Byte, y As Byte 'déclare les variables x et y
Me.CommandButton1.TakeFocusOnClick = False
Set s = Me 'définit la variable s
Set c = ThisWorkbook.Sheets('Base') 'définit la variable c
Set dest = c.Range('A65536').End(xlUp).Offset(1, 0) 'définit la variable dest
dest = s.Range('C5').Value 'consommateur
dest.Offset(0, 1) = s.Range('F5').Value 'Nº matricule
dest.Offset(0, 2) = s.Range('C7').Value 'Date et Heure
y = 3 'définit la variable y
For x = 9 To 20 'boucle sur les lignes 9 à 20
dest.Offset(0, y) = s.Cells(x, 3).Value 'Qtés
dest.Offset(0, y + 1) = s.Cells(x, 4).Value 'Denrées
dest.Offset(0, y + 2) = s.Cells(x, 7).Value 'Total H.T.
y = y + 3 'redéfinit la variable y
Next x 'prochaine ligne de la boucle
dest.Offset(0, 39) = s.Range('G21').Value 'Prix Total
End Sub
On notera un peu plus 'd'aération' aussi, car tu sais Robert, c'est toléré de faire des identations et des sauts de lignes dans VBA, pour moi, qui rédige et lit des dizaines de centaines de lignes de codes, c'est le Nirvana quand c'est écrit comme ça.
Sinon ton code tient très bien la route, et donc il tourne sur toutes les version listées ci-dessus.
Bon Soirée
@+Thierry