Convertion vba/formule

cracos30 Messages postés 81 Date d'inscription vendredi 17 avril 2009 Statut Membre Dernière intervention 12 avril 2013 - 7 déc. 2009 à 15:14
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 7 déc. 2009 à 21:21
Bonjour,
Quelqu'un pourrait il me dire comment on écrirait ce code vba dans une cellule :

Sheets("Relev01").Cells(1, 1).Value = Sheets("CPT1").Range("_SoldeWebCPT1").Offset(0, 2).Value + Sheets("CPT2").Range("_SoldeWebCPT1").Offset(2, 1).Value

Merci

10 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
7 déc. 2009 à 16:15
Salut
La cellule 1,1 (c'est à dire A1) reçoit pour valeur la somme des cellules :
- de la feuille "CPT1", cellule nommée (*) "_SoldeWebCPT1" : la valeur prise en compte se trouve sur la même ligne (0) et 2 colonnes à droite (paramètres de Offset)
Si "_SoldeWebCPT1" se trouve en D14 par exemple, la cellule utilisée est en D16
- de la feuille "CPT2", cellule nommée (*) "_SoldeWebCPT1" : la valeur prise en compte se trouve 2 lignes en dessous et 1 colonne à droite (paramètres de Offset)
Si "_SoldeWebCPT1" se trouve en D14 par exemple, la cellule utilisée est en F15

(*) nommée avec menu Insertion/Nom/Définir

Regarde l'aide de chaque fonction pour en connaitre la signification + fais des essais pour voir comment cela s'applique.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cracos30 Messages postés 81 Date d'inscription vendredi 17 avril 2009 Statut Membre Dernière intervention 12 avril 2013
7 déc. 2009 à 16:43
Salut, Merci pour la réponse
Mais je n'ai pas du fourmuler ma question corectement. Ce qui me pose probléme n'est pas le vba, mais l'écriture des formules directement sur la feuille : ex =SOMME(etc..
Je sais le faire en prog, mais j'essaie de faire des actions sans passer par des Macros. D'ordinaire c'est le contraire, mais je suis venu à Excel par l'autre porte. Je fouille parci parlà, mais je ne trouve pas de tuto extra. (qui pourrait me donner, par exemple en fonction d'un mot la syntaxe de la formule, même l'aide n'est pas extra, pas structurée). J'ai trouver la fonction DECALER en autre mais je perd mon temps a courir sur le net. Déjà svoir comment donner un nom a une cellule....Je cherche...
Si tu as un tuto...?
Merci
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 déc. 2009 à 16:46
Bonjour,cracos30

Quentendstu exactement par :

Quelqu'un pourrait il me dire comment on écrirait ce code vba dans une cellule


Et principalement par ce que l'ai soulign dans cette citation ?
Voudrais-tu dire que tu cherches à mettre dans une cellule de la feuille de calcul une formule (ou une fonction personnalisée capable de faire ce que fait le code que tu as montré plus haut ?
Si tel est le cas : impossible car la seule cellule pouvant être modifiée par ce biais serait celle contenant la formule ou appelant la fonction personnalisée (et elle recevrait la valeur retournée). Seule l'utilisation de VBA (et hors fil de calcul) permet de manipuler d'autres cellules.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 déc. 2009 à 16:49
Je viens de lire ton second message (ta réponse).
C'est bien ce que je craignais ...
Une question, toutefois :
Où (dans quelle cellule exactement) entendais-tu mettre une telle formule de substitution ? Dans Sheets("Relev01").Cells(1, 1) ou ailleurs ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cracos30 Messages postés 81 Date d'inscription vendredi 17 avril 2009 Statut Membre Dernière intervention 12 avril 2013
7 déc. 2009 à 17:10
Bon voilà,
j'ai trouvé comment donner un nom (manuellement?dit-on), à une cellule. Je l'ai appellé 'truc'. Je voudrais récupérer la valeur dans la cellule 'Y ou Z' la valeur qui se trouve dans la cellule décalée de 2 case par rapport à 'truc'. J'ai essayé :
=DECALER("truc";0;2), mais ça ne marche pas.
0
cracos30 Messages postés 81 Date d'inscription vendredi 17 avril 2009 Statut Membre Dernière intervention 12 avril 2013
7 déc. 2009 à 17:18
J'ai trouvé, merci. Mais si vous avez connaissance d'un endroit sympa pour avoir des infos, je suis preneur, Merci encore
0
cracos30 Messages postés 81 Date d'inscription vendredi 17 avril 2009 Statut Membre Dernière intervention 12 avril 2013
7 déc. 2009 à 17:38
Bon, encore moi
maintenant j'essaie en étant sur une autre feuille: =Feuil1!DECALER(truc;0;2) ne marche pas
(Se transforme en =Classeur1! ...
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 déc. 2009 à 17:43
truc étant une plage nommée pour tout le classeur, tu n'as pas à définir la feuille ...
0
cracos30 Messages postés 81 Date d'inscription vendredi 17 avril 2009 Statut Membre Dernière intervention 12 avril 2013
7 déc. 2009 à 17:46
Merci!
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
7 déc. 2009 à 21:21
Par contre, cela veut dire que ton énoncé est faux : Il ne peut pas y avoir 2 cellules (ou Range) portant le même nom au sein d'un même classeur.
"_SoldeWebCPT1" sur la feuille "CPT1" et
"_SoldeWebCPT1" sur la feuille "CPT2" : Ce n'est pas possible

Ensuite, pour remplacer Offset, je ne vois pas comment ça pourrait se faire ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Rejoignez-nous