Ajouter/Sauvegarder des valeurs issues d'un calcul précédent.

Fermé
sophie60400 Messages postés 24 Date d'inscription jeudi 27 décembre 2018 Statut Membre Dernière intervention 6 octobre 2019 - 27 déc. 2018 à 10:56
sophie60400 Messages postés 24 Date d'inscription jeudi 27 décembre 2018 Statut Membre Dernière intervention 6 octobre 2019 - 5 oct. 2019 à 18:36
Bonjour,

Je suis à la recherche d'une formule qui me permettrait de résoudre le problème que je présente dans le fichier excel que je joins à ce message.
J'ai essayé quelques formules mais sans succès.
Merci d'avance,
Cordialement,

https://www.cjoint.com/c/HLBj2lqEVYX
A voir également:

20 réponses

Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
27 déc. 2018 à 11:05
Bonjour,

Oui mais ce que tu demandes ne peut se faire que par VBA si tu as quelques notions !
0
sophie60400 Messages postés 24 Date d'inscription jeudi 27 décembre 2018 Statut Membre Dernière intervention 6 octobre 2019
27 déc. 2018 à 11:12
Bonjour,

Oui en cherchant sur les formus, j'ai cru comprendre qu'il faille passer par VBA. Maintenant, je ne suis pas encore experte dans ce domaine, et j'avoue avoir quelques difficultés à utiliser VBA.
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
27 déc. 2018 à 11:24
Re,

alors clic droit sur l'onglet de ta feuille Feuil1/Visualiser le code et colle ce code, lorsque tu sélectionneras ta plage B4:B8 et Supp la plage s'éffacera et E9 s'additionnera

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Nouveau As Single
If Not Intersect(Target, Range("B4:B8")) Is Nothing Then
If Application.Sum([B4:B8]) = 0 Then
With Application
.EnableEvents = False
.Undo
[E9] = [E9] + [B9]
[B4:B8] = ""
.EnableEvents = True
End With
End If
End If
End Sub

0
sophie60400 Messages postés 24 Date d'inscription jeudi 27 décembre 2018 Statut Membre Dernière intervention 6 octobre 2019
27 déc. 2018 à 11:36
Merci beaucoup ! ça fonctionne !
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
27 déc. 2018 à 11:46
Re,

si tu as besoin d'explication sur le code fait signe, en attendant je passe le statut de la discussion en résolu
0
sophie60400 Messages postés 24 Date d'inscription jeudi 27 décembre 2018 Statut Membre Dernière intervention 6 octobre 2019
27 déc. 2018 à 13:09
D'accord.
Merci pour ton aide.
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
27 déc. 2018 à 13:15
Re,

j'ai laissé traîner cette ligne dans le code qui ne sert à rien, supprime la
Dim Nouveau As Single
0
sophie60400 Messages postés 24 Date d'inscription jeudi 27 décembre 2018 Statut Membre Dernière intervention 6 octobre 2019
27 déc. 2018 à 13:56
ok
0
sophie60400 Messages postés 24 Date d'inscription jeudi 27 décembre 2018 Statut Membre Dernière intervention 6 octobre 2019
27 déc. 2018 à 14:30
La formule fonctionne parfaitement. Toutefois, j'aimerais apporter quelques modifications.
En effet, avec cette formule, le résultat obtenu en B9 s'ajoute à la valeur de la cellule E9 qui correspond au total précédent. Cet ajout est réalisé lorsque je supprime le contenu de la plage [B2:B8].
Désormais, je souhaiterais que l'ajout soit réalisé lorsque je supprime le contenu de la plage [A2:A8] (les valeurs qui s'ajoutent sont toujours celles de la plage [B2:B8]).

Cordialement,

https://www.cjoint.com/c/HLBnEnAVg1X
0
sophie60400 Messages postés 24 Date d'inscription jeudi 27 décembre 2018 Statut Membre Dernière intervention 6 octobre 2019
27 déc. 2018 à 17:55
La formule fonctionne parfaitement. Toutefois, j'aimerais apporter quelques modifications.
En effet, avec cette formule, le résultat obtenu en B9 s'ajoute à la valeur de la cellule E9 qui correspond au total précédent. Cet ajout est réalisé lorsque je supprime le contenu de la plage [B2:B8].
Désormais, je souhaiterais que l'ajout soit réalisé lorsque je supprime le contenu de la plage [A2:A8] (les valeurs qui s'ajoutent sont toujours celles de la plage [B2:B8]).

