XL 2016 Problème de VBA

Senlis

XLDnaute Nouveau
Bonsoir à tous,

Je suis en train commencer l'apprentissage du VBA dans Excel.
Mon projet à pour but de créer un formulaire permettant de saisir une base donnée client.

Or, j'ai deux soucis :
1. dans le code postale et les téléphone, le message d'erreur apparait à chaque fois
2. je ne sais pas comment faire une ComboBox dépendante

1. TextBox restreint aux chiffres
Il s'agit du code postal et des téléphones

2. ComboBox catégorie
Je souhaite que lorsque que l'on choisit un item dans "Catégorie" cela fasse apparaitre les sous-catégorie dans la deuxième puis troisième ComboBox.
Je m'arrache les cheveux depuis 2 jours en cherchant sur le net mais rien n'y fait.

En pièce-jointe le fichier concerné.

Si vos lumières permettent de résoudre le problème, je pourrai dire 'Et la lumière fût !'.
 

Pièces jointes

  • PRODUCTION - Base de données.xlsm
    2.9 MB · Affichages: 63

Mytå

XLDnaute Occasionnel
Salut le Forum

Bienvenue Senlis comme nouveau membre.

Code modifié
Code:
Private Sub TextBox6_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If InStr("1234567890", Chr(KeyAscii)) = 0 Then
        KeyAscii = 0: Beep
        MsgBox "Que des chiffres !", vbOKOnly + vbInformation, "Numéro de téléphone 1"
    End If
End Sub
Mytå
 

Senlis

XLDnaute Nouveau
Bien maintenant que cela est fait et que la recherche des codes postaux indiquent bien les communes associées, il reste le reste.

Je cherche à faire la même chose pour afficher le département de la ville.
En clair :
1. saisie du CP
2. ComboBoxVille alimentée en fonction du CP
3. sélection de la ville
4. et c'est là le problème : affichage dans TextBoxDEP du département de la ville sélectionnée ne fonctionne pas

Où est donc mon erreur ? :(
Si vous trouvez la solution, je pourrai appliquer cela au reste : région, Google Maps et Open Street Map.
 

Pièces jointes

  • PRODUCTION - Base de données 3.xlsm
    3.3 MB · Affichages: 55

Senlis

XLDnaute Nouveau
Bien, maintenant que les corrections sont apportées, il y a d'autres problèmes :
1. la recherche des codes postaux de 01 à 09 ne fonctionne pas
2. pour afficher le département, la région et les liens de géolocalisation, il faut être sur la feuille "CP"
3. si l'on effectue une recherche de code postal avec 60300 et que l'on sélectionne BARON, ce n'est pas le bon département ni la bonne région

Questions
1. Comment résoudre ce problème ?
2. Comment faire fonctionner l'affichage si l'on se trouve sur une autre feuille ?
3. Une idée du problème ? "Mais pourquoi tant d'acharnement ?!"
 

Pièces jointes

  • PRODUCTION - Base de données 4.xlsm
    3.3 MB · Affichages: 44
Dernière édition:

Mytå

XLDnaute Occasionnel
Re le Forum

Pour Baron tu as 4 lignes 2286, 2287,2288 et 2289
Il trouve la première car tu ne vérifies pas le code postale.

30700 BARON GARD LANGUEDOC-ROUSSILLON
33750 BARON GIRONDE AQUITAINE
60300 BARON OISE PICARDIE
71120 BARON SAONE-ET-LOIRE BOURGOGNE

Mytå
 
Dernière édition:

Mytå

XLDnaute Occasionnel
Re le Forum

Pour la recherche, pense à spécifier la feuille
Code:
Private Sub ComboBoxVILLE_Change()
    With Sheets("CP")
        For n = 1 To .Range("B65536").End(xlUp).Row
            If .Range("B" & n) = ComboBoxVILLE Then
                TextBoxDEP = .Range("C" & n)
                TextBoxREG = .Range("D" & n)
                Google = .Range("H" & n)
                Street = .Range("I" & n)
            End If
        Next
    End With
End Sub
Mytå
 

Senlis

XLDnaute Nouveau
Salut Myta,

C'est bien ça le problème.
Je ne sais pas comment faire pour afficher le bon département et la bonne région en fonction du code postal et de la ville.
J'ai l'impression que le code prend en compte la dernière ville correspondant à la ComboBoxVILLE dans la feuille CP.

Là, il est vrai que je demande un code tout fait.
Honte à moi mais j'ai déjà pas mal avancé tout seul.

Si d'autres personnes passent par ici, faites nous signe pour que je puisse avancer.

Re le Forum

Pour Baron tu as 4 lignes 2286, 2287,2288 et 2289
Il trouve la première car tu ne vérifies pas le code postale.

30700 BARON GARD LANGUEDOC-ROUSSILLON
33750 BARON GIRONDE AQUITAINE
60300 BARON OISE PICARDIE
71120 BARON SAONE-ET-LOIRE BOURGOGNE

Mytå
 

Pièces jointes

  • PRODUCTION - Base de données 5.xlsm
    3.7 MB · Affichages: 70

Dranreb

XLDnaute Barbatruc
Bonsoir.
Coté code postal, il y a un peu de mieux avec ce code :
VB:
Private Sub TextBoxCP_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim Trouve As Range, Cel As Range
Feuil3.ListObjects(1).Range.AutoFilter Field:=1, Criteria1:=CDbl(TextBoxCP.Text)
ComboBoxVILLE.Clear
For Each Trouve In Feuil3.ListObjects(1).ListColumns("Commune").DataBodyRange.SpecialCells(xlCellTypeVisible).Areas
   For Each Cel In Trouve: ComboBoxVILLE.AddItem Cel.Value: Next Cel, Trouve
TextBoxCP.Text = Format(TextBoxCP.Text, "00 000")
End Sub
Mais il faudrait des déclaration Private pour garder trace de tout ça. Les temps de réponses sont pénibles.
 

Senlis

XLDnaute Nouveau
Oui je débute et un rien m'émerveille.
Le code de Dranreb me semble tellement compliqué pour le moment que je garde celui qui est en place.

Pour le temps de réponse, je ne vois rien de bien gênant. Après tout, il y a plus de 36000 communes en France et l'affichage du département, région et lien de géolocalisation me semble plus que respectable. Peut-être que cela dépend de l'ordinateur.
Peux-tu développer Dranreb pour le temps de réponse ?
 

Discussions similaires

Statistiques des forums

Discussions
312 231
Messages
2 086 447
Membres
103 213
dernier inscrit
Poupoule