Utilisation de Range.Formula avec l'objet .Cells

Bonjour,

  • Pour un outil Excel, j'ai besoin d'effectuer une soustraction de cellules dans une autre donnant le résultat.
  • Par la suite j'ai besoin que l'on voit la formule lorsque l'on clique sur la cellule du résultat, c'est pourquoi j'ai pensé à un Range.Formula.
  • Or dans cette formule, 4 variables rentrent en compte: disons "a", "b" et "c" puis la variable "i" de ma boucle for.
For i = 1 To 10
    Range(Cells(i, a)).Formula = "=" & 2 * Cells(i, b) & "-" & Cells(i, c)  
Next i

Voici le message d'erreur:

La méthode 'Range' de l'objet '_Global' a échoué

Merci d'avance et bonne après-midi!

Bonsoir,

Un petit bout de code sans tête ni queue ne sert à rien. Soit il faut joindre un fichier modèle ou donner le code complet pour qu'on puisse voir les variables et leur valeurs.

Bonjour,

sans doute qu'une des variable sort des limites de la feuille.

eric

Bonjour,

Deux petites erreurs !

Range et Cells ne vont pas ensemble si il n'y a qu'une cellule indiquée :

Range(Cells(i, a))

donc, c'est soit ça :

Range(Cells(I, A), Cells(I, A)).Formula =...

soit ça :

Cells(I, A).Formula =...

"Formula" attend un String donc ce sont les adresses de cellule ou alors les valeurs de cellules mais ces dernières doivent contenir une adresse de cellule valide

For I = 1 To 10
    Cells(I, A).Formula = "=2*" & Cells(I, B).Address(0, 0) & "-" & Cells(I, C).Address(0, 0)
Next I

Super! Merci a tous et particulièrement à toi Theze !

J'ai donc effectué les deux modifications:

Range(Cells(I, A), Cells(I, A)).Formula =...

Ainsi que

Cells(I, B).Address(0, 0)

Et ça fonctionne!

En revanche (juste par curiosité) je me suis renseigné sur

.Address(0, 0)

et je n'ai pas bien compris a quoi il sert (surtout les paramètres 0 et 0).

Exécute cette proc pour mieux comprendre :

Sub Test()

    MsgBox "relative : " & Cells(1, 1).Address(0, 0)
    MsgBox "absolue : " & Cells(1, 1).Address ' ou .Address(1, 1)
    MsgBox "relative en ligne et absolue en colonne : " & Cells(1, 1).Address(0, 1)
    MsgBox "relative en colonne et absolue en ligne : " & Cells(1, 1).Address(1, 0)

End Sub

Merci beaucoup pour cette procédure "Test" !

Je ne connaissais pas, cela peut être très utile!

A bientôt.

Rechercher des sujets similaires à "utilisation range formula objet"