Cordialement,

https://www.cjoint.com/c/HLBnEnAVg1X
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
27 déc. 2018 à 18:07
Re,

voila je suis de retour
remplace l'ancien code par celui ci

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2:A8")) Is Nothing Then
If Application.WorksheetFunction.CountA([A2:A8]) = 0 Then
With Application
.EnableEvents = False
.Undo
[E9] = [E9] + [B9]
[A2:B8] = ""
.EnableEvents = True
End With
End If
End If
End Sub


0
sophie60400 Messages postés 24 Date d'inscription jeudi 27 décembre 2018 Statut Membre Dernière intervention 6 octobre 2019
27 déc. 2018 à 18:32
Re,

Je viens d'ajouter ta formule dans mon nouveau tableau. Je pense que les formules que j'ai rentrées dans les cellules, au préalable, viennent affecter cette dernière car le résultat que je trouve en C13 ne correspond pas à la somme de la plage [D3:D7] et de la précédente somme en C13.

https://www.cjoint.com/c/HLBrGcdj8pX

Merci d'avance,
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
27 déc. 2018 à 18:54
Re,
Ton tableau n'a rien à voir avec la demande initiale et tes formules ne sont pas bonnes et tu as des références circulaires colonne D, c'est à dire que tu te sert de résultat dans le même résultat.

Colonne B tu saisis un n° qui te sert de diviseur en colonne C, Bizarre!

et Colonne F avec cette formule qui ne veut rien dire que veux tu faire
MAX(2;C3*(D3+C$15)*E3)

0
sophie60400 Messages postés 24 Date d'inscription jeudi 27 décembre 2018 Statut Membre Dernière intervention 6 octobre 2019
27 déc. 2018 à 20:02
Je m'excuse pour ces imprécisions. Voici le tableau original que j'ai construis. C'est un tableau qui pourrait me servir pour une bonne gestion financière aux jeux simples pour les courses de chevaux. J'ai sûrement des formules un peu "bizarres" mais j'ai essayé de m'en sortir toute seule. En voyant les intitulés de chaque colonne, tu comprendras peut être mieux ce que je désire faire.

voici ce que je souhaiterais réaliser :
- Dans la cellule C13, je souhaiterais avoir la somme de la plage [F3:F7] qui s'ajoute à chaque nouvelle partie (sujet de mon premier message). Comme tu peux le voir, le tableau se remplit à chaque fois qu'on indique les côtes. A chaque nouvelle partie, on les efface et on en rajoute de nouvelles. Idem pour les gains. Je souhaite obtenir en C14, la somme de la plage [G3:G7] qui se cumule au fur et à mesure des nouvelles parties.

J'espère être assez claires et précises dans mes explications.
Merci de ta compréhension,

https://www.cjoint.com/c/HLBtbRXWjNX
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
28 déc. 2018 à 09:47
Bonjour,

cellule C13 tu as une formule =F8 qui ne pose pas de problème et que l'on remplace par le code VBA, mais en cellule C14 tu as cette formule =SI(B3="";0;I3*F3) qui sera effacée par le code VBA, et dans tes dernières explications post 16 en C14, la somme de la plage [G3:G7] qui se cumule au fur et à mesure des nouvelles parties ce qui est contradictoire avec la formule.
à contrôler, en attendant remplace le code par celui ci et on en reparle

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A3:B7")) Is Nothing Then
If Application.WorksheetFunction.CountA([A3:B7]) = 0 Then
With Application
.EnableEvents = False
.Undo
[C13] = [C13] + [F8]
[C14] = [C14] + [G8]
[A3:B7] = ""
.EnableEvents = True
End With
End If
End If
End Sub

0
sophie60400 Messages postés 24 Date d'inscription jeudi 27 décembre 2018 Statut Membre Dernière intervention 6 octobre 2019
28 déc. 2018 à 09:59
Merci pour tes explications.
J'essaye ça !
0
sophie60400 Messages postés 24 Date d'inscription jeudi 27 décembre 2018 Statut Membre Dernière intervention 6 octobre 2019
28 déc. 2018 à 12:27
Bonjour,

J'ai inséré le code VBA. Ça fonctionne.
Merci pour ton aide.
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
28 déc. 2018 à 13:00
Re,

