Problème formule somme

bonjour le forum,

Alors voilà, j'ai un problème plus que banal mais que je n'arrive pas à résoudre.

Alors tout simplement, j'ai une macro qui vient ajouter des nombres au fur et à mesure dans une même cellule de telle façon à obtenir

par exemple "10000+20000+50000" et ainsi de suite en A1 imaginons.

Mon problème est que je n'arrive pas à obtenir en A2 la somme des nombres situé en A1

J'ai essayé avec une macro fonction du style : sum = "=" & br où br = A1

J'ai essayé la fonction: =CONCATÉNER(B1,A1) avec B1 = "=" mais j'obtiens en A2 = "=10000+20000+50000"

Donc voilà si quelqu'un à une solution je suis preneur. Ou bien même s'il y a un autre chemin à suivre pour obtenir le même résultat.

Merci d'avance

Bonjour,

Range("A2").Formula = "=" & br

Cordialement.

Bonjour,

merci de prendre le temps de m'aider.

Je ne comprend pas comment je dois utiliser votre code.

Function sum(br As String) As Integer

Range("BM1").Formula = "=" & br

End Function

je l'ai mis sous cette forme la mais ca ne fonctionne pas.

Les nombres sont dans la colonne BM, le résultat doit s'afficher dans la colonne BN.

Merci

Tu affectes la formule à la cellule dans laquelle tu veux le résultat !

Bonjour

erreur

Bonjour,

tu nommes la cellule où tu as ton "10000+20000+50000" par exemple "total" et puis comme le dit Mferrand:

Sub eee()

Range("A2").Formula = "=" & [total]

End Sub

P.

Bonjour,

merci a vous tous,

mais désolé je ne comprend pas comment l'utiliser

j'ai bien crée un module où j'ai mis :

Sub eee()

Range("BN1").Formula = "=" & [Total]

End Sub

où j'ai nommé la cellule BM1, Total.

Mais que faire ensuite ? Désolé encore, ca me semble vraiment simple, mais je ne comprend pas.

Bonjour,

Il faut lancer la macro soit avec la petite fléche verte du développeur (pour essai) et ensuite avec un bouton

Comme ceci

P.

9braters.xlsm (12.19 Ko)

D'accord !! C'est bon j'ai enfin réussi pour la première ligne

Maintenant comment puis-je affecter cette macro à toute ma colonne ?

C'est à dire la somme des nombres en BM2 s'affiche en BN2 et idem pour BM3-BN3, 4, 5, 6, ... ?

Merci à vous tous en tout cas

Merci pour l'exemple patrick1957, je me sentais un peu perdu dans tant de simplicité de la part de VBA.

Bonjour,

pour essayer de résoudre mon problème j'ai essayé de faire une boucle :

Private Sub Worksheet_Change(ByVal Target As Range)

For i = 1 To 1000
If Cells(1 + i, 65) <> "" Then

Cells(1 + i, 66).Formula = "=" & Cells(1 + i, 65)

Else

Exit For

End If

Next

End Sub

Ca fonctionne si on ne prend pas en compte le fait que la macro ne s'arrête jamais.

Une solution ?

re,

le + simple est toujours d'envoyer ton fichier (sans les éventuelles données confidentielles) mais de structure identique surtout et il y aura bien l'une aou l'autre personne ici pour t'aider

P.

Comme si c'était fait !

Voici un exemple ultra simplifié mais c'est le principe.

En gros dès qu'une cellule vient à être modifiée, le calcul se lance.

Première idée : Peut-on restreindre "Worksheet_Change" à la colonne BM ?

Seconde idée : Comment faire pour sortir de cette boucle ?

Private Sub Worksheet_Change(ByVal Target As Range)

For i = 1 To 1000
If Cells(1 + i, 65) = "" Then

Exit For

Else

Cells(1 + i, 66).Formula = "=" & Cells(1 + i, 65)

End If

Next

End Sub

Ci joint le dossier exemple. Merci encore

4exemple-forum.xlsm (13.32 Ko)

Petit up pour ceux qui auraient loupé le fil ! Je bloque toujours sur cette boucle dans laquelle le "Exit For" ne fonctionne pas.

Merci !!

Bonjour,

pas la peine de recalculer les cellules qui n'ont pas été modifiées :

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim pl As Range, c As Range
    Set pl = Intersect(Target, Range("BM2:BM65000"))
    If Not pl Is Nothing Then
        Application.EnableEvents = False
        For Each c In pl
            ' si tu veux la formule
            Target.Offset(, 1).Formula = "=" & Target.Value
            ' si tu ne veux que le résultat
            'Target.Offset(, 1).Formula = Evaluate("=" & Target.Value)
        Next c
        Application.EnableEvents = True
    End If
End Sub

Qq chose m'échappe... Pourquoi utiliser l'évènement Change alors que tu dis remplir BM par macro ?

Autant le faire à ce moment là.

eric

Bonjour,

je relance ce topic car, alors que la macro fonctionnait bien depuis pas mal de temps, maintenant les lignes telles que

Target.Offset(, 1).Formula = "=" & Target.Value

ne fonctionnent plus, quelqu'un aurait une solution svp ?

Merci !

PS : Pour résumer, j'ai en A1 une suite de nombre telle que "10+20+30+40" et je veux obtenir en A2 ="100" !

Bonjour,

Quelle est la valeur dans Target ?

Target représente la cellule A1 dans mon exemple.

C'est comme écrire Cells(2,1).Formula = "=" & Cells(1,1)

Merci

Cela ne me dit pas la valeur contenue dans A1 !

PS : Pour résumer, j'ai en A1 une suite de nombre telle que "10+20+30+40" et je veux obtenir en A2 ="100" !

Le problème est que si j'exécute cette ligne de macro sur un nouveau fichier, aucun soucis, par contre sur mon fichier en question impossible !

Rechercher des sujets similaires à "probleme formule somme"