Création d'un fichier de gestion clients

259gest-v0-1.xlsm (46.18 Ko)

Bonjour à tous,

Je suis en train de réaliser un fichier de gestion de contacts commerciaux. Les éléments importants sont: Les Entités (i.e les sociétés); Les Contacts et Les Activités. Je stocke chacune de ces données dans une feuille dédiée (Entites/Contacts/Activités).

Malgré les nombreuses recherche que j'ai fait je ne trouve pas de solution à ma problématique.

J'ai créé dans une feuille menu 4 boutons qui lancent un formulaire:

"Ajouter une nouvelle Entité" ça marche !

"Ajouter un nouveau contact" j'ai un message d'erreur, je ne comprends pas pourquoi !

"Ajouter une nouvelle activité" j'ai le même message d'erreur !

"Consulter une fiche" (Ma plus grosse difficulté !): ce bouton doit lancer un formulaire qui me permettra de consulter les données de chaque feuille après avoir sélectionné une société + il doit permettre les modifications également.

Pour être plus précis je vous joins mon fichier.

Je suis vraiment désespéré de ne pas trouver de solution malgré de multiples tentatives (je suis même passé par MS Access que je ne maitrise pas)

En vous remerciant de votre aide,

Bien Cordialement,

Will_Zero

Bonjour, je veux bien vous croire que vous êtes desesperé, les uerform c'est long et chia* à coder. Pourquoi ne pas rester simpliste et simplement entrer des informations dans des cases puis se servir de filtre pour consulter ou au "pire" créer une macro de recherche ?

Bonjour,

Merci pour la réponse. Mais c'est justement l'utilisation simpliste de filtres que je souhaite éviter.

Pour avoir longuement potasser avant de poster ce message je pense que les experts présents sur ce forum pourraient trouver une solution efficace sans top de souci.

Will_Zero

Je pense aussi (qu'ils trouveront une solution). Ceci dit le problème dépasse largement mes compétences car de quelle value il s'agit j'en ai vraiment aucune idée..Je dirai bien "recommencez vos userform de zéro" car il doit y avoir un paramètre de foireux mais après tant de boulot! j'croise les doigts pour vous!

Bonjour Will_Zero,

J'ai apporté une toute petite modif pour que tu puisses visualiser tes formulaires.

En fait il manquait .list dans les Sub UserForm_Initialize()

ex:

Cb_civilite.List() = Array("Mr", "Mme", "Melle")

En espérant que ça te permettra d'avancer dans ton projet.

Cdt

Henri

295will-zero-essai.xlsm (47.43 Ko)

Bonsoir Will_Zero, Bonsoir AFEH (Il y avait longtemps... Brr pas chaud en bretagne)

J'ai modifié quelque peu l'Userform2 en simplifiant l'encodage.... J'ai du mal avec les multitudes de noms des Textbox et autres.

Je ne rejoins pas forcément les choix de Force Rouge mais il est vrai qu'il faut simplifier au maximum les codes afin de s'y retrouver rapidement.

Regardes cette page sur mon blog https://cellulexcel.blogspot.fr/p/excel-creer-un-formulaire-complexe.html c'est une manière détournée de simplifier le code.... Exit les Textbox, combobox etc.

Les "TB" = nom des objets mais gardent leurs valeurs d'origines.

N'hésites pas à consulter mon blog, tu y trouveras pas mal de réponse à tes questions.

Bonsoir

Merci à Henri pour la correction de cet oubli et à e1000io pour le fichier amélioré que je vais utiliser pour continuer à bâtir mon fichier.

Maintenant que cette problématique est résolue, il me faut trouver le bon code pour générer une liste de recherche intuitive à lettres contenues dans la combobox.

J'ai trouvé ce que je veux faire sur le site de Jacques Boisgontier (alimenter une ComboBox avec des données préenregistrées et avec une recherche intuitive par lettres contenues) mais je peine à le comprendre et à l'adapter au mien.

Je remets le fichier adapté à mon besoin avec les notes explicatives de ce que je veux faire si vous avez des pistes.

Encore merci pour votre précieuse aide,

Ben Cordialement

Will_Zero

Bonjour,

Recherche intuitive caractère par caractère (type Google)

Option Compare Text
Dim f, ligneEnreg, choix1(), tblChoix1()
Private Sub UserForm_Initialize()
  Set f = Sheets("entites")
  choix1 = Application.Transpose(f.Range("b2:b" & f.[b65000].End(xlUp).Row).Value)
  'Call Tri(choix1, LBound(choix1), UBound(choix1))
  Me.ComboBox1.List = choix1
  ligneEnreg = f.[b65000].End(xlUp).Row + 1
  Me.ComboBox1.SetFocus
End Sub

Private Sub combobox1_Change()
 If Me.ComboBox1.ListIndex = -1 And IsError(Application.Match(Me.ComboBox1, choix1, 0)) Then
   ReDim tblChoix1(1 To UBound(choix1))
   tmp = UCase(Me.ComboBox1) & "*"
   ligne = 0
   For Each c In choix1
     If UCase(c) Like tmp Then ligne = ligne + 1: tblChoix1(ligne) = c
   Next c
   If ligne > 0 Then
     ReDim Preserve tblChoix1(1 To ligne)
     'Call Tri(tblChoix1, LBound(tblChoix1), UBound(tblChoix1))
     Me.ComboBox1.List = tblChoix1
     Me.ComboBox1.DropDown
   End If
  Else
   ComboBox1_Click
  End If
End Sub

Private Sub ComboBox1_Click()
  ligneEnreg = Application.Match(Me.ComboBox1, choix1, 0) + 1
  For col = 3 To 8
    Me("Label" & col - 2).Caption = f.Cells(1, col)
    Me("TextBox" & col - 2) = f.Cells(ligneEnreg, col)
  Next col
End Sub

Ceuzin

Bonjour et Merci Ceuzin,

J'ai épluché ton code pas à pas et je pense l'avoir compris...ou peut être pas assez !

Après intégration du code, j'ai bien la liste déroulante comme souhaitée dans l'Usf2, mais erreur tout de même car la variable tmp n'est pas reconnue, ni col (!?).

Je vous transmets de nouveau mon fichier,

Merci de votre aide

Bien cordialement,

Will_Zero

Bonjour Will_Zero,

Sur la base de mon 1er fichier, voici une nouvelle proposition pour l'Userform2

a) Recherche possible

