Comment écrire =A1+B2 autrement, dans une cellule pas dans un programme ?

Bonjour,

Toujours les problèmes de syntaxe !

Je veux écrire dans une cellule en Z6 par exemple, la formule suivante = A1 + B2

Mais je veux écrire A1 et B2 sous forme de cells ou range et je bloque lamentablement...

Merci à tous

Bonjour,

Essaie du côté de la fonction INDIRECT

= INDIRECT(X1) + INDIRECT(X2)

X1 et X2 contenant le "range"

quoique tu explications est un peu laconique, mets si besoin un fichier excel simplifié

Bonjour

En fait je veux écrire par exemple B6 sous forme cellule de la 6ème ligne et de la 2ème colonne...

Voilà, voilà

Bonjour à tous,

Ce n'est pas parfaitement clair pour le moment mais c'est peut-être la fonction ADRESSE que vous cherchez :

=concatener("= ";adresse(6;2);" + ";adresse(1,1))

qui devrait renvoyer le texte : = $B$6 + $A$1

Edit : et avec substitue, on peut enlever les $ :

=SUBSTITUE(concatener("= ";adresse(6;2);" + ";adresse(1,1)), "$", "")

pour renvoyer : = B6 + A1

Cdlt,

Tu peux donc faire aussi

=decaler($A$1;6-1;2-1)

voire même avec INDEX sur toute la feuille

Bonjour

Imaginons, j'ai un tableau dont je connais la ligne d'origine qui a pour nom "Ligne_d_origine" et la colonne d'origine qui a pour nom "Colonne_d_origine"

Je voudrais écrire dans la formule : =SOMME ( cellule(Ligne_d_origine + 2, Colonne_d_origine + 5), cellule(Ligne_d_origine + 4, Colonne_d_origine + 1) )

Quelle syntaxe utiliser ?

Merci

Bonjour

En fait Ligne_d_origine n'est pas un nom, mais le nom d'une variable de type Byte, donc cela représente un chiffre.

Merci

Je comprends plus rien . On est bien sur excel ?

En tout cas, maintenant que vous avez précisé votre problème, il semble que la solution de Steelson soit la bonne :

=decaler(origine; 2; 5) + decaler(origine; 4; 1)

ensuite pour trouver origine :

=indirect(adresse(lorigine, corigine))

Sinon, on peut faire ceci :

=index(1:65000;lorigine + 2;corigine + 5) + index(1:65000;lorigine + 4;corigine + 1)

Cdlt,

Bonjour

Comment cela "ensuite", dans la cellule je ne peux mettre qu'une formule.

Merci

Non, c'est un erreur de langage. C'est un "ensuite" à interpréter comme un "avant cela" .

Ce que je voulais dire, c'est que si vous devez trouver origine, il faut remplacer origine dans la formule 1 par la formule 2.

Mais c'est bien un problème excel et non un problème VBA ?

=decaler(indirect(adresse(lorigine, corigine)); 2; 5) + decaler(indirect(adresse(lorigine, corigine)); 4; 1)

Bonjour

Je suppose que comme c'est un forum on ne peut pas continuer par téléphone afin de se simplifier les explications ?

Merci

Certains peuvent le faire mais moi je ne pratique pas l'appel téléphonique.

Je pense qu'on y arrive de toute façon mais parfois un bon exemple vaut mieux toutes les explications possibles...

Je suppose que comme c'est un forum on ne peut pas continuer par téléphone afin de se simplifier les explications ?

la meilleure façon de faire ...

mets si besoin un fichier excel simplifié

Bonjour 3GB

Bonjour

Bon je récapitule tout.

J'ai un tableau dont je connais : la valeur de la ligne d'origine, valeur Byte qui a pour nom Ligne_d_origine et la valeur de la colonne d'origine, valeur Byte qui a pour nom Colonne_d_origine. Par exemple si mon tableau va de la cellule "B3" à la "Z67", Ligne_d_origine vaut 3 et Colonne_d_origine vaut 2.

Je voudrais écrire une formule dans la cellule "A1" de ma feuille de calcul (donc pas dans le corps de mon programme) de telle sorte que dans cette cellule "A1" apparaisse la somme des deux cellules situées en Ligne_d_origine + 2, Colonne_d_origine + 5 et Ligne_d_origine + 4, Colonne_d_origine + 1.

Je ne veux évidemment pas mettre le nom des cellules directement car lorsque je déplacerai le tableau je veux que tout continue à fonctionner parfaitement sans rien avoir à reprogrammer...

J'espère que mes explications sont à peu près claires cette fois-ci.

Quelle formule dois-je mettre dans la cellule "A1" ?

Merci

oui mais un fichier serait à ce stade préférable y compris pour donner une réponse appropriée

je laisse 3GB répondre s'il sait faire sur cet énoncé

Bonjour Steelson ,

@Excel75011 : J'ai l'impression que les solutions sont déjà trouvées. Mais si j'étais vous, je mettrais mon tableau sous forme de tableau structuré pour simplifier les choses. Sans tableau :

=index(1:65000;lorigine + 2;corigine + 5) + index(1:65000;lorigine + 4;corigine + 1)

Avec tableau :

=index(TAB[NOMCOL6];ligne(TAB)+2) + index(TAB[NOMCOL2];ligne(TAB)+4)

où TAB est le nom du tableau, NOMCOL6 et NOMCOL2 le nom des colonnes visées.

Vous pourrez déplacer le tableau ou ses colonnes n'importe où, ça ira toujours.

petite édition après relecture...

Bonjour

Merci à tous cela fonctionne enfin.

Bon je récapitule tout avec la réponse !

J'ai un tableau dont je connais : la valeur de la ligne d'origine, valeur Byte qui a pour nom Ligne_d_origine et la valeur de la colonne d'origine, valeur Byte qui a pour nom Colonne_d_origine. Par exemple si mon tableau va de la cellule "B3" à la "Z67", Ligne_d_origine vaut 3 et Colonne_d_origine vaut 2.

Je voudrais écrire une formule dans la cellule "A1" de ma feuille de calcul (donc pas dans le corps de mon programme) de telle sorte que dans cette cellule "A1" apparaisse la somme des deux cellules situées en Ligne_d_origine + 2, Colonne_d_origine + 5 et Ligne_d_origine + 4, Colonne_d_origine + 1.

Je ne veux évidemment pas mettre le nom des cellules directement car lorsque je déplacerai le tableau je veux que tout continue à fonctionner parfaitement sans rien avoir à reprogrammer...

J'espère que mes explications sont à peu près claires cette fois-ci.

Quelle formule dois-je mettre dans la cellule "A1" ?

Et bien la formule est : =index(Nom_de_mon_tableau;2;5)+index(Nom_de_mon_tableau;4;1)

Encore merci !

Rechercher des sujets similaires à "comment ecrire autrement pas programme"