Bonjour les excel anti SIM ( exellentissimes?) contributeurs du forum
Voila mon soucis.
Dans un userform, j'ai 2 listbox ( société et contact)
Ma listbox société est alimenté à l'ouverture du userforrm par une liste
placée dans un autre classeur qui est ouvert. La liste est classée, triée
sans doublon grace à la fonction "SansDoublonsDictionnaire" de JB-formulaire
La listbox contact me donne alors exclusivement le nom des contacts de cette
société. Le tri se fait par la méthode suivante
For Each c In ['[répertoire.xls]répertoire'!société]
If c.Value = Me.société Then Me.contact.AddItem c.Offset(0, 1)
Next c
Jusque là tous fontionne nickel.( Merci le forum ….)
Mais lorsque j'essaye de renvoyer le nom que j'ai sélectionner de ma listbox
contact vers une cellule rien ne se passe.
[C15] = Me.Contact.Value
bonjour françois à tout hasaer et après survol de ta question :*
Me.Contact.Value = [C15]
heu...pas testé et pas excellentissime non plus jps
"francois63000" a écrit dans le message de news:
Bonjour les excel anti SIM ( exellentissimes?) contributeurs du forum
Voila mon soucis.
Dans un userform, j'ai 2 listbox ( société et contact)
Ma listbox société est alimenté à l'ouverture du userforrm par une liste placée dans un autre classeur qui est ouvert. La liste est classée, triée sans doublon grace à la fonction "SansDoublonsDictionnaire" de JB-formulaire
La listbox contact me donne alors exclusivement le nom des contacts de cette société. Le tri se fait par la méthode suivante For Each c In ['[répertoire.xls]répertoire'!société] If c.Value = Me.société Then Me.contact.AddItem c.Offset(0, 1) Next c Jusque là tous fontionne nickel.( Merci le forum ….)
Mais lorsque j'essaye de renvoyer le nom que j'ai sélectionner de ma listbox contact vers une cellule rien ne se passe. [C15] = Me.Contact.Value
Merci par avance pour vos merveilleuses idées
bonjour françois
à tout hasaer et après survol de ta question :*
Me.Contact.Value = [C15]
heu...pas testé et pas excellentissime non plus
jps
"francois63000" <francois63000@discussions.microsoft.com> a écrit dans le
message de news: 987C2D2E-D8C4-4752-9524-33B51F4ED723@microsoft.com...
Bonjour les excel anti SIM ( exellentissimes?) contributeurs du forum
Voila mon soucis.
Dans un userform, j'ai 2 listbox ( société et contact)
Ma listbox société est alimenté à l'ouverture du userforrm par une liste
placée dans un autre classeur qui est ouvert. La liste est classée, triée
sans doublon grace à la fonction "SansDoublonsDictionnaire" de
JB-formulaire
La listbox contact me donne alors exclusivement le nom des contacts de
cette
société. Le tri se fait par la méthode suivante
For Each c In ['[répertoire.xls]répertoire'!société]
If c.Value = Me.société Then Me.contact.AddItem c.Offset(0, 1)
Next c
Jusque là tous fontionne nickel.( Merci le forum ….)
Mais lorsque j'essaye de renvoyer le nom que j'ai sélectionner de ma
listbox
contact vers une cellule rien ne se passe.
[C15] = Me.Contact.Value
bonjour françois à tout hasaer et après survol de ta question :*
Me.Contact.Value = [C15]
heu...pas testé et pas excellentissime non plus jps
"francois63000" a écrit dans le message de news:
Bonjour les excel anti SIM ( exellentissimes?) contributeurs du forum
Voila mon soucis.
Dans un userform, j'ai 2 listbox ( société et contact)
Ma listbox société est alimenté à l'ouverture du userforrm par une liste placée dans un autre classeur qui est ouvert. La liste est classée, triée sans doublon grace à la fonction "SansDoublonsDictionnaire" de JB-formulaire
La listbox contact me donne alors exclusivement le nom des contacts de cette société. Le tri se fait par la méthode suivante For Each c In ['[répertoire.xls]répertoire'!société] If c.Value = Me.société Then Me.contact.AddItem c.Offset(0, 1) Next c Jusque là tous fontionne nickel.( Merci le forum ….)
Mais lorsque j'essaye de renvoyer le nom que j'ai sélectionner de ma listbox contact vers une cellule rien ne se passe. [C15] = Me.Contact.Value
Merci par avance pour vos merveilleuses idées
Youky
[Feuil2!C5] = Me.Contact.Value changer Feuil2 pour la bonne page Si tu es sur un userform ..Important le nom de la page Youky
[Feuil2!C5] = Me.Contact.Value
changer Feuil2 pour la bonne page
Si tu es sur un userform ..Important le nom de la page
Youky
[Feuil2!C5] = Me.Contact.Value changer Feuil2 pour la bonne page Si tu es sur un userform ..Important le nom de la page Youky
francois63000
Ca ne marche toujours pas. J'ai rentrer le meme code de renvoi pour la société et celui ci fonctionne comme il faut
je me demande si le problème ne vient pas du fait que ma liste est créé en fonction du résultat d'une autre Ou bien j'ai peut être changer une propriété de la combobox qu'il ne fallait pas toucher?
merci quand meme
[Feuil2!C5] = Me.Contact.Value changer Feuil2 pour la bonne page Si tu es sur un userform ..Important le nom de la page Youky
Ca ne marche toujours pas.
J'ai rentrer le meme code de renvoi pour la société et celui ci fonctionne
comme il faut
je me demande si le problème ne vient pas du fait que ma liste est créé en
fonction du résultat d'une autre
Ou bien j'ai peut être changer une propriété de la combobox qu'il ne fallait
pas toucher?
merci quand meme
[Feuil2!C5] = Me.Contact.Value
changer Feuil2 pour la bonne page
Si tu es sur un userform ..Important le nom de la page
Youky
Ca ne marche toujours pas. J'ai rentrer le meme code de renvoi pour la société et celui ci fonctionne comme il faut
je me demande si le problème ne vient pas du fait que ma liste est créé en fonction du résultat d'une autre Ou bien j'ai peut être changer une propriété de la combobox qu'il ne fallait pas toucher?
merci quand meme
[Feuil2!C5] = Me.Contact.Value changer Feuil2 pour la bonne page Si tu es sur un userform ..Important le nom de la page Youky
francois63000
mon probleme vien d'une propriété que j'ai du changer
je vien de creer une nouvelle combobox avec le mem nom et elle marche nickel. Donc j'ai plus de problème mais j'aimerai bien connaitre la propriété qu'il fallait pas changer si tu as une idée Comme ca je me coucherai moins bete ce soir lol
Merci pour ton aide
Ca ne marche toujours pas. J'ai rentrer le meme code de renvoi pour la société et celui ci fonctionne comme il faut
je me demande si le problème ne vient pas du fait que ma liste est créé en fonction du résultat d'une autre Ou bien j'ai peut être changer une propriété de la combobox qu'il ne fallait pas toucher?
merci quand meme
[Feuil2!C5] = Me.Contact.Value changer Feuil2 pour la bonne page Si tu es sur un userform ..Important le nom de la page Youky
mon probleme vien d'une propriété que j'ai du changer
je vien de creer une nouvelle combobox avec le mem nom et elle marche
nickel. Donc j'ai plus de problème mais j'aimerai bien connaitre la propriété
qu'il fallait pas changer si tu as une idée
Comme ca je me coucherai moins bete ce soir lol
Merci pour ton aide
Ca ne marche toujours pas.
J'ai rentrer le meme code de renvoi pour la société et celui ci fonctionne
comme il faut
je me demande si le problème ne vient pas du fait que ma liste est créé en
fonction du résultat d'une autre
Ou bien j'ai peut être changer une propriété de la combobox qu'il ne fallait
pas toucher?
merci quand meme
[Feuil2!C5] = Me.Contact.Value
changer Feuil2 pour la bonne page
Si tu es sur un userform ..Important le nom de la page
Youky
mon probleme vien d'une propriété que j'ai du changer
je vien de creer une nouvelle combobox avec le mem nom et elle marche nickel. Donc j'ai plus de problème mais j'aimerai bien connaitre la propriété qu'il fallait pas changer si tu as une idée Comme ca je me coucherai moins bete ce soir lol
Merci pour ton aide
Ca ne marche toujours pas. J'ai rentrer le meme code de renvoi pour la société et celui ci fonctionne comme il faut
je me demande si le problème ne vient pas du fait que ma liste est créé en fonction du résultat d'une autre Ou bien j'ai peut être changer une propriété de la combobox qu'il ne fallait pas toucher?
merci quand meme
[Feuil2!C5] = Me.Contact.Value changer Feuil2 pour la bonne page Si tu es sur un userform ..Important le nom de la page Youky
MichDenis
with Me.Contact If .ListIndex <> -1 Then [C15] = .List(.ListIndex) end if end with
"francois63000" a écrit dans le message de news:
Bonjour les excel anti SIM ( exellentissimes?) contributeurs du forum
Voila mon soucis.
Dans un userform, j'ai 2 listbox ( société et contact)
Ma listbox société est alimenté à l'ouverture du userforrm par une liste placée dans un autre classeur qui est ouvert. La liste est classée, triée sans doublon grace à la fonction "SansDoublonsDictionnaire" de JB-formulaire
La listbox contact me donne alors exclusivement le nom des contacts de cette société. Le tri se fait par la méthode suivante For Each c In ['[répertoire.xls]répertoire'!société] If c.Value = Me.société Then Me.contact.AddItem c.Offset(0, 1) Next c Jusque là tous fontionne nickel.( Merci le forum ..)
Mais lorsque j'essaye de renvoyer le nom que j'ai sélectionner de ma listbox contact vers une cellule rien ne se passe. [C15] = Me.Contact.Value
Merci par avance pour vos merveilleuses idées
with Me.Contact
If .ListIndex <> -1 Then
[C15] = .List(.ListIndex)
end if
end with
"francois63000" <francois63000@discussions.microsoft.com> a écrit dans le message de news:
987C2D2E-D8C4-4752-9524-33B51F4ED723@microsoft.com...
Bonjour les excel anti SIM ( exellentissimes?) contributeurs du forum
Voila mon soucis.
Dans un userform, j'ai 2 listbox ( société et contact)
Ma listbox société est alimenté à l'ouverture du userforrm par une liste
placée dans un autre classeur qui est ouvert. La liste est classée, triée
sans doublon grace à la fonction "SansDoublonsDictionnaire" de JB-formulaire
La listbox contact me donne alors exclusivement le nom des contacts de cette
société. Le tri se fait par la méthode suivante
For Each c In ['[répertoire.xls]répertoire'!société]
If c.Value = Me.société Then Me.contact.AddItem c.Offset(0, 1)
Next c
Jusque là tous fontionne nickel.( Merci le forum ..)
Mais lorsque j'essaye de renvoyer le nom que j'ai sélectionner de ma listbox
contact vers une cellule rien ne se passe.
[C15] = Me.Contact.Value
with Me.Contact If .ListIndex <> -1 Then [C15] = .List(.ListIndex) end if end with
"francois63000" a écrit dans le message de news:
Bonjour les excel anti SIM ( exellentissimes?) contributeurs du forum
Voila mon soucis.
Dans un userform, j'ai 2 listbox ( société et contact)
Ma listbox société est alimenté à l'ouverture du userforrm par une liste placée dans un autre classeur qui est ouvert. La liste est classée, triée sans doublon grace à la fonction "SansDoublonsDictionnaire" de JB-formulaire
La listbox contact me donne alors exclusivement le nom des contacts de cette société. Le tri se fait par la méthode suivante For Each c In ['[répertoire.xls]répertoire'!société] If c.Value = Me.société Then Me.contact.AddItem c.Offset(0, 1) Next c Jusque là tous fontionne nickel.( Merci le forum ..)
Mais lorsque j'essaye de renvoyer le nom que j'ai sélectionner de ma listbox contact vers une cellule rien ne se passe. [C15] = Me.Contact.Value
Merci par avance pour vos merveilleuses idées
JB
Bonjour,
La source est dans un autre classeur ouvert(CascadeSource.xls)
Nommer le champ Société2 avec Insertion/Nom/Définir ÞCALER([CascadeSource.xls]Feuil1!$A$2;;;NBVAL([CascadeSource.xls]Feuil1 !$A:$A))
Private Sub UserForm_Initialize() ChDir ActiveWorkbook.Path Maitre = ThisWorkbook.Name Workbooks.Open Filename:="CascadeSource.xls" Windows(Maitre).Activate Me.ChoixSociété.List = SansDoublonsDictionnaire([société2]) End Sub
Private Sub ChoixSociété_Change() Me.Contacts.Clear For Each c In [société2] If c = Me.ChoixSociété Then Me.Contacts.AddItem c.Offset(0, 1) End If Next c End Sub
Private Sub Contacts_Click() [B6] = Me.Contacts End Sub
Function SansDoublonsDictionnaire(champ) Set MonDico = CreateObject("Scripting.Dictionary") For Each c In champ If c.Value <> "" Then If Not MonDico.Exists(c.Value) Then MonDico.Add c.Value, c.Value End If Next c '-- transfert dans un tableau temp = MonDico.items Call tri(temp, LBound(temp), UBound(temp)) SansDoublonsDictionnaire = Application.Transpose(temp) End Function
Sub tri(a, gauc, droi) ' Quick sort ref = a((gauc + droi) 2) g = gauc: d = droi Do Do While a(g) < ref: g = g + 1: Loop Do While ref < a(d): d = d - 1: Loop If g <= d Then temp = a(g): a(g) = a(d): a(d) = temp g = g + 1: d = d - 1 End If Loop While g <= d If g < droi Then Call tri(a, g, droi) If gauc < d Then Call tri(a, gauc, d) End Sub
Autre solution avec classeur externe fermé:
http://cjoint.com/?lzeAMi4mJ3
CascadeADO2.XLS contient un champ nommé BDListe ($A$1:$B$xx)
Private Sub UserForm_Initialize() ' dans Outils/Références cocher ' Microsoft ActivexDataObject 2.8 Library ChDir ActiveWorkbook.Path Dim rs As ADODB.Recordset Set cnn = New ADODB.Connection cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQÊscadeADO2.XLS" Set rs = cnn.Execute("SELECT Société FROM BDListe GROUP BY Société") Do While Not rs.EOF Me.ChoixSociété.AddItem rs("Société") rs.MoveNext Loop rs.Close cnn.Close Set rs = Nothing Set cnn = Nothing End Sub
Private Sub ChoixSociété_Change() Me.Contacts.Clear Dim rs As ADODB.Recordset Set cnn = New ADODB.Connection cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQÊscadeADO2.XLS" Set rs = cnn.Execute("SELECT Contact FROM BDListe WHERE société='" & Me.ChoixSociété & "' ORDER BY contact") Do While Not rs.EOF Me.Contacts.AddItem rs("Contact") rs.MoveNext Loop rs.Close cnn.Close Set rs = Nothing Set cnn = Nothing End Sub
JB
Bonjour les excel anti SIM ( exellentissimes?) contributeurs du forum
Voila mon soucis.
Dans un userform, j'ai 2 listbox ( société et contact)
Ma listbox société est alimenté à l'ouverture du userforrm par un e liste placée dans un autre classeur qui est ouvert. La liste est classée, t riée sans doublon grace à la fonction "SansDoublonsDictionnaire" de JB-formu laire
La listbox contact me donne alors exclusivement le nom des contacts de ce tte société. Le tri se fait par la méthode suivante For Each c In ['[répertoire.xls]répertoire'!société] If c.Value = Me.société Then Me.contact.AddItem c.Offset(0, 1) Next c Jusque là tous fontionne nickel.( Merci le forum ....)
Mais lorsque j'essaye de renvoyer le nom que j'ai sélectionner de ma li stbox contact vers une cellule rien ne se passe. [C15] = Me.Contact.Value
Merci par avance pour vos merveilleuses idées
Bonjour,
La source est dans un autre classeur ouvert(CascadeSource.xls)
Nommer le champ Société2 avec Insertion/Nom/Définir
=DECALER([CascadeSource.xls]Feuil1!$A$2;;;NBVAL([CascadeSource.xls]Feuil1 !$A:$A))
Private Sub UserForm_Initialize()
ChDir ActiveWorkbook.Path
Maitre = ThisWorkbook.Name
Workbooks.Open Filename:="CascadeSource.xls"
Windows(Maitre).Activate
Me.ChoixSociété.List = SansDoublonsDictionnaire([société2])
End Sub
Private Sub ChoixSociété_Change()
Me.Contacts.Clear
For Each c In [société2]
If c = Me.ChoixSociété Then
Me.Contacts.AddItem c.Offset(0, 1)
End If
Next c
End Sub
Private Sub Contacts_Click()
[B6] = Me.Contacts
End Sub
Function SansDoublonsDictionnaire(champ)
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In champ
If c.Value <> "" Then
If Not MonDico.Exists(c.Value) Then MonDico.Add c.Value, c.Value
End If
Next c
'-- transfert dans un tableau
temp = MonDico.items
Call tri(temp, LBound(temp), UBound(temp))
SansDoublonsDictionnaire = Application.Transpose(temp)
End Function
Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
Autre solution avec classeur externe fermé:
http://cjoint.com/?lzeAMi4mJ3
CascadeADO2.XLS contient un champ nommé BDListe ($A$1:$B$xx)
Private Sub UserForm_Initialize()
' dans Outils/Références cocher
' Microsoft ActivexDataObject 2.8 Library
ChDir ActiveWorkbook.Path
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Excel Driver
(*.xls)};DBQ=CascadeADO2.XLS"
Set rs = cnn.Execute("SELECT Société FROM BDListe GROUP BY
Société")
Do While Not rs.EOF
Me.ChoixSociété.AddItem rs("Société")
rs.MoveNext
Loop
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub
Private Sub ChoixSociété_Change()
Me.Contacts.Clear
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Excel Driver
(*.xls)};DBQ=CascadeADO2.XLS"
Set rs = cnn.Execute("SELECT Contact FROM BDListe WHERE société='"
& Me.ChoixSociété & "' ORDER BY contact")
Do While Not rs.EOF
Me.Contacts.AddItem rs("Contact")
rs.MoveNext
Loop
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub
JB
Bonjour les excel anti SIM ( exellentissimes?) contributeurs du forum
Voila mon soucis.
Dans un userform, j'ai 2 listbox ( société et contact)
Ma listbox société est alimenté à l'ouverture du userforrm par un e liste
placée dans un autre classeur qui est ouvert. La liste est classée, t riée
sans doublon grace à la fonction "SansDoublonsDictionnaire" de JB-formu laire
La listbox contact me donne alors exclusivement le nom des contacts de ce tte
société. Le tri se fait par la méthode suivante
For Each c In ['[répertoire.xls]répertoire'!société]
If c.Value = Me.société Then Me.contact.AddItem c.Offset(0, 1)
Next c
Jusque là tous fontionne nickel.( Merci le forum ....)
Mais lorsque j'essaye de renvoyer le nom que j'ai sélectionner de ma li stbox
contact vers une cellule rien ne se passe.
[C15] = Me.Contact.Value
Nommer le champ Société2 avec Insertion/Nom/Définir ÞCALER([CascadeSource.xls]Feuil1!$A$2;;;NBVAL([CascadeSource.xls]Feuil1 !$A:$A))
Private Sub UserForm_Initialize() ChDir ActiveWorkbook.Path Maitre = ThisWorkbook.Name Workbooks.Open Filename:="CascadeSource.xls" Windows(Maitre).Activate Me.ChoixSociété.List = SansDoublonsDictionnaire([société2]) End Sub
Private Sub ChoixSociété_Change() Me.Contacts.Clear For Each c In [société2] If c = Me.ChoixSociété Then Me.Contacts.AddItem c.Offset(0, 1) End If Next c End Sub
Private Sub Contacts_Click() [B6] = Me.Contacts End Sub
Function SansDoublonsDictionnaire(champ) Set MonDico = CreateObject("Scripting.Dictionary") For Each c In champ If c.Value <> "" Then If Not MonDico.Exists(c.Value) Then MonDico.Add c.Value, c.Value End If Next c '-- transfert dans un tableau temp = MonDico.items Call tri(temp, LBound(temp), UBound(temp)) SansDoublonsDictionnaire = Application.Transpose(temp) End Function
Sub tri(a, gauc, droi) ' Quick sort ref = a((gauc + droi) 2) g = gauc: d = droi Do Do While a(g) < ref: g = g + 1: Loop Do While ref < a(d): d = d - 1: Loop If g <= d Then temp = a(g): a(g) = a(d): a(d) = temp g = g + 1: d = d - 1 End If Loop While g <= d If g < droi Then Call tri(a, g, droi) If gauc < d Then Call tri(a, gauc, d) End Sub
Autre solution avec classeur externe fermé:
http://cjoint.com/?lzeAMi4mJ3
CascadeADO2.XLS contient un champ nommé BDListe ($A$1:$B$xx)
Private Sub UserForm_Initialize() ' dans Outils/Références cocher ' Microsoft ActivexDataObject 2.8 Library ChDir ActiveWorkbook.Path Dim rs As ADODB.Recordset Set cnn = New ADODB.Connection cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQÊscadeADO2.XLS" Set rs = cnn.Execute("SELECT Société FROM BDListe GROUP BY Société") Do While Not rs.EOF Me.ChoixSociété.AddItem rs("Société") rs.MoveNext Loop rs.Close cnn.Close Set rs = Nothing Set cnn = Nothing End Sub
Private Sub ChoixSociété_Change() Me.Contacts.Clear Dim rs As ADODB.Recordset Set cnn = New ADODB.Connection cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQÊscadeADO2.XLS" Set rs = cnn.Execute("SELECT Contact FROM BDListe WHERE société='" & Me.ChoixSociété & "' ORDER BY contact") Do While Not rs.EOF Me.Contacts.AddItem rs("Contact") rs.MoveNext Loop rs.Close cnn.Close Set rs = Nothing Set cnn = Nothing End Sub
JB
Bonjour les excel anti SIM ( exellentissimes?) contributeurs du forum
Voila mon soucis.
Dans un userform, j'ai 2 listbox ( société et contact)
Ma listbox société est alimenté à l'ouverture du userforrm par un e liste placée dans un autre classeur qui est ouvert. La liste est classée, t riée sans doublon grace à la fonction "SansDoublonsDictionnaire" de JB-formu laire
La listbox contact me donne alors exclusivement le nom des contacts de ce tte société. Le tri se fait par la méthode suivante For Each c In ['[répertoire.xls]répertoire'!société] If c.Value = Me.société Then Me.contact.AddItem c.Offset(0, 1) Next c Jusque là tous fontionne nickel.( Merci le forum ....)
Mais lorsque j'essaye de renvoyer le nom que j'ai sélectionner de ma li stbox contact vers une cellule rien ne se passe. [C15] = Me.Contact.Value