Condition sur cellule - Devise

Julien.D

XLDnaute Junior
Bonjour,

je suis novice sur excel, j'ai un peu de mal pour résoudre un problème de condition sur une cellule!
Dans une liste déroulante (feuille 2: présentation de la société), je choisis le nom d'une devise; cette devise se trouve dans une plage que j'ai créée (Réf.Devise) pour obtenir ma liste déroulante. jusque là pas de problème!

lorsque je veux faire correspondre la devise choisie, avec la cellule correspondante de la colonne 4 de ma table de donnée (Compo.Devise) qui comporte la valeur en Euro de la devise j'ai un problème... #'Présentation Société'!C17#

Fichiers en annexe.

Ma devise de référence est l'Euro, toutes les valeurs que j’intègre dans mes feuilles suivantes (Feuille 3, 4, ...) sont donc en Euro; je souhaite faire changer ces valeurs de l'Euro vers la devise choisie dans la cellule #'Présentation Société'!C17#.

si quelqu'un peut m'aider je suis preneur!!!

Merci d'avance

Julien
 

Pièces jointes

  • Business Plan.xlsx
    34.2 KB · Affichages: 60

Julien.D

XLDnaute Junior
Re : Condition sur cellule - Devise

Bonsoir mapomme,

en effet la méthode ne garde aucune trace de l'euro!!!
une fois la devise changée, si l'on réinitialise l'euro la macro converti simplement la devise en euro en gardant la valeur de la devise précédemment convertie.

Julien
 

Pièces jointes

  • Copie de Business Plan v2c.xlsm
    48.1 KB · Affichages: 49

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Condition sur cellule - Devise

Re,

Un fichier avec la dernière présentation. Le code a sensiblement été modifié. la mise à jour est automatique quand on change de devise ou quand on modifie un montant en euro.
 

Pièces jointes

  • Business Plan v4.xlsm
    50.3 KB · Affichages: 61
  • Business Plan v4.xlsm
    50.3 KB · Affichages: 54
  • Business Plan v4.xlsm
    50.3 KB · Affichages: 64

Julien.D

XLDnaute Junior
Re : Condition sur cellule - Devise

Bonjour Mapomme,


la dernière macro fonctionne sur bien, c'est vraiment ce que je cherchais!
comme je l'ai dis plus haut, je ne suis pas un as d'Excel, mais j'essaie de progresser autant que faire ce peu.
aussi, afin de gagner en autonomie, pourrais tu m'expliquer comment faire pour faire évoluer la macro.

comme tu peux le voir dans le fichier en annexe, j'ajoute petit à petit de nouvelles feuilles; c'est feuilles contiennent également des cellules dont je voudrais également changer le format en fonction de la devise choisie.

peux tu m'indiquer comment intervenir sur la macro pour effectuer cette action, que se soit sur les feuilles déja créées, mais également sur les futurs?

Merci d'avance.

Julien
 

Pièces jointes

  • Business Plan v4.xlsm
    58.5 KB · Affichages: 66
  • Business Plan v4.xlsm
    58.5 KB · Affichages: 53
  • Business Plan v4.xlsm
    58.5 KB · Affichages: 56

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Condition sur cellule - Devise

Bonsoir Julien.D :)

[...] comme tu peux le voir dans le fichier en annexe, j'ajoute petit à petit de nouvelles feuilles; c'est feuilles contiennent également des cellules dont je voudrais également changer le format en fonction de la devise choisie.

peux tu m'indiquer comment intervenir sur la macro pour effectuer cette action, que se soit sur les feuilles déja créées, mais également sur les futurs? [...]

J'ai mis plus de commentaires dans mes codes pour mieux les expliquer.

Les codes se trouvent à 3 endroits:
  1. dans des modules de code de nom Module1, Module2,... (un module par feuille de tableaux).
  2. pour chaque feuille de tableaux, un peu de code dans le module de code de la feuille pour l'évènement change (détection d'un changement d'un des montants en euro dans les tableaux de la feuille considérée) .
  3. pour la feuille "Présentation Société" un peu de code son module de code pour l'évènement change (détection de changement de devise).


Dans le fichier joint, j'ai rajouté une feuille de tableau nommée -> Micro-Usine Tablo2 pour décrire comment la prendre en compte au niveau du code. Dans cette feuille, les deux tableaux sont l'un en dessous de l'autre.