b) Modification possible

c) Création possible

d) Suppression possible

Bonjour à tous,

Je bosse toujours sur mon fichier gestion de clients !!!

J'ai apporté quelques modif aux userform pour plus de compréhension. Mais encore quelques petits soucis:

- Dans la feuille "Menu" après avoir lancer l'usf, je n'arrive pas à charger la liste des "Raison Sociale" qui est préremplie en feuille "Entites" et mettre à jour les champs: "Adresse"; "CP" et "Ville" après de nombreuses recherches mon code semble correct !

- Sur ce même formulaire "Consultation des données Entités", une erreur se produit quand je clique sur "Supprimer", le code me semble pourtant correct.

A cause de ces erreurs, je n'ai pas pu tester mon bouton " Modifier", j'espère qu'il sera fonctionnel.

je vous mets en pièce jointe l'évolution du fichier précédent.

Merci de votre aide,

Bien cordialement,

Will_Zero

33will-zero.xlsm (30.87 Ko)

Bonjour

Je n'ai "travaillé" que sur l'userform1

A tester

Bonjour Banzai64,

Merci de ton retour !

Ton fichier modifié fonctionne nickel; par contre il y a un détail qui manque quand même, c'est la recherche par lettres contenues qui est essentielle pour le traitement de données en masse.

Avec ta version V001, je suis obligé de parcourir toutes les données de la liste déroulante pour choisir ma raison sociale, et cela peut paraitre vite fastidieux quand on a beaucoup de données.

1) Il faudrait que cette liste déroulante intègre une possibilité de recherche par lettres contenues i.e si je tape par exemple "soc", la liste déroulante se charge avec toutes les entités contenues dans entites!A:A (sans l'en-tête) qui contiennent "soc".

Le top mais je ne sais pas si c'est possible dans Excel ça serait d'avoir une recherche comme suit:

  • si on tape soc* la liste se charge avec toutes les entites qui commencent par "soc"
  • si on tape *soc* la liste se charge avec toutes les entites qui contiennent "soc"

2) Contacts:

L'autre partie de mon projet de fichier excel serait d'associer à une entité, un ou plusieurs contacts.

J'ai modifié mon fichier précédent pour intégrer des onglets.

Quand je sélectionne mon entité dans l'onglet entité de l'Usf 1, les champs en dessous se mettent à jour, là on est bon avec ton fichier V001.

Mais il faudrait que parallèlement à cela les champs de l'onglet Contacts du formulaire se remplissent avec les contacts qui sont renseignés dans la feuille contacts. Je peux avoir 1, 2, 3...10 contacts pour une même raison sociale

+ j'ai intégré un usf 3 qui donne la possibilité de renseigner un nouveau contact.