si tes attentes sont satisfaites, passe le statut de la discussion en résolu
0
sophie60400 Messages postés 24 Date d'inscription jeudi 27 décembre 2018 Statut Membre Dernière intervention 6 octobre 2019
28 déc. 2018 à 13:45
J'ai encore une question. Je souhaiterais faire un "bouton" qui efface automatiquement les valeurs des plages [B3 : B7] et [I3 : I7] quand j'appuie dessus. J'ai essayé de faire une macro mais lorsque je l'affecte au bouton, le code VBA ne semble plus fonctionner car les sommes présentes en F8 et G8 ne s'ajoutent pas dans les cellules C13 et C14.
Merci d'avance pour ton aide,
Cordialement,
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
28 déc. 2018 à 13:52
Re,

je pense que c'est une bonne idée et j'y ai pensé, un bouton qui active le code que l'on vient de faire, efface les données en B, I et peut être en A non !

et es ce qu'il ne serait pas sage de confirmer l'action avec un mot de passe avant de tout effacer et le cumul.

Je serais de retour dans la soirée
0
sophie60400 Messages postés 24 Date d'inscription jeudi 27 décembre 2018 Statut Membre Dernière intervention 6 octobre 2019
28 déc. 2018 à 14:03
Tu as raison. Le bouton doit pouvoir effacer les colonnes A, B et I (les données qui sont rentrées manuellement).
Par contre, je ne pense pas qu'il soit nécessaire d'ajouter un mot de passe.
Bien cordialement,
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
Modifié le 28 déc. 2018 à 15:49
Re,

Tu commences par effacer le code dans les propriétés Private Sub Worksheet_Change
de ta feuille
Ensuite sur ta feuille de calcul tu dessines un bouton ActiveX CommandButton1/double clic pour accéder au VBA et tu colles ce code pour avoir ce genre de résultat


Private Sub CommandButton1_Click()
If Application.WorksheetFunction.CountA([A3:B7]) = 10 Then
[C13] = [C13] + [F8]
[C14] = [C14] + [G8]
Union([A3:B7], [I3:I7]) = ""
End If
End Sub

0
sophie60400 Messages postés 24 Date d'inscription jeudi 27 décembre 2018 Statut Membre Dernière intervention 6 octobre 2019
28 déc. 2018 à 21:07
Re,

J'ai essayé d'appliquer tes consignes mais ça ne fonctionne pas. Pourtant, j'ai effacé le code VBA en cliquant sur "visualiser le code". J'ai effacé le code, crée un bouton activex, double clic sur celui-ci pour coller le code que tu proposes dans le message précédent.

Peut être que je m'y prends mal ...

Voici le tableau avec le bouton que j'ai crée et le code que j'ai collé.

https://www.cjoint.com/c/HLCugHJ21XX

Cordialement,
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
29 déc. 2018 à 09:28
Re,

Regarde en G8 tu as cette formule =SI(B8="";"";(F8*B8))
alors que tu devrais avoir =SOMME(G3:G7)

j'ai ajouté une boite de dialogue à ton code, remplace le par celui ci

Private Sub CommandButton1_Click()
If Application.WorksheetFunction.CountA([A3:B7]) = 10 Then
[C13] = [C13] + [F8]
[C14] = [C14] + [G8]
Union([A3:B7], [I3:I7]) = ""
Else
MsgBox "des cellules entre A3 & B7 ne sont pas renseignées.", , "Procédure abandonnée !"
End If
End Sub
0
sophie60400 Messages postés 24 Date d'inscription jeudi 27 décembre 2018 Statut Membre Dernière intervention 6 octobre 2019
29 déc. 2018 à 13:17
Bonjour,

Le code fonctionne ! Cependant, il fonctionne quand toutes les cases des plages [A3:A7] et [B3:B7] sont renseignées.
Or, une partie ne renseigne pas forcément toutes les cases mais peut aller de 1 à 5 cases.

Cordialement,
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
29 déc. 2018 à 13:33
Re,

je te complète le code dans la soirée
0
sophie60400 Messages postés 24 Date d'inscription jeudi 27 décembre 2018 Statut Membre Dernière intervention 6 octobre 2019
29 déc. 2018 à 13:34
ok. Merci
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
29 déc. 2018 à 17:39
Re,

