IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Inverser chaque termes d'une addition


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 55
    Par défaut Inverser chaque termes d'une addition
    Bonjour,

    Comment, en VBA, peut on inverser le signe de chacun des termes d'une formule d'addition/soustraction ?

    Par exemple en A1 j'ai une formule =3+6+34-31
    Je voudrais retrouver en A2( par exemple) =-3-6-34+31

    Merci par avance

  2. #2
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2019
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2019
    Messages : 53
    Par défaut
    Bonsoir à Tous
    Bonsoir Alain

    Je te propose ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Sub decoupe_02()
     
    tab_1 = Split(Range("A12").Formula, "+")
     
    For i = 0 To UBound(tab_1)
        If InStr(1, tab_1(i), "-") Then
            tab_2 = Split(tab_1(i), "-")
            For a = 0 To UBound(tab_2)
                If a = 0 Then
                    'Cells(13, 2 + i) = "-" & tab_2(a)
                    ma_formule = ma_formule & "-" & tab_2(a)
                Else
                    'Cells(13, 2 + i + y) = tab_2(a)
                    ma_formule = ma_formule & "+" & tab_2(a)
                End If
                y = y + 1
            Next
            x = UBound(tab_2)
        Else
            If InStr(1, tab_1(i), "=") Then
                'Cells(13, 2 + i + x) = "-" & Replace(tab_1(i), "=", "")
                ma_formule = ma_formule & "-" & Replace(tab_1(i), "=", "")
            Else
                'Cells(13, 2 + i + x) = "-" & tab_1(i)
                ma_formule = ma_formule & "-" & tab_1(i)
            End If
        End If
    Next
    Range("G13") = "=" & ma_formule
    End Sub
    Possibilité de ce même code pour ta question précédente

    Eric

  3. #3
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 590
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 590
    Par défaut
    bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.FormulaR1C1=replace(replace(replace(ActiveCell.FormulaR1C1,"-","$"),"+","-"),"$","+")

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 55
    Par défaut
    Citation Envoyé par Thumb down Voir le message
    Thumb down
    Merci beaucoup, mais si le 1er chiffre est naturellement positif c'est à dire sans +, il ne devient pas négatif
    Cordialement

  5. #5
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 590
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 590
    Par défaut
    Effectivement je n'y ai pas pensé désolé ;je reprends ma copie

    Edite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.FormulaR1C1=Replace(Replace(Replace(replace(replace(ActiveCell.FormulaR1C1," ",""),"=","=" & iif(isNumeric(mid(replace(ActiveCell.FormulaR1C1," ",""),2,1)),"+","")), "-", "$"), "+", "-"), "$", "+")

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 55
    Par défaut
    [QUOTE=Thumb down;11768919]Effectivement je n'y ai pas pensé désolé ;je reprends ma copie

    Merci beaucoup
    cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2016] extraire chaque terme d'une formule
    Par alain16 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 30/09/2021, 14h40
  2. [Débutant] Inverser chaque terme d'un vecteur
    Par Justine0341 dans le forum MATLAB
    Réponses: 2
    Dernier message: 11/04/2018, 20h08
  3. Réponses: 1
    Dernier message: 05/05/2009, 00h05
  4. [vba]un onglet tabstrip pour chaque terme d' une colonne
    Par CIBOOX dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 12/03/2007, 10h33
  5. importance de l'ordre des termes d'une addition
    Par naz dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/08/2006, 16h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo