Difficile à dire avec simplement le code et peu d'explications… Si vous pouviez joindre le fichier svp.
En attendant, je vois que vous avez utilisé, à la fin, row.Cells(colonne).
Faites attention avec cette instruction, .Cells est assez surprenante, et meme si en théorie votre range n'est qu'une ligne, il se peut qu'en écrivant ceci vous référenciez en fait les lignes en dessous. Il vaut mieux toujours expliciter .Cells(ligne, colonne).
Essayez le code ci-après et dites-moi si vous observez un changement
' Ajouter une colonne pour la clé
keyCol = ptRange.Columns.Count + 1
ptRange.Cells(5, keyCol).Value = "Clé (%)"
For Each row In ptRange.Rows
If row.row >= 5 Then
volumeCol = 5
If IsNumeric(row.Cells(1, volumeCol).Value) Then
row.Cells(1, keyCol).Value = row.Cells(1, volumeCol).Value / totalVolume
End If
End If
Next row
Pour info, dans l'édition de message le bouton </> permet de formater le code correctement.