Somme en tenant compte de différents formats

Bisses

XLDnaute Nouveau
Bonjour,
Dans une colonne, des cellules sont au format euros et d'autres au format francs. En fait je voudrais qu'Excel me donne le résultat des cellules en euros et juste en dessous, en francs. J'essaye avec somme.si mais je ne trouve pas la solution. Avez-vous une piste? Voici le fichier en attaché
 

Pièces jointes

  • Somme en tenant compte de différents formats.xlsm
    132.9 KB · Affichages: 45

Jocelyn

XLDnaute Barbatruc
Re : Somme en tenant compte de différents formats

Bonjour le Forum;
Bonjour Bisses,

hum hum pas vraiment simple car tes valeurs ne contiennent pas vraiment les FR et les € alors je suis passer par une colonne intermédiaire pour voir si le format des cellules contient ces différente valeurs

Voir fichier joint

Cordialement

EDIT Bonjour Dugenou, désolé pour la collision
 

Pièces jointes

  • Somme en tenant compte de différents formats.xls
    95.5 KB · Affichages: 50
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Somme en tenant compte de différents formats

Bonjour le fil, bonjour le forum,

Une proposition VBA avec le code ci-dessous (Module5) :
Code:
Public Sub Macro1()
Dim cel As Range 'déclare la variable cel (CELlule)
Dim tf As Double 'déclare la variable tf (Total Francs)
Dim te As Double 'déclare la variable te (Total Euros)

Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
For Each cel In ActiveSheet.Range("E4:E19") 'boucle sur toutes les cellules cel de la plage E4:E19
    If Mid(cel.NumberFormat, 5, 1) = "€" Then te = te + cel.Value 'si le cinquième caractère du format de la cellule est "€", définit le total te (te + la caleur de la cellule)
    If Mid(cel.NumberFormat, 5, 1) = "f" Then tf = tf + cel.Value 'si le cinquième caractère du format de la cellule est "f", définit le total tf (tf + la caleur de la cellule)
    ActiveSheet.Range("E21").Value = tf 'place le total des francs tf en E21
    ActiveSheet.Range("E22").Value = te 'place le total des francs te en E22
Next cel 'prochaine cellule de la boucle
Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
End Sub
Pour agir automatiquement il y a aussi du code sur les onglets concernés :
Code:
Option Explicit

Private Sub Worksheet_Activate()
Module5.Macro1 'lance la procédure "Macro1" du module "Module5"
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
'si le changement a lieu dans la plage E4:E19, lance la procédure "Macro1" du module "Module5"
If Not Application.Intersect(Target, Range("E4:E19")) Is Nothing Then Module5.Macro1
End Sub
Le fichier :
 

Pièces jointes

  • Bisses_v01.xlsm
    152.1 KB · Affichages: 40
  • Bisses_v01.xlsm
    152.1 KB · Affichages: 43
  • Bisses_v01.xlsm
    152.1 KB · Affichages: 48

Bisses

XLDnaute Nouveau
Re : Somme en tenant compte de différents formats

Bonjour à tous
Merci de vos réponses, mais juste encore un petit soucis ...
En E12, j'a passé du format Fr. au format euros. mais le résultat des euros en E22 n'a pas changé. La somme des euros devrait être incrémentée de 0.75. Est-ce possible de changer de format librement de E4 à E19 et que la somme fr. et euros s'adapte à ces changements de formats? Voici le fichier joint avec les mofifications
 

Pièces jointes

  • Bisses_v01.xlsm
    36.4 KB · Affichages: 37
  • Bisses_v01.xlsm
    36.4 KB · Affichages: 39
  • Bisses_v01.xlsm
    36.4 KB · Affichages: 38

Robert

XLDnaute Barbatruc
Repose en paix
Re : Somme en tenant compte de différents formats

Bonjour le fil, bonjour le forum,

Dans mon exemple la macro utilise les formats spécifiés dans l'exemple. Si tu veux que ça fonctionne, pour changer de format, il te faudra utiliser l'outil Reproduire la mise en forme du bandeau Acceuil...
 

Bisses

XLDnaute Nouveau
Re : Somme en tenant compte de différents formats

Yeeeeeeeeeeeeeeeeeeeeeeeeesssssssss! ça marche, trop génial!
Pour ce sujet, je pensais qu'un somme.si suffirait j'ai donc créé un fichier plus petit pour simplifier ma question.
N'étant pas habitué aux macros, serait-il possible d'adapter votre solution au fichier original que je joins à ce message.
Le calcul doit se faire sur les plages encadrées en rouge (D22-H23, D47-H48 etc)
Mille mercis!
 

Pièces jointes

  • Bisses_v02.xlsm
    268.5 KB · Affichages: 47

Robert

XLDnaute Barbatruc
Repose en paix
Re : Somme en tenant compte de différents formats

Bonjour le fil, bonjour le forum,

En pièce jointe la version 3 qui semble fonctionner correctement. J'ai rajouté le changement de format au Double-clic dans une cellule. La valeur alterne Francs/Euros à chaque double-clic...
Le code se trouve dans le Module5 et dans l'onglet Versements.
Le fichier :
 

Pièces jointes

  • Bisses_v03.xlsm
    304.9 KB · Affichages: 47

Bisses

XLDnaute Nouveau
Re : Somme en tenant compte de différents formats