3)Quand j'ajoute une nouvelle entité via l'usf2, la liste déroulante de l'usf 1 ne se met pas à jour automatiquement.

Je suis obligé de quitter le formulaire puis le relancer pour qu'il se mette à jour. N'y aurait-il pas un code qui permet d'éviter cette manip supplémentaire ?

4)Je souhaiterais forcer la casse dans certains objets, notamment dans les usf2 et usf3 qui servent à alimenter la base de données. Quelle est le code qui permet de forcer la casse (Mise en majuscules des Raison Sociales (Tb_RS) et Ville (Tb_Ville) dans l'usf2 et mise en majuscule des noms de famille dans l'usf3 (Tb_Nom)

Merci de votre aide à tous,

Je vous joint mon fichier évolué comme indiqué ci-dessus

Will_Zero

Bonjour à tous,

Voici le fichier avec le code remis à jour pour le changement de la casse:

Pour cela, j'ai utilisé les fonctions : UCase – majuscule et Application.proper – Nom propre

La ligne de code à utiliser est :

cellule.value = UCase(cellule.value)

cellule.value = application.proper(cellule.value)

Ces lignes permettent de modifier les contenus des cellules pour les faire passer en majuscules ou style nom propre.

Je vous joint le fichier remis à jour.

Bien Cordialement,

Will_Zero

Bonsoir

Je t'ai fait juste la partie recherche pour les raisons sociale commençant par

Je n'irai pas plus loin

Pour la suite il faut tout faire et actuellement cela ne me branche pas. Mais qui sait ........

Attends d'autres réponses, et dans la négative clôture ce post et ouvre en un autre

Bonjour

J'ai trouvé un peu de motivation

A tester

Bonjour Banzai,

Je te remercie d'avoir encore passé un peu plus de temps sur ce fichier et surtout sur la partie "contacts" qui était bien compliquée.

ça mérite de clôturer ce post en "résolu" !!!

Bonne continuation à tous,

Will_Zero

Bonjour à tous,

Suite à un échange que j'ai eu en MP avec une personne du forum. Je tiens sincèrement à m'excuser de mon précédent post qui était maladroit.

J'ai posté mon fichier avec une note de version V005a pour montrer les évolutions que j'y avais apporté en n’indiquant les problématiques qui me restaient à résoudre directement dans le fichier !

Donc je suis sincèrement désolé !!!

Pour illustrer ce post voici donc les problématiques qui me reste à résoudre pour terminer définitivement ce fichier:

1) Dans l'USF 1/Onglet Contact, j'ai des difficultés à adapter le code pour renseigner les TextBox complémentaires (Ligne Directe,Mobile,Mail) j'ai une erreur du coup blocage au débogage à cause des procédures ListeContacts et NettoyagePage2 de l'USF1.

2) Dans l'USF 3-Créer un nouveau contact, je souhaiterais transformer la ComboBox "Raison Sociale" par une TextBox "Raison Sociale" déjà renseignée avec la valeur choisie dans Cb_RS (onglet "entités" de l'USF1) - Je n'arrive pas à définir le code pour récupérer cette valeur.

3) De la même manière, je souhaiterais que dans l'USF1/Onglet "Activités"; la TextBox Raison Sociale (JAUNE) soit pré-renseignée avec la valeur de raison sociale (Cb_RS) sélectionnée dans l'onglet entités. Et alimenter la ComboBox Contact Client avec les seuls contacts que l'ont a déjà renseigné pour cette société.

4) Et dernière chose et le fichier sera enfin terminé ! Une fois le contact client choisi dans l'onglet Activités, les différentes TextBox de cet onglet doivent être alimentées par les données de la feuille Activités (Date, Type activités, Compte-Rendu, ...)

ET UN GRAND MERCI DE VOTRE AIDE PRECIEUSE SUR CES DERNIERES DIFFICULTES !!!!

Bien Cordialement,

Will_Zero

Bonjour

Il faut que tu expliques

Dans la page Activités (userform), les contrôles correspondent à quelles colonnes de la page "Activites" (Excel)

Certains ont les mêmes désignation, ceux là c'est facile à trouver

Mais par exemple "Contact cial" où "Objectif Act" correspondent à quelles colonnes ?

Peut-on modifier l'ordre des colonnes et/ou l'ordre des TextBox ?

A quoi sert la Combobox Contact client ?

Que se passe-t'il si on choisi un nom dans la liste ?

Pour le moment c'est tout comme question

Rechercher des sujets similaires à "creation fichier gestion clients"