IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Recherche CP, ville, region etc [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut Recherche CP, ville, region etc
    Bonjour,

    Je recherche un code pour alimenter mon User. Je m'explique: je rechercher une ville en fonction du code postal ainsi que son département, sa région, sous préfecture et préfecture.

    Ci joint mon fichier qui sera certainement plus explicit "Fichier réduit au maximun 38500 lignes au complet"

    Je vous remercie d'avance et vous souhaite une bonne journée

    Cordialement

    Max
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    Bonjour,

    Juste pour être sûr que l'utilisation du code est nécessaire :
    Est-ce que les filtres automatiques proposés par Excel ne sont pas suffisant pour ce besoin ?

    Eventuellement, ces filtres peuvent être activé par macros.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Bonjour,

    J'ai déjà essayé mais pas idéale

    Merci beaucoup

    Max

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    Je me suis permis de transformer quelque peu ton USF, voir fichier joint
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Bonjour Dom,

    Et merci beaucoup, juste une petite modif si tu le permet. Est il possible de rentrer directement le N° code postal dans la ComboBox_ville_cp1 au lieu de faire une recherche du N°.?

    Merci et bonne journée

    Cordialement

    Max

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Re,


    tu tranfères le code de

    Private Sub CmdAnnuler_Click()
    Dans le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CmdAnnuler_Click()
    Unload Me
    End Sub
    Il y a ceci

    Ou alors je n'ai pas compris......

  7. #7
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Excuses-moi, une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub ComboBox_ville_cp1_Click()
    vers
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub ComboBox_ville_cp1_Change()
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  8. #8
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Re,

    Merci beaucoup Dom sa marche Nickel

    Bonne journée

    Cordialament

    Max

  9. #9
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    Re.

    Une idée d'amélioration pour alimenter les comboBox avec des éléments triés, et unique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Private Sub UserForm_Initialize()
        Dim lastline As Long, li As Long
        lastline = Range("A2").End(xlDown).Row
        Call AlimenteCombo(ComboBox_Cp, "B2", 2, lastline)
        Call AlimenteCombo(ComboBox_ville, "A2", 2, lastline)
    End Sub
     
    ' nécessite l'ajout de la référence Microsoft Scripting Runtime
    Private Sub AlimenteCombo(cb As ComboBox, titlecell As String, firstline As Long, lastline As Long)
        Dim li As Long
        Dim list As Dictionary
        Set list = New Dictionary
     
        Range("A1:F" & lastline).Sort Key1:=Range(titlecell), Order1:=xlAscending, Header:=xlGuess
     
        cb.Clear
        With Range(titlecell)
            For li = 0 To lastline - firstline - 1
                If Not list.Exists(.Offset(li).Value) Then
                       Call list.Add(.Offset(li).Value, .Offset(li).Value)
                    cb.AddItem (.Offset(li))
                End If
            Next li
        End With
        Set list = Nothing
    End Sub
    Et pour le cas de recherche lorsque la CheckBox Ville est cochée, il me semblait qu'il faudrait alimenter ComboBox_ville2 à partir
    des villes pouvant correspondre au CP choisi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private Sub ComboBox_Cp_Change()
        Dim lastline As Long, li As Long
        lastline = Range("A2").End(xlDown).Row
     
        ComboBox_ville2.Clear
        Dim c As Range, firstFind As Range
        With Range("A1:F" & lastline)
            Set c = .Find(ComboBox_Cp.Value, LookIn:=xlValues)
            Set firstFind = c
            Do
                Call ComboBox_ville2.AddItem(c.Offset(0, -1).Value, ComboBox_ville2.ListCount)
                Set c = .FindNext(c)
            Loop While (Not c Is Nothing) And (c.Address <> firstFind.Address)
        End With
     
    End Sub
    Mais je peux me tromper sur le fonctionnement recherché.

  10. #10
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Bonjour BlueMonkey

    J'ai fait un teste quand je rentre sur la combobox le nom d'une ville j'ai rien d'autre

    @+

    Max

  11. #11
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    Le code posté précédemment est simplement un complément au code de casefayere.

    Il s'occupe simplement de :
    - trier les éléments ajouter dans les Combo
    - et retirer les doublons (pour ne pas avoir plusieurs fois les même code postal par exemple).

    Mais il ne fait pas de recherche dans la feuille pour trouver les éléments. C'est déjà codé dans le fichier envoyé par casefayere.

  12. #12
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour BlueMonkey
    pour ne pas avoir plusieurs fois les même code postal par exemple
    plusieurs villages peuvent avoir le même code postal (C'est le cas de mon village)
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  13. #13
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Re,

    Mon canton a 11 communes avec le même code postal

    @
    Max

  14. #14
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    Re.

    On est tous d'accord, pour un code postal, il peut y avoir plusieurs nom de ville.
    Mon but étais de retirer les doublons dans le cas où on faisait
    une recherche par CP :
    extrait du premier fichier posté :


    Dans ce cas, il me semblait logique :
    - avoir une liste de code postal unique et trié.
    - lors du changement de code postal, mettre à jour la liste des villes correspondant à ce code postal.

    Mais visiblement les besoins on changé au cours du post.
    Et comme, le sujet est résolu, inutile de se compliquer la vie inutilement.

    Merci pour votre attention.
    Et bonne fin d'après-midi.

  15. #15
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Excuses-moi BlueMonkey, j'étais à coté de la plaque, je te comprends parfaitement et n'avais pas pensé à ça

    Bon dimanche
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  16. #16
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    @Casefayere : Pas de problème. Merci pour la politesse de ton message (même s'il n'y a rien à excuser) et de m'avoir rassuré sur le fait que je sois clair.

    j'étais à coté de la plaque
    Pas tant que ça puisque tu as résolu le problème.

  17. #17
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    re BlueMonkey, maxval18

    Suite aux observations de BlueMonkey, ci-joint le fichier modifié à ma façon

    j'ai testé ce fichier mais il m'a fallu retiré tous les espaces inutiles dans la colonne des codes postaux, alors attention à tes saisies !

    Bonne soirée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  18. #18
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Bonjour Dom,

    Je te remercie ton fichier marche nickel. J'ai donc ajouté les codes Postaux et villes soit au total 38500 lignes en faisant attention aux espaces des codes postaux comme tu me le précisais. Des que je recherche un code au dessus de 14000 message "aucune correspondance trouvée" ?

    Bonne journée

    Max
    Fichiers attachés Fichiers attachés

  19. #19
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Re,

    J'ai rajouté se morceau de code pour supprimer les espaces et sa devrais marcher

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub SupprEspaces()
    Dim L, C
    For L = 1 To ActiveCell.SpecialCells(xlCellTypeLastCell).Row
    For C = 1 To ActiveCell.SpecialCells(xlCellTypeLastCell).Column
    Cells(L, C).Value = Trim(Cells(L, C).Value)
    Next
    Next
    End Sub
    @+

    Max

  20. #20
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour le forum, BlueMonkey, maxval18,
    J'ai ajouté ce morceau de code pour supprimer les espaces et ça devrait marcher
    tu auras surtout le temps de l'exécution d'aller chercher les oeufs de Pâques dans le jardin.
    Essayes plutot ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub SupprEspaces()
    Dim TblEsp(), ChoixCol As Integer
    ChoixCol = InputBox("CHOISIR LE NUMERO DE COLONNE A NETTOYER")
    With Sheets("Feuil1")
      derlg = .Range("A" & .Rows.Count).End(xlUp).Row
      For x = 1 To derlg
        ReDim Preserve TblEsp(1 To x)
        TblEsp(x) = Trim(.Cells(x + 1, ChoixCol))
      Next x
      .Range(.Cells(2, ChoixCol), .Cells(derlg, ChoixCol)) = Application.WorksheetFunction.Transpose(TblEsp)
     
    End With
    End Sub
    J'ai ajouté un bouton sur la feuille, voir fichier joint

    Bonne journée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [MySQL] Recherche des villes dans une phrase
    Par nicoreims dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 16/04/2015, 23h28
  2. [Spip] [Spip immo] Recherche par ville et codes postaux
    Par realkilla dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 31/08/2009, 14h29
  3. Recherche multi mot, expression,etc
    Par romuald07 dans le forum Requêtes
    Réponses: 4
    Dernier message: 12/01/2007, 07h11
  4. [C#2005] Strings(recherche d'un terme etc).
    Par madlogik dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/10/2006, 10h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo