Forum Clubic

Utilisation d'Excel

Bonjour,
J’aurais une question à propos d’Excel. En fait, je souhaiterais faire apparaître à l’écran une liste de calcul (ex : 23+10+10) dans une colonne, et faire apparaître le résultat dans une autre colonne (ex : =23+10+10)
|| Détail calcul || Total ||
|| 23+10+10 || 43 ||
Par avance merci.
Véna56

Et où est le problème ? :slight_smile:

dans la premiere cellule tu ecris =“23+10+10” 'entre guillemet, comme ça, c’est du texte, puis la cellelule d’a cote, 23+10+10, qui te fait l’operation
Edité le 07/11/2007 à 16:27

Et si tu ne veux pas voir les guillemets, tu tapes ’ (apostrophe, la touche 4 quoi) avant ton calcul :
'23+10+10

euh juste. Pas besoin de guillemets normalement.

Si tu tape


23+10+10 

il prendra ça comme du texte.

Pour qu’il fasse le calcul il faut tapper


=23+10+10

Merci pour vos réponses, mais je pense que j’ai dû mal m’expliquer : je voudrais indiquer plusieurs chiffres dans une première cellule(cellule A1), et avoir le calcul automatique dans une autre cellule (A2=cellule A1).
En fait pour tout expliquer j’ai des métrés à indiquer, et pour chaque ligne je peux avoir jusqu’à une vingtaine de chiffres (que je veux voir apparaître, donc là je n’indique pas le = devant), et à côté de chaque cellule avec les métrés, je souhaiterais que le calcul se fasse automatiquement, c’est-à-dire sans avoir à recopier les chiffres (formule du style = cellule précédente).
Par avance merci.

Je ne crois pas que ce soit possible en fonction “de base”

Va falloir faire de la fonction avancée. Le mieux serait à mon avis un petite macro qui va lire le contenu de la chaine de caractère (car la somme entre " " est une chaine de caractère et non plus une opération matematique, pour excel) pour en extraire les nombre et faire l’addition

Merci pour ta réponse, mais qu’est-ce que tu entends par une fonction avancée ? Peux-tu m’en dire un peu plus ?:jap:

une fonction avancée dans excel s’appelle une ‘macro’ et doit être réalisée en un langage de programmation qui s’appelle VBA.
c’est pas très compliqué mais demande tout de même une période d’apprentissage.
tu pourras trouver plein de sites ou livres qui en parlent et qui explique comment faire.
bon courage

Quandje parlais de fonction avancées je ne parlais pas forcément des macros, mais plutot des fonctions que l’on peut utiliser dans les formules de cellules.

Il est possible de mettre des traitement conditionnels (IF Then) des traitements de chaines de caractères dans une formule. Pour cela il suffit d’ouvrir l’outil “fonction” et de voir ce qui est utilisable.

Le truc c’est que tu as vite fait d’avoir une formule longue comme le bras, et dans ce cas une macro sera peut-etre plus pratique à mettre en oeuvre.

Principale différence entre la fonction et la macro:

La fonction se mettra à jour en temps réel en fonction du contenu des cellules traités
La macro doit être executé pour que le résultat soit mis à jour.

j’ai trouvé ceci, je pense que ça doit correspondre à ce que tu cherches.

bonjour,
Warphil, merci pour l’astuce, mais ce n’est pas exactement ce que je cherchais.
Mais je vais essayer de bidouiller qq chose avec les macros.
Si qq’un a une autre solution…
En attendant, merci pour vos réponses.:ane:

Pas de solution facile pour ce genre de cas, le mieux est de créer de toute pièces la formule qui t’intéresse au moment où la valeur de la cellule source change.
Pour cela, il suffit d’utiliser l’évènement change de worksheet, qu’on limite par programme à la colonne de saisie.
Un exemple avec la colonne 1 comme colonne de saisie, et la colonne 2 comme colonne de résulta :


Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column <> 1 Then Exit Sub
    
    If Target > "" Then Range(Target.Address).Offset(0,1).Formula = "=" & Target
End Sub

GCC, merci pour ta réponse, mais à vrai dire, je n’ai pas tout suivi…

Dans Excel, quand tu effectues une action, comme ouvrir ou fermer une feuille, changer la valeur d’une cellule, il se produit des évènements que tu peux détourner et utiliser à ta convenance.

Quand tu vas dans la partie Visual Basic, tu peux associer du code à chaque feuille.
Fais un double clic sur feuil1, puis choisis Worksheet (à la place de Général) et Change (à la place de déclarations).
Et colle le code ci dessus à l’intérieur du squelette qui va apparaître dans la fenêtre de code.

Cette fonction sera appelée automatiquement à chaque fois que tu feras une modification sur une cellule (la cellule en question est passée à la fonction sous le nom Target).

Ca fonctionne pourtant à merveille et ça semble bien correspondre à ta demande, à ceci près que tu demandes simplement d’afficher la formule sans le “=” devant.

Pour supprimer ce signe “=”, au lieu de mettre =formule comme dans l’exemple du lien de Warphill, tu mets une formule permettant de supprimer le premier caractère :
=DROITE(Formule;NBCAR(Formule)-1)

Après avoir fait un test sur Excel, la formule correspond à ce que je recherche, excepté le “NBCAR” : je voudrais avoir la formule en détail et non le nombre de caractères. As-tu la solutions ?
Par avance merci…

Tu es pourtant obligé d’utiliser NBCAR pour connaitre le nombre de caractères et pouvoir ne supprimer que le signe “=” !

Je ne sais pas si c’est “LA” solution, mais en tous les cas celle que je t’ai donnée en est une.
Edité le 09/11/2007 à 15:44