Value Vs Formula R1C1
Résolu/Fermé
ch_mika
Messages postés
188
Date d'inscription
lundi 19 janvier 2015
Statut
Membre
Dernière intervention
16 décembre 2022
-
29 juin 2015 à 04:05
ch_mika Messages postés 188 Date d'inscription lundi 19 janvier 2015 Statut Membre Dernière intervention 16 décembre 2022 - 29 juin 2015 à 15:48
ch_mika Messages postés 188 Date d'inscription lundi 19 janvier 2015 Statut Membre Dernière intervention 16 décembre 2022 - 29 juin 2015 à 15:48
A voir également:
- Formular1c1 vs formula
- Udp vs tcp - Guide
- Dual core vs i5 ✓ - Forum Processeur
- Max vs netflix - Accueil - Streaming
- Psp 2000 vs 3000 ✓ - Forum PSP
- Ahci vs raid ✓ - Forum Disque dur / SSD
3 réponses
ch_mika
Messages postés
188
Date d'inscription
lundi 19 janvier 2015
Statut
Membre
Dernière intervention
16 décembre 2022
70
Modifié par ch_mika le 29/06/2015 à 15:48
Modifié par ch_mika le 29/06/2015 à 15:48
Merci à tous pour vos éclairages, c'est très apprécié.
Je mets le post en résolu.
Je mets le post en résolu.
JvDo
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
858
29 juin 2015 à 06:42
29 juin 2015 à 06:42
Bonjour,
si tu avais mis
Au bout du compte,
Quand tu saisis une formule avec des références à d'autres cellules, la différence entre les propriétés Formula, FormulaLocal, FormulaArray, FormulaR1C1, FormulaR1C1Local et Value est plus criante.
Essaye ce code en mode pas à pas et met des espions sur chaque cellule et sur ActiveCell.
cordialement
si tu avais mis
ActiveCell.FormulaR1C1 = "=""michaël"""tu aurais eu une formule c'est à dire que
ActiveCell.HasFormulaaurait été à VRAI.
Au bout du compte,
ActiveCell.valueest la même dans les 2 cas.
Quand tu saisis une formule avec des références à d'autres cellules, la différence entre les propriétés Formula, FormulaLocal, FormulaArray, FormulaR1C1, FormulaR1C1Local et Value est plus criante.
Essaye ce code en mode pas à pas et met des espions sur chaque cellule et sur ActiveCell.
Sub test()
[B37] = "=""toto"""
[B38] = "titi"
[B39] = [B37] & [B38]
[B40] = Range("B37").FormulaR1C1
[B41] = Range("B37").Value
ActiveCell.Formula = "=B37&B38"
End Sub
cordialement
ch_mika
Messages postés
188
Date d'inscription
lundi 19 janvier 2015
Statut
Membre
Dernière intervention
16 décembre 2022
70
29 juin 2015 à 07:18
29 juin 2015 à 07:18
Tout d'abord, merci d'avoir répondu.
Ensuite, si je comprends bien (excuse moi d'ailleurs si je n'ai pas bien saisi, je suis novice) les 2 formules sont identiques et on peut utiliser les deux, seule la syntaxe permet de savoir si on a affaire à une formule ou une valeur c'est bien ça ?
Car j'ai mis des espions sur les différentes cellules de ton code et j'ai effectivement vu les formules, ensuite j'ai repris ton code en jouant avec value et formulaR1C1 et le résultat était le même.
Par exemple :
donne exactement le même résultat dans les 3 cellules ainsi que dans la barre de formule.
Ensuite, si je comprends bien (excuse moi d'ailleurs si je n'ai pas bien saisi, je suis novice) les 2 formules sont identiques et on peut utiliser les deux, seule la syntaxe permet de savoir si on a affaire à une formule ou une valeur c'est bien ça ?
Car j'ai mis des espions sur les différentes cellules de ton code et j'ai effectivement vu les formules, ensuite j'ai repris ton code en jouant avec value et formulaR1C1 et le résultat était le même.
Par exemple :
[B37] = "=""toto"""
Range("B38").Value = "=""toto"""
Range("B39").FormulaR1C1 = "toto"
donne exactement le même résultat dans les 3 cellules ainsi que dans la barre de formule.
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 247
Modifié par eriiic le 29/06/2015 à 08:14
Modifié par eriiic le 29/06/2015 à 08:14
Bonjour,
Ensuite, si je comprends bien (excuse moi d'ailleurs si je n'ai pas bien saisi, je suis novice) les 2 formules sont identiques et on peut utiliser les deux, seule la syntaxe permet de savoir si on a affaire à une formule ou une valeur c'est bien ça ?
Pas du tout.
Si ta formule est =A1+B1 et que le résultat est 5 :
.value => 5
et .formula => "=A1+B1"
Soit tu veux voir la valeur, le résultat, soit tu veux voir la formule (qui est identique à la valeur si c'est une constante que tu as saisis)
Note que tu as aussi .formulaLocal qui permet de voir la formule en français telle que tu l'as saisies.
eric
Ensuite, si je comprends bien (excuse moi d'ailleurs si je n'ai pas bien saisi, je suis novice) les 2 formules sont identiques et on peut utiliser les deux, seule la syntaxe permet de savoir si on a affaire à une formule ou une valeur c'est bien ça ?
Pas du tout.
Si ta formule est =A1+B1 et que le résultat est 5 :
.value => 5
et .formula => "=A1+B1"
Soit tu veux voir la valeur, le résultat, soit tu veux voir la formule (qui est identique à la valeur si c'est une constante que tu as saisis)
Note que tu as aussi .formulaLocal qui permet de voir la formule en français telle que tu l'as saisies.
eric
ch_mika
Messages postés
188
Date d'inscription
lundi 19 janvier 2015
Statut
Membre
Dernière intervention
16 décembre 2022
70
>
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
29 juin 2015 à 15:42
29 juin 2015 à 15:42
Bonjour eriiic,
Ha ok, je comprends le concept maintenant et effectivement, j'avais mal compris précédemment. Dur dur les débuts lol
Merci pour ton éclairage en tout cas.
Ha ok, je comprends le concept maintenant et effectivement, j'avais mal compris précédemment. Dur dur les débuts lol
Merci pour ton éclairage en tout cas.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 29/06/2015 à 08:31
Modifié par michel_m le 29/06/2015 à 08:31
Bonjour
Généralement, VBA est fait pour donner des valeurs et non des formules que l'on devrait pouvoir faire "à la main"; toutefois, écrire des formules en VBA peut s'avérer intéressant dans certains cas. Par ex: les valeurs en amont changent souvent et la formule écrite par VBA permet de répondre sans avoir à relancer la macro
L'enregistreur de macro, bien pratique, ne fait qu'enregistrer ce que tu fais sur excel d'où des lignes avec des formula.R1C1. pour des automatismes simples cela suffit largement.
Question syntaxe , Jvdo (bonjour) t'as bien montré la différence
ci dessous un lien très pédagogique pour apprendre presque tranquilement le VBA (basé sur XL2000)
http://www.info-3000.com/vbvba/cours/index.php
Michel
Généralement, VBA est fait pour donner des valeurs et non des formules que l'on devrait pouvoir faire "à la main"; toutefois, écrire des formules en VBA peut s'avérer intéressant dans certains cas. Par ex: les valeurs en amont changent souvent et la formule écrite par VBA permet de répondre sans avoir à relancer la macro
L'enregistreur de macro, bien pratique, ne fait qu'enregistrer ce que tu fais sur excel d'où des lignes avec des formula.R1C1. pour des automatismes simples cela suffit largement.
Question syntaxe , Jvdo (bonjour) t'as bien montré la différence
ci dessous un lien très pédagogique pour apprendre presque tranquilement le VBA (basé sur XL2000)
http://www.info-3000.com/vbvba/cours/index.php
Michel
ch_mika
Messages postés
188
Date d'inscription
lundi 19 janvier 2015
Statut
Membre
Dernière intervention
16 décembre 2022
70
29 juin 2015 à 15:47
29 juin 2015 à 15:47
Bonjour,
Les macros ont effectivement leur limite, c'est pour ça que je me lance dans VBA où la seule limite sera mon imagination.
Merci pour le lien, il me sera très utile c'est certain.
Les macros ont effectivement leur limite, c'est pour ça que je me lance dans VBA où la seule limite sera mon imagination.
Merci pour le lien, il me sera très utile c'est certain.