Rechercher : dans
Par :

Excel : Modification du signe d'un nombre

Dernière réponse le 17 jun 2008 à 15:50:02 alainjjb, le 17 jun 2008 à 09:20:40 
 Signaler ce message aux modérateurs

Bonjour,
peut-on, sous Excel modifier le signe d'un nombre sans ajouter une nouvelle colonne ? Explications : je prépare un tableau de suivi des mouvements sur compte pour les trésoriers d'une association basé sur le tableau croisé dynamique . Ce dernier implique de signer les montants. Signe que je ne voudrais pas faire saisir par les trésoriers mais conditionner par la nature de la ligne correspondante (Recette / Dépense/...). Peut-on le faire simplement : le trésorier saisit 100 et s'il s'agit d'une ligne dépense enregistrer -100.

Merci d'avance

Alain

Configuration: Windows XP
Firefox 2.0.0.14

Meilleures réponses pour « Excel : Modification du signe d'un nombre » dans :
Excel - Signature numérique VoirL’utilisation de code VBA nécessite un niveau de sécurité faible voire moyen, mais dans ce cas il faut activer les macros à chaque ouverture de fichier. Il est possible de remédier à ces désagréments en créant sa propre signature numérique pour...
Générer des nombres aléatoires efficacement avec rand() VoirGénérer des nombres aléatoires efficacement avec rand() Vous avez peut-être remarqué qu'en C, en utilisant la fonction rand() de la bibliothèque standard, vous obtenez des résultats décevants, trop souvent les mêmes. Prenons un exemple, vous...
Formules Excel de base VoirVoici quelques formules de bases qui sont faciles à réaliser et qui peuvent donner un peu de vie à une feuille Excel ! Pour cette astuce, on supposera que l’on veut que le résultat s’affiche dans la cellule B10 et on se servira principalement des...
Représentation des nombres entiers et réels VoirReprésentation d'un nombre dans un ordinateur On appelle représentation (ou codification) d'un nombre la façon selon laquelle il est décrit sous forme binaire. La représentation des nombres sur un ordinateur est indispensable pour que celui-ci...

1

gbinforme, le 17 jun 2008 à 09:44:08

Bonjour

C'est possible de le faire avec une macro événementielle toute simple mais pour cela il faudrait nous dire en fonction de quoi on reconnaît une dépense car il faut bien pouvoir distinguer avec la saisie d'une autre cellule de la même ligne le négatif du positif.
Toujours zen

Répondre à gbinforme

2

alainjjb, le 17 jun 2008 à 10:02:25

Bonjour Gbinforme,
c'est la valeur de la colonne "Nature" (Recette / Dépense) de cette même ligne qui conditionne le signe du montant saisi. Si la colonne "Nature" pour cette ligne est valorisée à "Recette" le montant saisi est positif, si cette même colonne est valorisée à "Dépense" le montant est négatif.

Merci

Alain

Répondre à alainjjb

3

gbinforme, le 17 jun 2008 à 10:31:08

Bonjour

Comme tu ne me dis pas les colonnes concernées, je t'ai fait la macro paramétrable à placer dans la feuille de saisie (voir mode d'emploi, si nécessaire)

Private Sub Worksheet_Change(ByVal sel As Range)
Dim colm As Integer ' colonne montant
Dim colt As Integer ' colonne type
    colm = Asc("D") - 64    ' remplacer D par colonne montant
    colt = Asc("B") - 64    ' remplacer B par colonne type
    If sel.Column = colm And Cells(sel.Row, colt) = "Dépense" Then
        Application.EnableEvents = False
        sel.Value = sel.Value * -1
        Application.EnableEvents = True
    End If
End Sub

Toujours zen

Répondre à gbinforme

4

alainjjb, le 17 jun 2008 à 11:12:46

Super et merci beaucoup,

... et surtout reste zen car je suis igniare en Excel. Comment faire en sorte que cette macro que tu m'as envoyée
soit exécutée à chaque saisie d'un montant.

Merci encore de m'accorder de ton temps

Alain

Répondre à alainjjb

5

gbinforme, le 17 jun 2008 à 11:32:00

Bonjour

C'est une macro événementielle qui se déclenche automatiquement sans rien faire d'autre que la saisie lors de chaque saisie et modifie la colonne montant paramétrée.

Tu suis le lien du mode d'emploi que je t'ai mis pour la copier sur la feuille VBA de saisie et tu remplaces les bonnes colonnes à l'endroit précisé en gras

    colm = Asc("D") - 64    ' remplacer D par colonne montant
    colt = Asc("B") - 64    ' remplacer B par colonne type

Toujours zen

Répondre à gbinforme

6

alainjjb, le 17 jun 2008 à 11:44:40

Gbinforme tu es très fort !!!

MERCI beaucoup. Ca marche. Excellent.

J'ai effectivement suivi ton mode d'emploi et miracle : CA MARCHE !!!

MERCI Encore


Alain

Répondre à alainjjb

7

alainjjb, le 17 jun 2008 à 12:25:43

Gbinforme,

je ne comprends plus rien ... L'informatique a ses mystères !!! Ca ne marche plus d'un seul coup. J'ai essayé dans un autre classeur : Idem. Que s'est-il donc passé ?
Ce que je fais :
Outil -> Macros -> Visual Basic Editor -> Affichage -> Explorateur de projets -> Data (nom de ma feuille) sur laquelle je double clique - Coller (ta macro) -> modification des colonnes -> Enregistrer -> Fermer et retourner à microsoft Excel
Est-ce OK ?

Alain

Répondre à alainjjb

8

alainjjb, le 17 jun 2008 à 14:08:04

Cette fois je ne t'embête plus. Après avoir recommencer tout à zéro, ça marche. Ah ! L'informatique.

Merci encore

Alain

Répondre à alainjjb

9

 gbinforme, le 17 jun 2008 à 15:50:02

Bonjour

Ah ! L'informatique.

Elle ne pardonne pas les erreurs : c'est 0 ou 1 pas peut-être !

Heureux de t'avoir aidé !
Toujours zen

Répondre à gbinforme