Convertion vba/formule

Signaler
Messages postés
81
Date d'inscription
vendredi 17 avril 2009
Statut
Membre
Dernière intervention
12 avril 2013
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
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)
Messages postés
81
Date d'inscription
vendredi 17 avril 2009
Statut
Membre
Dernière intervention
12 avril 2013

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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
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.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
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 ?
Messages postés
81
Date d'inscription
vendredi 17 avril 2009
Statut
Membre
Dernière intervention
12 avril 2013

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.
Messages postés
81
Date d'inscription
vendredi 17 avril 2009
Statut
Membre
Dernière intervention
12 avril 2013

J'ai trouvé, merci. Mais si vous avez connaissance d'un endroit sympa pour avoir des infos, je suis preneur, Merci encore
Messages postés
81
Date d'inscription
vendredi 17 avril 2009
Statut
Membre
Dernière intervention
12 avril 2013

Bon, encore moi
maintenant j'essaie en étant sur une autre feuille: =Feuil1!DECALER(truc;0;2) ne marche pas
(Se transforme en =Classeur1! ...
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
truc étant une plage nommée pour tout le classeur, tu n'as pas à définir la feuille ...
Messages postés
81
Date d'inscription
vendredi 17 avril 2009
Statut
Membre
Dernière intervention
12 avril 2013

Merci!
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
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)