XL 2013 Blocage au niveau des userform et combobox

cfaure

XLDnaute Nouveau
Bonjour à tous,

Dans le fichier ci-joint voici mon problème:

Ma userform1 de la feuil "CRM" fonctionne et pas de problème. La combobox liste déroulante "sélectionner le nom du contact" a pour source la colonne C de la feuil "CRM"

Ma userform2 de la feuil "HEBDO" ne fonctionne pas comme je voudrais: lorsque je souhaite "lancer" ma userform, un message d'erreur "erreur d'exécution '2147024809(80070057) " apparait.
J'ai par hasard changé le nom de ma UserForm_Initialize() en UserForm2_Initialize()
cela me permet de lancer ma userform 2, mais dans ma combobox combobox liste déroulante "sélectionner le nom du contact" (source = colonne C de la feuil "CRM" également) quand je souhaite sélectionner un nom, aucun contact n'apparait...

Je suis complètement bloqué pourriez-vous m'aider?

Le fichier étant trop gros, voici le code pour le userform1
"Option Explicit
Dim Ws As Worksheet 'Pour le formulaire

Private Sub UserForm_Initialize()
Dim J As Long
Dim I As Integer

Set Ws = Sheets("CRM") 'Correspond au nom de votre onglet dans le fichier Excel
With Me.ComboBox1
For J = 3 To Ws.Range("C" & Rows.Count).End(xlUp).Row
.AddItem Ws.Range("C" & J)
Next J
End With
For I = 1 To 26
Me.Controls("TextBox" & I).Visible = True
Next I
End Sub

Private Sub ComboBox1_Change()
Dim Ligne As Long
Dim I As Integer
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Ligne = Me.ComboBox1.ListIndex + 3 'numéro de ligne à partir de laquelle on est dans le tableau de données
For I = 1 To 26 'nombre de TEXTBOX = 26
Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I)
Next I
End Sub"

et voici le code pour le userform2 à insérer
"Option Explicit
Dim Ws As Worksheet 'Pour le formulaire

Private Sub UserForm_Initialize()
Dim J As Long
Dim I As Integer

Set Ws = Sheets("CRM") 'Correspond au nom de votre onglet dans le fichier Excel
With Me.ComboBox1
For J = 3 To Ws.Range("C" & Rows.Count).End(xlUp).Row
.AddItem Ws.Range("C" & J)
Next J
End With
For I = 1 To 26
Me.Controls("TextBox" & I).Visible = True
Next I
End Sub

Private Sub ComboBox1_Change()
Dim Ligne As Long
Dim I As Integer
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Ligne = Me.ComboBox1.ListIndex + 3 'numéro de ligne à partir de laquelle on est dans le tableau de données
For I = 1 To 26 'nombre de TEXTBOX = 26
Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I)
Next I
End Sub"


Par avance merci,
Cédric
 

Bebere

XLDnaute Barbatruc
Re : Blocage au niveau des userform et combobox

regarde si cela te convient
ajout d'une textbox pour le code
tu grossis le classeur inutilement en mettant des formats sur toute la feuille
tu as tableau qui fait cela automatiquement
 

Pièces jointes

  • ClasseurAntoine.zip
    273.3 KB · Affichages: 46
Dernière édition:

cfaure

XLDnaute Nouveau
Re : Blocage au niveau des userform et combobox

Bonjour à nouveau,

Je suis de nouveau coincé au niveau suivant:
ma combobox1 est une liste déroulante des noms des contacts localisés dans ma colonne "C" de ma feuil "CRM".
Lorsque je choisis un nom, ma textbox1 "nom plantation" y affiche le nom de plantation qu'elle va chercher dans la feuil "CRM" (la source) sur la même ligne des noms de contact.

Comment je peux faire pour que suivant le nom plantation qui apparait dans la textbox1, et si le même nom plantation est aussi dans la colonne "C" de ma feuil "Hebdo", les informations correspondantes qui sont sur la même ligne du nom plantation de la feuil "Hebdo" (de la colonne L "famille produit" à P "Emballage" par exemple) puisse apparaitre dans des textbox préalablement créer sur le userform2?

En gros comment faire une sorte de "loop"...

Par avance merci pour votre aide, la je bloque complètement...

Cédric
 

Pièces jointes

  • Userform loop.zip
    273.3 KB · Affichages: 46
  • Userform loop.zip
    273.3 KB · Affichages: 42

Bebere

XLDnaute Barbatruc
Re : Blocage au niveau des userform et combobox

