XL 2010 Carte France dynamique

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

J’ai besoin de visualiser ma « couverture clients » sur la France.

J’ai testé bcp de cartographies possibles mais je n’en avais pas trouvé qui pouvaient répondre à ma simple demande.

J’ai fini par en trouver une qui, après adaptation (facile LOL), me convient.

Mais il reste un souci que je n’arrive pas résoudre :
En feuille « Répartition », j’ai la carte/départements et, à droite et à gauche les colonnes qui permettent de colorier et d’afficher le nombre de clients.
La mise à jour se fait par « entrée » après saisie dans les colonnes C et U

Le Problème :
J’ai une feuille « Base » dans laquelle je saisi les infos.
Les cellules des colonnes C et U de « Répartition » sont liées par formules à « Base »

Puisque je ne saisi pas directement dans « Répartition », les couleurs ne se mettent pas à jour et les nombres ne s’affichent pas.

Auriez-vous la solution ? (fichier joint)

En espérant avoir été clair (pas sûr du tout LOL), je reste à l’écoute pour expliquer à nouveau.
Avec mes remerciements,
Amicalement,
Lionel,
 

Pièces jointes

  • Carte France V 4.1-5 stat.xlsm
    165.5 KB · Affichages: 310

sousou

XLDnaute Barbatruc
bonsoir
en supprimant tes formules dans répartion, tu peux essayer ainsi

ajoute ce code dans la feuille base.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 3 And Target.Column <> 6 Then Exit Sub
With Sheets("répartition")
Set cel = .UsedRange.Find(Target.Offset(0, -1).Value)
cel.Offset(0, 2) = Target.Value
End With
End Sub
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Sousou,
Bonjour à toutes et à tous,

Merci de m'avoir répondu.
J'ai testé et ton code fonctionne.

Mais je suis obligé de garder mes formules en feuille "Répartition" car le but est d'éviter les saisies.

Sans entrer dans un long discours, la feuille Répartition sera intégrée dans un classeur qui contient d'autres feuilles et sera alimentée avec les formules (la feuille Base étant juste pour le test).

Encore merci,
Amicalement,
Lionel,
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Merci de me répondre à nouveau.

Mais la dernière de quelle macro ?
LOL, voilà toute mon ignorance étalée au grand jour :rolleyes:

Important :
La feuille base est juste là pour le test.
L'idéal serait de modifier la macro concernée pour que l'exécution se fasse sur la feuille "Répartition" aux changements des valeurs des colonnes C et U
 
Dernière édition:

sousou

XLDnaute Barbatruc
La macro de la feuille base.
Mais ta dernière réponse me laisse perplexe!
La feuille base existe ou pas?
Si tu veux que l'exécution se fasse au changement de la feuille répartition ou tu as des formules, je ne vois pas bien????
 

Pièces jointes

  • Copie de Carte France V 4.1-5 stat-1.xlsm
    169.9 KB · Affichages: 115

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re-Bonjour,
Merci d'être là,

Je tente d'être plus clair (pas sûr que j'y arrive LOL)
Pour peut-être plus de clarté, j'ai protégé des 2 feuilles du classeur :*
- feuille "Répartition" totalement protégée (pas de saisie dans cette feuille),
- feuille "Base" cellules C2 à C49 et F2 à F49 déprotégées pour la saisie.
Les saisies de la feuille "base" vont alimenter les cellules de la feuille "Répartition" qui contiennent la formule suivante :
=Base!C2 etc...

J'aimerai que la mise à jour de la carte se fasse "au changement du résultat de C2 etc.. de la feuille "Répartition".

En fait, peu importe la feuille base qui est là pour le test. La feuille "Répartition" sera alimentée (formules) par la feuille de saisie qui sera affectée.

Je remet le classeur avec les feuilles protégées
Amicalement,
Lionel,
 

Pièces jointes

  • Copie de Carte France V 4.1-5 stat-1.xlsm
    164.2 KB · Affichages: 146
Dernière édition:

Shakki

XLDnaute Occasionnel
Bonjour,

Ton problème vient peut-être de la protection de la feuille Répartition. Essaye en modifiant le code de Base pour qu'il déprotège Répartition quand il y a des changements et re-protège ensuite.
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Sheets("Répartition").Unprotect "1234" 'mot de passe 1234
If Target.Column <> 3 And Target.Column <> 6 Then Exit Sub
With Sheets("répartition")
Set cel = .UsedRange.Find(Target.Offset(0, -1).Value)
cel.Offset(0, 2).Formula = "=base!" & Target.Address
End With
Sheets("Répartition").Protect "1234" 'mot de passe 1234
End Sub

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 194
Messages
2 086 066
Membres
103 110
dernier inscrit
Privé