Propriété formula [Résolu]

Signaler
Messages postés
56
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
6 juillet 2006
-
Messages postés
56
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
6 juillet 2006
-
Bonjour,
J'ai le code suivant :
<hr size="2" width="100%">Sub essai()
Dim a, b As Integer
a = 8
b = 3
c = 8
d = 4

Cells(8, 2).Formula = "=(cells(a,b))+(cells(c,d))"
End Sub
<hr size="2" width="100%">Je prend les variables a, b, c, d car ces valeurs changent tous le temps dans mon véritable code, et j'aimerais savoir comment écrire une formule avec des variables comme celles ci.
Merci
A voir également:

17 réponses

Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 juin 2021
155
Bonjour

Essaye (code en direct du forum peut-être buggé)
Cells(8, 2).Formula = "="+chr$(asc("A")+a)+format(b)+"+"+chr$(asc("A")+c)+format(d)

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
Messages postés
56
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
6 juillet 2006

C'est déjà mieu car la cellule B8 reconnais des cellules, mais ce ne sont pas les bonnes :
au lieu de reconnaitre les cellules C8 et D8 il reconnais les cellules I3 et I4.

C'est bizzare comme truc qd même Je pense qu'on y est presque quand même, je réfléchi de mon coté pour savoir si il n'y a pas moyen de trouver les bonnes cellules !
Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 juin 2021
155
Bonjour

Met :
Cells(8, 2).Formula = "=(cells("&a&","&b&"))+(cells("&c&","&d&"))"

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
Messages postés
56
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
6 juillet 2006

Je suis désolé mais ça ne fonctionne pas, meme avec les espaces entre les &. N'y aurais-il pas une erreure dans le code ?
Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 juin 2021
155
Bonjour

Peux tu regarder la valeur de Formula ? (en pas à pas)
si erreur, laquelle (message)?

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
Messages postés
56
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
6 juillet 2006

L'erreur : Excel m'écris un #NOM? dans la cellule B8 et sa valeur dans la zone de texte en haut est : =(cells(8;3))+(cells(8;4)).

En fait il ne reconnait pas les cellules cells(8,3) comme cellule C8, et ne reconnais pas la cellule cells(8,4) comme la cellule D8.

Donc je ne peux pas regarder la valeur de formula.

Merci pour ton aide.
Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 juin 2021
155
Bonjour

et si tu inverse les valeurs de a-b, c-d ?

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
Messages postés
56
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
6 juillet 2006

Si je met le code suivant :

Sub essai()
Dim a, b, c, d As Integer
a = 3
b = 8
c = 4
d = 8
Cells(8, 2).Formula = "=" + Chr$(Asc("A") + a) + Format(b) + "+" + Chr$(Asc("A") + c) + Format(d)

End Sub

B8 reconnais la cellule D8 au lieu de la cellule C8, et la cellule E8 au lieu de la cellule D8.
Ce qui donne dans la zone de texte en haut : =D8+E8 au lieu de =B8+D8
Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 juin 2021
155
Bonjour

On avance :

Sub essai()
Dim a, b, c, d As Integer
a = 3
b = 8
c = 4
d = 8
Cells(8, 2).Formula = "=" + Chr$(Asc("A") + a-1) + Format(b) + "+" + Chr$(Asc("A") + c-1) + Format(d)

End Sub

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 juin 2021
155
Bonjour

On avance :

Sub essai()
Dim a, b, c, d As Integer
a = 3
b = 8
c = 4
d = 8
Cells(8, 2).Formula = "=" + Chr$(Asc("A") + a-1) + Format(b) + "+" + Chr$(Asc("A") + c-1) + Format(d)

End Sub

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
Messages postés
56
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
6 juillet 2006

Alors maintenant la cellule B8 a bien C8+D8 comme valeur, donc cette partie fonctionne :-)

Mais il reste un bug malheuresement .... En fait j'ai mis 1 comme valeur pour C8, et 2 comme valeur pour D8, mais le résultat de cette opération (qui devrait donner 3), me donne 03/01/00, donc me donne une date quoi :-/

Je ne pense pas que ce soit normal.Plus qu'un bug à corriger et on y arrive ! En tt cas merci beaucoup pour ton aide c'est vraiment super simpa :-)
Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 juin 2021
155
Bonjour

Regarde les proporiétés de la cellule (format).

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
Messages postés
56
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
6 juillet 2006

Le format de ma cellule est date dans propriété. Donc il faut que je mette ce code pour que ça fonctionne :

Sub essai()
Dim a, b, c, d As Integer
a = 3
b = 8
c = 4
d = 8
Cells(8, 2).Formula = "=" + Chr$(Asc("A") + a - 1) + Format(b) + "+" + Chr$(Asc("A") + c - 1) + Format(d)
Cells(8, 2).NumberFormat = "General"

End Sub

Est-ce normal ? Si oui je te remercie beaucoup et je valide la réponse !
Messages postés
56
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
6 juillet 2006

J'ai quand même accepté la réponse car après tout le code fonctionne ! Merci beaucoup pour m'avoir aidé jursqu'au bout c'est vraiment simpa !

J'ai une dernière petite question si tu as le temps de répondre :

Pour mettre un $ devant C8 ($C8) pour que la valeur reste toujours la
même (même lorsque j'étire la cellule), où se place le $ dans le code ?
Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 juin 2021
155
Bonjour

Soit tu as définit cette valeur de prop, soit excel l'a trouvé automatiquement.
Dans tout les cas, redéfinit la valeur de cette prop pour les cellules (colonnes lignes) directepment par excel, cela devrait marcher.
Sinon, ta méthode est viable aussi, mais plus lourde.

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 juin 2021
155
Bonjour

Cells(8, 2).Formula = "=$" + Chr$(Asc("A") + a - 1) +"$"+ Format(b) + "+" + Chr$(Asc("A") + c - 1) + Format(d)

Voila.

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
Messages postés
56
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
6 juillet 2006

Excuse moi de te répondre si tard mais le PC que j'avais au bureau ne répondait pas (encore une fois).

Donc je voulais te remercier d'être resté si longtemps pour m'aider à résoudre mon problème, grâce à cette solution je vais bien pouvoir avancer dans mon travail

Merci encore

@+++ !!!