voila regarde comme cela
Private Sub CommandButton1_Click()
If Application.WorksheetFunction.CountA([A3:B7]) > 0 Then
If MsgBox("Etes-vous certain de vouloir archiver les données avant de les supprimer", vbYesNo, "Demande de confirmation") = vbYes Then
[C13] = [C13] + [F8]
[C14] = [C14] + [G8]
Union([A3:B7], [I3:I7]) = ""
End If
Else
MsgBox "Aucune valeur a archiver n'a été touvée.", , "Procédure abandonnée !"
End If

End Sub
0
sophie60400 Messages postés 24 Date d'inscription jeudi 27 décembre 2018 Statut Membre Dernière intervention 6 octobre 2019
29 déc. 2018 à 20:19
Re,

Tout fonctionne correctement.
Je te remercie chaleureusement pour ton aide !!
Bien cordialement,
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
29 déc. 2018 à 20:53
Re,

Ne trouves tu pas plus sympathique avec les boites de dialogues !

comme tes attentes sont satisfaites, je passe le statut de la discussion en résolu.
0
sophie60400 Messages postés 24 Date d'inscription jeudi 27 décembre 2018 Statut Membre Dernière intervention 6 octobre 2019
30 déc. 2018 à 17:18
Bonjour,

Oui l'idée des messages est très bien.
Par contre, après plusieurs utilisations, je me suis aperçue d'un problème concernant la cellule C14. Contrairement à la cellule C13 où le cumul de la mise se fait correctement, en C14, le système affiche des valeurs erronées et apparemment aléatoires.

Je reviens donc vers toi pour savoir si tu as une idée pour résoudre ce problème.
Je t'envoie le nouveau tableau.
https://www.cjoint.com/c/HLEqr4qtIBX

Merci d'avance,
Bien cordialement,
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
30 déc. 2018 à 17:34
Re,

Non tout fonctionne parfaitement à condition que colonne colonne I tu saisisses des valeurs et C14 additionne correctement les valeurs de J8
0
sophie60400 Messages postés 24 Date d'inscription jeudi 27 décembre 2018 Statut Membre Dernière intervention 6 octobre 2019
30 déc. 2018 à 20:40
Re,

Je joins à ce message, un exemple où l'on voit que la cellule C14 n'a pas le bon cumul. Le problème est juste au niveau de la cellule C14. C13 fonctionne parfaitement.
Bien cordialement,

https://www.cjoint.com/c/HLEtLRNfIuX
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
31 déc. 2018 à 08:01
Re,

Ah oui j'ai vu, mais cela ne vient pas du code mais de tes formules colonne F
=SI(C3="";"";MAX(2;C3*(D3+C$15)*E3))
ou MAX ne s'utilise pas comme cela, pour tester place une apostrophe devant cette ligne du code pour la neutraliser
'Union([A3:B7], [I3:I7]) = ""

active le code et tu verras que le 2 devient 3 ce qui donne bien 27 colonne J

déjà commence par contrôler cette formule colonne F

après on peut remédier au problème en inversant deux lignes du code comme cela
Private Sub CommandButton1_Click()
If Application.WorksheetFunction.CountA([A3:B7]) > 0 Then
If MsgBox("Etes-vous certain de vouloir archiver les données avant de les supprimer", vbYesNo, "Demande de confirmation") = vbYes Then
[C14] = [C14] + [J8]
[C13] = [C13] + [F8]
Union([A3:B7], [I3:I7]) = ""
End If
Else
MsgBox "Aucune valeur a archiver n'a été touvée.", , "Procédure abandonnée !"
End If
End Sub
0
sophie60400 Messages postés 24 Date d'inscription jeudi 27 décembre 2018 Statut Membre Dernière intervention 6 octobre 2019
31 déc. 2018 à 14:01
Bonjour,

La nouvelle formule fonctionne !!
Merci pour ton aide !
0
sophie60400 Messages postés 24 Date d'inscription jeudi 27 décembre 2018 Statut Membre Dernière intervention 6 octobre 2019
5 oct. 2019 à 18:36
Bonjour,

Je suis toujours sur mon tableau et j'essaye de l'améliorer. Cependant, je n'arrive pas à exécuter une action.
Ci-joint, le tableau avec les explications.
Si tu as une idée ....
merci d'avance,
https://www.cjoint.com/c/IJfqHzLFgiX
0