Cher Robert,
FAN-TAS-TIQUE! et le coup du double-clic pour passer des francs aux euros, c'est la cerise sur le gâteau!
Sacré Excel, on en a toujours plus que ce que l'on demande.
Encore une question, comment faire pour passer ta macro dans le classeur original (en attaché)? j'ai essayé d'exporter le module 5 dans ce classeur justement (en annexe), les données ont l'air d'être bien en place mais ça ne fonctionne pas. Par le suite, j'aurais besoin de la macro dans un autre classeur encore (pour l'année 2013, 2014 etc), comment faire? Pour l'instant voici en attaché le classeur pour l'année 2012.


Merci infiniment, chaleureux messages
 

Pièces jointes

  • Casa Poldo - Gestion 2012.xlsm
    611.2 KB · Affichages: 57
  • Casa Poldo - Gestion 2012.xlsm
    611.2 KB · Affichages: 43
  • Casa Poldo - Gestion 2012.xlsm
    611.2 KB · Affichages: 47

Robert

XLDnaute Barbatruc
Repose en paix
Re : Somme en tenant compte de différents formats

Bonjour le fil, bonjour le forum,

En pièce jointe ton fichier modifié. Le code se trouve dans deux endroits, Module 5 et Feuil3(Versements). Pour le copier dans un autre fichier il te faut deux conditions :
• Que le fichier contienne un module nommé Module 5
• Que le fichier contienne un onglet nommé Versements
Tu copies tout le code du Module 5 du fichier source et tu le colles dans le Module 5 du fichier cible.
Tu copie tout le code du composant Feuil3(Versements) du fichier source et tu le colles dans le composant Feuilx(Versements) du fichier cible (x peut être différent de 3 à partir du moment où l'onglet a été renommé Versements).

Sinon il te faut modifier le code...
• remplacer dans la procédure Macro1() :

Code:
With Sheets("VERSEMENTS") 'prend en compte l'onglet "VERSEMENTS"
par :
Code:
With Sheets("nom_de_ton_onglet") 'prend en compte l'onglet "nom_de_ton_onglet"
• Remplacer dans le composant Feuil3(Versements) :
Code:
Module5.Macro1 'lance la procédure "Macro1" du module "Module5"
par :
Code:
nom_de_ton_module.Macro1 'lance la procédure "Macro1" du module "nom_de_ton_module"
Attention, il y a deux occurrences à modifier. Une dans la procédure Change, l'autre dans la procédure BeforeDoubleClick...
Le fichier :
 

Pièces jointes

  • Casa Poldo - Gestion 2012.xlsm
    647.7 KB · Affichages: 53
  • Casa Poldo - Gestion 2012.xlsm
    647.7 KB · Affichages: 50
  • Casa Poldo - Gestion 2012.xlsm
    647.7 KB · Affichages: 55

Bisses

XLDnaute Nouveau
Re : Somme en tenant compte de différents formats

Problème résolu en faisant des copier-coller dans les macros à partir de ton classeur au mien. Et donc, je ferai idem pour les autres classeur (a moins qu'il faille faire autrement?!). Merci encore:D . Ce message annule ma demande précédente.

Meilleures salutations
Bisses
 

Bisses

XLDnaute Nouveau
Re : Somme en tenant compte de différents formats

Bonjour,
Il y a un problème avec le fichier :
1.
A l’ouverture, la macro fonctionne bien à savoir le double-clic change le format euro à franc et vice versa et l’addition au bas de la plage se fait bien. Mais, dès que je change quelque chose dans une autre que celle des euros et des francs, l’addition ne se fait plus. Le changement de format via le double-clic fonctionne, mais le résultat en bas de tableau ne réagit pas. Par exemple, à l’ouverture du fichier, sans avoir rien changé encore, je double-clique sur la cellule H163 et tout fonctionne. Je vais ensuite en J172 et fais F2 pour voir la formule qui s’y trouve, je quitte cette cellule et je reviens en J172 et là, l’addition en bas de tableau ne fonctionne plus. Idem si j’insère une date en B164 ou que je change le poucentage en P1 etc … .
2.
Il faudrait que le format et les calculs qui se font de la plage B172 à L176, s’applique à toutes les autres, c’est-à-dire de B22 à B26, B47 à B51, B72 à B76 et ainsi pour les 11 petits tableaux.
Très cordialement
Bisses
 

Bisses

XLDnaute Nouveau
Re : Somme en tenant compte de différents formats

Bonjour,
Pour revenir plus brièvement sur le problème, dès que je modifie une cellule en dehors des cellules Euros ou francs, les additions ne se font plus.
Avec mes remerciements
Bisses
 

Pièces jointes

  • Fichier complet.xlsm
    617.2 KB · Affichages: 41
  • Fichier complet.xlsm
    617.2 KB · Affichages: 43
  • Fichier complet.xlsm
    617.2 KB · Affichages: 43

Bisses

XLDnaute Nouveau
Re : Somme en tenant compte de différents formats

Bonjour,
Plus de nouvelles en ce qui concerne mon fichier et le problème cité sur mon précédent message. Peut-être ne n'ai-je pas vu passé ta réponse? Suis toujours bloqué car les additions ne fonctionnent pas dès que je modifie une cellule en dehors de la plage D155 à H169 par exemple.
Merci de tes nouvelles
Avec mes remerciements
Bisses
 

Discussions similaires

Statistiques des forums

Discussions
312 500
Messages
2 089 007
Membres
104 003
dernier inscrit
adyady__