Au niveau de l'environnement VBA, pour le projet en cours:

  • j'ai rajouté un module que j'ai nommé Module 2
  • j'y ai copié l'ensemble du code de Module1
  • j'ai modifié le nom de la macro en Convertir2
  • j'ai modifié la constante CellulesSource (j'ai laissé dans la feuille la cellule I4 pour montrer comment j'ai construit la liste des cellules sources - voir astuce dans le code commenté)
  • j'ai modifié la constante CellulesCible (j'ai laissé dans la feuille la cellule I7 pour montrer comment j'ai construit la liste des cellules cibles - voir astuce dans le code commenté)
  • j'ai modifié le contenu de la variable FeuilTableau - Set FeuilTableau = Sheets("Micro-Usine Tablo2")



  • Puis j'ai copié le code du module de la feuille "Micro-Usine PM6054 - TB1000F"
  • Je l'ai collé dans le module de la feuille "Micro-Usine Tablo2"
  • dans l'instruction If intersect(.... , j'ai collé la liste des adresses des cellules dans le range (attention le séparateur est ici la virgule !)
  • et j'ai remplacé Convertir1 par convertir2


  • Ensuite, je suis allé dans le code de la feuille "Présentation Société"
  • j'ai rajouté une ligne vide sous l'instruction Convertir1
  • et dans cette ligne vide, j'ai tapé : Convertir2


et pis c'est tout! :rolleyes:

En espérant que cela puisse t'aider...
 

Pièces jointes

  • Business Plan v5.xlsm
    66.7 KB · Affichages: 70
Dernière édition:

Julien.D

XLDnaute Junior
Re : Condition sur cellule - Devise

Merci mapomme,

je comprend mieux comment faire; en gros je dois créer un nouveau module pour chaque nouvelle feuille avec le code ad-oc dans la feuille concernée... je vais y arriver!

mais imaginons que pour j'ai une cellule cible je n'ai pas de cellule source!!!

je suis occupé à créer un tableur excel dont la finalité est de générer un business plan:
- certaine données de base sont en euro (il s'agit pour la plupart de matériel en euro)
- d'autres données seront introduite dans le tableur par les utilisateurs dans leur devise nationale il n'y aura pas de valeurs source pour ces données.
- le tout devant générer un Business plan dans la devise cible.

aussi je souhaite pouvoir convertir des cellules dans la devise cible sans qu'il existe de cellule source.

Comment faire?

Merci


Julien
 

Julien.D

XLDnaute Junior
Re : Condition sur cellule - Devise

Bonsoir Julien.D :)



J'ai mis plus de commentaires dans mes codes pour mieux les expliquer.

Les codes se trouvent à 3 endroits:
  1. dans des modules de code de nom Module1, Module2,... (un module par feuille de tableaux).
  2. pour chaque feuille de tableaux, un peu de code dans le module de code de la feuille pour l'évènement change (détection d'un changement d'un des montants en euro dans les tableaux de la feuille considérée) .
  3. pour la feuille "Présentation Société" un peu de code son module de code pour l'évènement change (détection de changement de devise).


Dans le fichier joint, j'ai rajouté une feuille de tableau nommée -> Micro-Usine Tablo2 pour décrire comment la prendre en compte au niveau du code. Dans cette feuille, les deux tableaux sont l'un en dessous de l'autre.

Au niveau de l'environnement VBA, pour le projet en cours:

  • j'ai rajouté un module que j'ai nommé Module 2
  • j'y ai copié l'ensemble du code de Module1
  • j'ai modifié le nom de la macro en Convertir2
  • j'ai modifié la constante CellulesSource (j'ai laissé dans la feuille la cellule I4 pour montrer comment j'ai construit la liste des cellules sources - voir astuce dans le code commenté)
  • j'ai modifié la constante CellulesCible (j'ai laissé dans la feuille la cellule I7 pour montrer comment j'ai construit la liste des cellules cibles - voir astuce dans le code commenté)
  • j'ai modifié le contenu de la variable FeuilTableau - Set FeuilTableau = Sheets("Micro-Usine Tablo2")



  • Puis j'ai copié le code du module de la feuille "Micro-Usine PM6054 - TB1000F"
  • Je l'ai collé dans le module de la feuille "Micro-Usine Tablo2"
  • dans l'instruction If intersect(.... , j'ai collé la liste des adresses des cellules dans le range (attention le séparateur est ici la virgule !)
  • et j'ai remplacé Convertir1 par convertir2


  • Ensuite, je suis allé dans le code de la feuille "Présentation Société"
  • j'ai rajouté une ligne vide sous l'instruction Convertir1
  • et dans cette ligne vide, j'ai tapé : Convertir2


