Comment retrouver en VBA

Fermé
coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016 - 31 mai 2016 à 11:27
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 31 mai 2016 à 23:57
Bonjour,

Je souhaiterais en VBA, car je ne sais comment procéder
avec une textbox lorsqu'on le tape un code postal me retrouve le département automatiquement sur une combobox.
j'ai une feuil ou se trouve tout les départements sur la colonne A
et sur la colonne B les codes postaux qui leurs correspondent.
ex : en A1 et B1
Ain 1
Aisne 2
etc etc


dans la textebox, je veux inscrire un code postal complet du type 01200 ou 54000 ou 57150 etc, mais je veux diviser ce nombre par 1000 et que grâce à ce calcul les tranforme en 01,2 ou 54,0 ou 57,150 mais je veux garder que les nombres entiers qui donnerons 01 ou 54 ou 57 et que la combobox puisse retrouver dans la feuil ou se trouve les départements l'équivalence qui lui correspond.

pour résumer si je tape dans textbox un code postal du type "57400"
sur la combobox cela affichera automatiquement la "Moselle"
ou autre exemple : textbox "08200" sur la combobox "Ardenne"

je sais que cela est possible mais je comprend pas le VBA

merci au spécialiste

2 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
31 mai 2016 à 12:19
Bonjour
remplacez la macro
Private Sub TextBox7_Change()

par
 Private Sub TextBox7_Change()
' cette  procédure permet de renseigner  la cellule N8 en fonction de la donnée
' écrite dans le formulaire à la parti Code Postal
    Sheets("BASE de DONNEE").Select
    [N8] = TextBox7.Value
    Select Case Left(TextBox7, 1)
        Case 0
            Dept = Mid(TextBox7, 2, 1)
        Case Is <> 0
            Dept = Left(TextBox7, 2)
    End Select
    Set c = Sheets("Départements").Columns("A").Find(Dept, LookIn:=xlValues)
    If c Is Nothing Then Exit Sub
    TextBox9 = c.Offset(0, 1).Value
End Sub

Cdlt
0
coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016 1
31 mai 2016 à 14:16
cela fonctionne pas ?
pourquoi utiliser la textbox9 ?
comment s'affiche le résultat disons dans une nouvelle textbox15 par exemple...
si je comprend ton code, tu va chercher la valeur dans le textbox7 qui mettra sur la ligne en N8, après je comprend rien,lol
bref sa marche pas...
0
coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016 1
Modifié par coupidon le 31/05/2016 à 14:34
Rectification, cela fonctionne cela transforme un nombre de 5 chiffres en 2 chiffres, c'est pas le but de ma demande, je souhaiterais juste une fois qu'on tape un département à 5 chiffres dans une textbox, qu'une autre textbox, convertisse cette valeur en nom de département..

je vous donnes une exemple, sur la textbox7 je tape allez 76650
la textbox15 affiche seine-maritime

je pensais quand transforment les 5 chiffres de la textbox en 2 chiffres pourrait permettre de facilité la recherche dans la feuil Départements en faite...
donc dans l'exemple, le 76650 se transforme en 76 afin de pouvoir retrouver sur la ligne ou se trouve le 76 dans la feuil "Départements" le nom seine-maritime.
Mais je tiens pas à toucher à la donnée que j'inscrit dans la textbox et qui se retrouverais en N8, pour faire simple sur N8 je veux que cela reste 76650 et pas 76....

pour cela j'ai une feuill Départements qui à les correspondances, alors sur la colonne A j'ai les noms du département et en colonne B les chiffres de 1 à 95.
tout simplement....
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337 > coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016
31 mai 2016 à 14:50
Bonjour
bref sa marche pas... Chez moi, si
Comme il n'y a pas le fichier en pièce jointe et que je vous ai déjà répondu récemment sur un problème de textbox. J'ai supposé que vous travailliez toujours sur le même fichier.
Donc, faute de nouveau support, j'ai chercher à vous dépanner avec ce que j'avais à ma disposition, et les textbox concernées étaient la 7 pour le code postal et la 9 pour la ville. Si entre-temps, vous avez fait des modifications, il ne vous reste plus qu'à adapter ou bien remettre le nouveau fichier en pièce jointe.
0
coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016 1 > Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023
31 mai 2016 à 15:38
https://www.cjoint.com/c/FEFjePJQdd0

voici le fichier...

par contre sur la textbox7 je tape un code postal complet,
mais le but c'est que la combobox ou été choisi le département peu être transformer en textbox pour afficher le département qui aura été trouvé avec les explications du dessus...
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337 > coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016
31 mai 2016 à 15:57
Erreur de ma part, j'ai confondu la textbox9(ville) avec la combobox3(département).
Private Sub TextBox7_Change()
' cette  procédure permet de renseigner  la cellule N8 en fonction de la donnée
' écrite dans le formulaire à la parti Code Postal
    Sheets("BASE de DONNEE").Select
    [N8] = TextBox7.Value
    Select Case Left(TextBox7, 1)
        Case 0
            Dept = Mid(TextBox7, 2, 1)
        Case Is <> 0
            Dept = Left(TextBox7, 2)
    End Select
    Set c = Sheets("Départements").Columns("A").Find(Dept, LookIn:=xlValues)
    If c Is Nothing Then Exit Sub
    ComboBox3 = c.Offset(0, 1).Value
End Sub
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 215
31 mai 2016 à 12:30
Bonjour,

attention, tu as des communes distribuées par un département voisin et le code postal ne correspond pas au département réel.
eric
0
coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016 1
31 mai 2016 à 14:20
je suis plus ou moins d'accord avec toi, le truc je veux juste retrouver le département pas la commune en faite...
en tapant exemple, 57100 ou 57000 ou 57520 ect... c'est pas les 3 derniers chiffres qui m’intéresse mais les 2 premiers le 57, et avec ça je dois retrouver le département correspondant au 57 en l’occurrence ici la moselle dans une feuille qui regroupe tout les département avec leur correspondance en chiffre...
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 215
Modifié par eriiic le 31/05/2016 à 23:58
Je te parle bien des 2 premiers chiffres.
Pour Saint-Pierre-Laval par exemple le code postal est 03250 ce qui te donne le département de l'Allier (03).
Seulement cette commune est en réalité dans la Loire (42), c'est son bureau distributaire qui est dans le département voisin (03).
https://fr.wikipedia.org/wiki/Liste_des_communes_de_la_France_dont_le_code_postal_ne_correspond_pas_au_d%C3%A9partement
Ca ne te gène peut-être pas mais je préférais te le signaler au cas où...
eric
0