bonjour Cédric,le forum
ajout d'une colonne code plantation dans feuille hebdo(doublons dans noms)
recherche part de textbox2 et le code est dans module1
en plus un exemple avec tableau
 

Pièces jointes

  • Copie de ClasseurAntoine.zip
    272.3 KB · Affichages: 36

cfaure

XLDnaute Nouveau
Re : Blocage au niveau des userform et combobox

Bonjour Bebere, Bonjour tout le monde

Bebere merci encore pour ton aide très précieuse. J’arrive presque au bout et c’est en grande partie grâce à toi. Comme tu as pu le constater, je suis vraiment débutant en VBA et j’essaie tant bien que mal de me débrouiller dans la création d’un outil Excel pour mes employés, afin de suivre leurs activités commerciales.

Sur le dernier coup de main que tu m’as donné je suis sur le bon chemin, mais j’ai encore quelques questions :

Au préalable je crois que c'est important d'expliquer à quoi va servir cet outil pour mes employés.
Quand l’employé ouvre l’outil EXCEL, il doit enregistrer l'identité d'un client et l’activité qu’il a réalisée avec ce dernier. Prenons l’exemple du client1.

Etape 1 : Il veut renseigner les données clients et l’activité commerciale qu’il a eu avec le client1, suite à une première visite chez ce dernier.

1/ Dans l’onglet « CRM », sur le formulaire userform1 : Il remplit les informations du client1 dans la BDD.
Il enregistre ces informations sur une ligne BDD en cliquant sur un bouton « enregistrer le nouveau client » dans le formulaire. Une date d’enregistrement est donc automatiquement renseignée dans la plage de donnée BDD.

2/ Dans l’onglet « Hebdo », sur le formulaire userform2 : Il renseigne l’activité qu’il a réalisé avec le client1.
-> il reprend certaines données clients (qui apparaissent dans « Hebdo » dans les colonnes ayant le
libellé bleu, soit les colonnes C à G mais cela peut être amené à évoluer…) en sélectionnant le nom du client1 dans la liste déroulante (combobox1).
Ainsi certaines données clients reprisent dans l’onglet « CRM » apparaissent automatiquement dans les textbox correspondantes.
-> Il renseigne les données activité & commerciale dans les textbox correspondantes.
Il enregistre ces informations sur une nouvelle ligne en cliquant sur le bouton « enregistrer une nouvelle visite ». Une date d’enregistrement est donc automatiquement renseignée dans la plage de donnée de la feuille "hebdo".

Etape 2 : Il veut renseigner une autre activité qu’il a eu avec le client1, suite à d’autres visites qu’il a aura eu avec ce dernier.

1/ Dans l’onglet « CRM » sur le formulaire userform1 : pas besoin de remplir les informations dans la BDD car cela a logiquement déjà été réalisé lors de l’étape 1.

2/ Dans l’onglet « Hebdo » sur le formulaire userform2 : Il sélectionne le nom du client dans la liste déroulante pour faire apparaitre à la fois certaines données identité du client1 (source : la BDD dans l’onglet « CRM ») et surtout les dernières données commerciales en date (source : la plage de données activité dans l’onglet « Hebdo »).
Si besoin, il modifie certaines données commerciales sur le formulaire.
Il enregistre ces informations sur une nouvelle ligne en cliquant sur le bouton « enregistrer une nouvelle visite ». Une date d’enregistrement est donc automatiquement renseignée dans la plage de donnée activité.
A noter que chaque visite qu’il a effectuée chez le client donne lieu à une nouvelle ligne de données dans la plage de données dans « hebdo ». Donc chaque ligne est identifiable par sa date d’enregistrement et le nom du client.

Mes questions :
- Sur mon userform2, lorsque je sélectionne un client, comment faire en sorte que ce soit le dernier enregistrement en date qui apparaisse ? (c’est-à-dire que ca ne reprenne que la dernière ligne « activité » enregistrée sur la plage de donnée de l’onglet « Hebdo ») j’imagine qu’il faut une reconnaissance à la fois par la date d’entrée et à la fois par le nom du client…
- Existe-t-il un code pour que les Formulaires ne se ferme pas tant que toutes ou certaines des textbox/combobox ne sont pas remplies ?

Voilà j’espère avoir été le plus clair possible… un peu compliqué à expliquer.
Par avance merci pour tes conseils et merci aux autres membres.

Cédric
 

Pièces jointes

  • A envoyer formulaire.zip
    240.9 KB · Affichages: 117

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
315 141
Messages
2 116 691
Membres
112 838
dernier inscrit
aqwzsx