et pis c'est tout! :rolleyes:

En espérant que cela puisse t'aider...

Bonjour mapomme,


J'ai légèrement avancé sur le tableur!
je rencontre toutefois quelques difficultés:

en effet, dans la feuille 7 "Synthèse Invest", je ne parviens pas à convertir le format des cellules cible en fonction du changement de devise "D19" de la feuille 2 "présentation société".

j'imagine que la fonction "Intersec" doit également permettre de changer le format des cellules de ma feuille 7!
j'y suis depuis ce matin et je me tape la tête sur les murs!!!

j'ai essayé comme pour les modules 1 et 2 d'utiliser une valeur source en euro et une valeur cible, mais les conditions sous forme de formule que j'ai inséré me font des erreurs "redondance cyclique".

Help!!!

Peux-tu me donner un coup de pouce STP

Bien à toi

Julien
 

Pièces jointes

  • Business Plan v6.xlsm
    79.3 KB · Affichages: 49

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Condition sur cellule - Devise

Bonsoir Julien.D
dans la feuille 7 "Synthèse Invest", convertir le format des cellules cible en fonction du changement de devise "D19" de la feuille 2 "présentation société".

Voir le code de la macro" Formater3" dans le module3. La macro "Formater3" est activée en cas de changement de la cellule D19 de la feuille "présentation société".
 

Pièces jointes

  • Business Plan v7.xlsm
    82.9 KB · Affichages: 52

Julien.D

XLDnaute Junior
Re : Condition sur cellule - Devise

Bonjour Mapomme,

comment vas-tu?
je te recontacte suite à une erreur que je rencontre depuis ce matin avec le tableur pour lequel tu m'a donné un grand coup de main!

je rencontre le même problème que la dernière fois sur je pense le format des cellules!
quand je sélectionne la devise, le débogage se met en route!!!

as-tu le temps de jeter un petit coup d’œil?

merci d'avance

Julien
 

Pièces jointes

  • Business Plan v7.1.xlsm
    695.7 KB · Affichages: 60

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Condition sur cellule - Devise

Bonjour Julien.D :)
Mapomme, comment vas-tu?
Je vais bien, merci :cool: .

quand je sélectionne la devise, le débogage se met en route!!! as-tu le temps de jeter un petit coup d’œil?
C'est ce que je viens de faire (certes rapide). Le problème vient du fait, que j'ai conçu la macro avec comme hypothèse que les cellules source seraient décrite dans la constante au moyen de cellules individuelles n'incluant pas de plage (idem pour cellules cibles).

La constante CellulesSource est la suivante:
Const CellulesSource = "E4;E9:E10;E12:E13;E15:E16;E18:E19;E21:E22;E24:E25;E30;E35:E36;E38:E39;E41:E42;E44:E45;E47:E48;E50:E51;E56"

On s'aperçoit qu'il y a des plages dans la définition (plage en gras).

Si on remplace les ":" par des ";" (ça tombe bien, les plages n'ont que deux cellules), alors on retombe uniquement sur des cellules individuelles et la macro doit fonctionner. On aboutit à:
Const CellulesSource = "E4;E9;E10;E12;E13;E15;E16;E18;E19;E21;E22;E24;E25;E30;E35;E36;E38;E39;E41;E42;E44;E45;E47;E48;E50;E51;E56"


Idem pour la constante CellulesCible (mais je crois qu'il n'y a pas de plage pour les cellules cible).

En espérant t'avoir aidé...
 

Pièces jointes

  • Business Plan v7.1a.xlsm
    696.5 KB · Affichages: 48

Discussions similaires

Statistiques des forums

Discussions
312 348
Messages
2 087 510
Membres
103 570
dernier inscrit
patrickb83p