Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

will1903

XLDnaute Nouveau
Bonjour,

je souhaite créer un outil excel pour mon boulot. Cet outil consiste à retrouver une liste de contactes dans une base de données à partir d'une carte de France. En effet quand je clique sur le département 62 (par exemple), je souhaite que excel me sorte la liste des contacts qui ont le département 62 dans les données.

1ère chose: Suis-je clair?
2ème: Si oui comment faut-il faire?
 

Pièces jointes

Re : Carte interactive

Bonsoir will1903,

Ce que vous voulez faire est très facile en utilisant le filtre automatique.

- appliquer le filtre sur la colonne F

- cliquer sur la flèche du filtre et allez sur Filtre personnalisé

- pour le critère "est égal à" entrer *59*

Vous obtenez ainsi les lignes du département 59 (bienvenue chez les ch'ti).

Edit : autant filtrer d'ailleurs avec contient => 59

A+
 

Pièces jointes

Dernière édition:
Re : Carte interactive

Bonsoir,

Ton fichier, en l'état, n'est pas exploitable, pour un clic, car c'est un dessin, et les départements ne sont pas sélectionnables individuellement....

J'ai retrouvé un vieux fichier (de 2005, je crois), avec lequel on peut travailler.

J'ai laissé tous les codes initiaux (en cliquant sur un département, tu obtiens son nom, le colore, et colore la région...)

Tu peux choisir le département dans le menu déroulant, en bas à droite

Sinon, il te faudra un peu de travail, afin de rajouter les numéros de départements sur la carte....

Un premier jet : En cliquant sur le département 59 (par exemple), tu as une extraction de tes contacts à droite de l'onglet..

Bonne soirée

Edit : Hi, Job, bien le bonjour 😀
 

Pièces jointes

Dernière édition:
Re : Carte interactive

Bonjour le fil, le forum,

Sans trop se casser la tête (mais bonjour la souris) on peut créer 96 Shapes dont le nom contient le numéro du département.

Exemple : Ellipse 01

On peut leur affecter cette macro :

Code:
Sub Filtre()
Dim dep$, plage As Range
dep = Right(Application.Caller, 2)
With Sheets("Base")
  .AutoFilterMode = False
  Set plage = .Range("F1", .[F65536].End(xlUp))
  plage.AutoFilter 1, "*" & dep & "*"
  If plage.SpecialCells(xlCellTypeVisible).Count = 1 Then
    MsgBox "Aucun contact..."
    .AutoFilterMode = False
    Exit Sub
  End If
  .Activate
End With
End Sub
Fichier (2).

A+
 

Pièces jointes

Re : Carte interactive

Re,

Fichier (4) avec un UserForm :

Code:
Sub Filtre()
Dim dep$, plage As Range
dep = Right(Application.Caller, 2)
With Sheets("Base")
  .AutoFilterMode = False
  Set plage = .Range("F1", .[F65536].End(xlUp))
  plage.AutoFilter 1, "*" & dep & "*"
  Set plage = plage.SpecialCells(xlCellTypeVisible)
  If plage.Count = 1 Then
    MsgBox "Aucun contact..."
    .AutoFilterMode = False
    Exit Sub
  End If
End With
plage.EntireRow.Copy Sheets("Feuil3").[A1]
Set plage = Sheets("Feuil3").[A2:F2].Resize(plage.Count - 1)
ThisWorkbook.Names.Add "Contacts", plage
UserForm1.Caption = "Contacts département " & dep
UserForm1.Show
End Sub
La RowSource de la ListBox est le nom défini Contacts.

Edit : c'est mieux avec les en-têtes de colonnes...

A+
 

Pièces jointes

Dernière édition:
Re : Carte interactive

Re,

Avec cette histoire de main sur l'image (post #6), j'ai pédalé dans la choucroute.

En fait il est bien mieux de protéger la feuille en décochant l'option "Modifier les objets".

En plus, j'ai décoché les options de sélection des cellules.

Fichier (5).

A+
 

Pièces jointes

Re : Carte interactive

Bonjour le fil, le forum,

Une variante avec seulement 2 colonnes dans la ListBox.

Le clic sur une ligne permet de voir toutes les informations.

Le code de l'UserForm :

Code:
Private Sub ListBox1_Click()
Dim lig&
Application.Wait Now + 1 / 86400 'facultatif...
lig = ListBox1.ListIndex + 2
Unload Me
With Sheets("Filtre")
  .Rows.Hidden = False
  [Contacts].EntireRow.Hidden = True
  .Rows(lig).Hidden = False
  .Activate
End With
End Sub

Nota : j'ai un peu amélioré la macro Filtre...

A+
 

Pièces jointes

Re : Carte interactive

Re,

Bien sûr on peut tout faire dans l'UserForm avec ces macros :

Code:
Private Sub Label1_Click()
ListBox1.ListIndex = -1
Me.Height = 122.25
End Sub

Private Sub ListBox1_Click()
Dim lig&
lig = ListBox1.ListIndex + 2
Me.Height = 287
With Sheets("Filtre")
  TextBox1 = .Cells(lig, 3)
  TextBox2 = .Cells(lig, 4)
  TextBox3 = .Cells(lig, 5)
  TextBox4 = .Cells(lig, 6)
End With
End Sub
On s'amuse comme on peut 🙂

A+
 

Pièces jointes

Re : Carte interactive

Re,

On continue, en l'absence de toute réaction de l'intéressé 😡

Si l'on veut profiter de l'affichage des informations pour les modifier dans la base.

Le mieux est alors de repérer les numéros de lignes filtrées, le repère en colonne A.

La macro du bouton "Modifier la base" :

Code:
Private Sub CommandButton1_Click() 'Modifier la base
Dim lig&
lig = ListBox1.ListIndex + 2
With Sheets("Filtre")
  .Cells(lig, 4) = TextBox1
  .Cells(lig, 5) = TextBox2
  .Cells(lig, 6) = TextBox3
  .Cells(lig, 7) = TextBox4
  lig = .Cells(lig, 1) 'Repère
End With
With Sheets("Base")
  .Cells(lig, 4) = TextBox1
  .Cells(lig, 5) = TextBox2
  .Cells(lig, 6) = TextBox3
  .Cells(lig, 7) = TextBox4
End With
MsgBox "Ligne " & lig & " modifiée dans la base..."
End Sub
Fichier (8).

A+
 

Pièces jointes

Dernière édition:
Re : Carte interactive

Bonjour à tous,
Salut Job 🙂,

Je ne vois pas comment modifier ton code pour permettre un seul département par contact...

Je ne sais pas pour notre ami demandeur mais cela me convient parfaitement.

A++ l'ami
A+ à tous
 
Re : Carte interactive

Bonjour Job75

Je te remercie pour le bon boulot que tu as fait. C'est vrai que je ne me suis pas cassé la tête car je savais que cela n'était pas dans mes compétences. j'ai préféré laisser le boulot aux experts. Et puis je n'ai pas trop le temps pour me mettre à fond dans du excel. C'est pour ça que je me reconnecte seulement aujourd'hui.

Une derniere question...Est ce possible de séléctionner plusieurs départements à la fois???

Merci par avance.
 
Re : Carte interactive

Re,

@ JCGL : si l'on veut pouvoir entrer un seul département sur un contact, mettre la colonne Départements au format Texte.

@ will1903 : on ne peut cliquer que sur une shape à la fois, donc avec cette solution, pas possible de "sélectionner" plusieurs départements.

Merci à DoubleZero, JC, Victor et piga25 pour tous ces Likes, ça me fait très plaisir 🙂

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
2 K
  • Question Question
Microsoft 365 Tableau
Réponses
24
Affichages
1 K
Réponses
34
Affichages
4 K
Retour