Problème concaténation listbox

  • Initiateur de la discussion Initiateur de la discussion Arpette
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Arpette

XLDnaute Impliqué
Bonsoir à toutes et tous,
j'ai fait avec votre aide une application pour un suivi.

Tout allait bien, jusqu'au moment où un client peut avoir plusieurs adresses. Dans mon USF, jai donc créé deux listbox où je choisis le nom et le lieu.

Le problème est que la recherche sefait que sur le premier nom trouvé (normal) et je n'arrive pas à trouver la solution pour associer ma recherche en fonction des choix de mes listbox.

Je pense qu'il faudrait temporairement renvoyer dans mes clients une concaténation du nom et du lieu des lisbox et renseigner les infos en fonction de cette valeur.

Mais là, je n'y arrive pas 😕🙁
Merci de votre aide
Ci-joints fichiers
 

Pièces jointes

Re : Problème concaténation listbox

Re, merci Job j'ai compris. J'aimerais avoir votre avis sur le comment je vais chercher mon fichier "Mes Clients" qui n'est pas au même endroit d'où je l'appelle.
J'ai fait comme ceci :
Code:
Option Explicit
Dim cellule 'mémorisation

Private Sub UserForm_Initialize()
Dim chemin As String, MonClasseur As Excel.Workbook, plage As Range
cellule = Array([J35], [K36], [I37], [I38], [I39], [J41], [J42])
'chemin = ThisWorkbook.Path & "\"
chemin = "C:\Documents and Settings\JFL CONTROLE\Bureau\Mes Clients\Mes Clients" 'à adapter si nécessaire
'fichier = "Mes Clients"
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'si le fichier est déjà ouvert
On Error Resume Next
'Workbooks.Open chemin & lechemin & fichier 'ouverture du fichier
Set MonClasseur = Excel.Workbooks.Open(chemin)
If Err Then MsgBox "Le fichier '" & fichier & "' est introuvable...": End
Set plage = Evaluate("Tableau")
plage.Sort Columns(1), xlAscending, Columns(8), , xlAscending, Header:=xlNo 'tri
ListBox1.List = plage.Value
ThisWorkbook.Activate
Application.ScreenUpdating = True
End Sub
Celà vous semble propre, je vous accorde que le chemin est un peu tordu, il aurait pu faire plus simple...mais bon.
Merci de votre aide et de vos conseils.
@+
 
Re : Problème concaténation listbox

Bonjour Arpette,

Bon, vous avez supprimé la variable fichier, je vous explique pourquoi vous ne devez pas faire ça.

1) En effet dans Module1 il y avait ces codes :

Code:
Public fichier As String 'mémorisation

Sub Proprietaires()
UserForm1.OptionButton1 = True
UserForm1.Show
Workbooks(fichier).Close False
End Sub

Sub Entreprises()
UserForm1.OptionButton2 = True
UserForm1.ShowWorkbooks(fichier).Close False
End Sub
Ils ferment le fichier fichier quand l'UserForm est fermé.

2) En fait il vaut mieux fermer le fichier dans UserForm_Initialize en remplaçant :

ThisWorkbook.Activate

par :

Workbooks(fichier).Close False

et bien sûr écrire dans Module1 :

Code:
Sub Proprietaires()
UserForm1.OptionButton1 = True
UserForm1.Show
End Sub

Sub Entreprises()
UserForm1.OptionButton2 = True
UserForm1.Show
End Sub
Voir le fichier (2) joint.

3) A la place de Workbooks(fichier).Close False on pourrait utiliser :

ActiveWorkbook.Close False

Mais ce n'est pas souhaitable car le fichier Clients pourrait être masqué, et dans ce cas il ne serait pas actif.

4) Voici donc votre code modifié :

Code:
Option Explicit
Dim cellule 'mémorisation

Private Sub UserForm_Initialize()
Dim chemin As String, fichier As String, plage As Range
cellule = Array([J35], [K36], [I37], [I38], [I39], [J41], [J42])
'chemin = ThisWorkbook.Path & "\"
chemin = "C:\Documents and Settings\JFL CONTROLE\Bureau\Mes Clients\"
fichier = "Mes Clients"
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'si le fichier est déjà ouvert
On Error Resume Next
Workbooks.Open chemin & fichier 'ouverture du fichier
If Err Then MsgBox "Le fichier '" & fichier & "' est introuvable...": End
Set plage = Evaluate("Tableau")
plage.Sort Columns(1), xlAscending, Columns(8), , xlAscending, Header:=xlNo 'tri
ListBox1.List = plage.Value
Workbooks(fichier).Close False 'fermeture du fichier sans enregistrement
Application.ScreenUpdating = True
End Sub
Edit : notez aussi que la variable fichier est utilisée dans le message de la MsgBox...

A+
 

Pièces jointes

Dernière édition:
Re : Problème concaténation listbox

Bonsoir Job, merci pour tous ces conseils, j'avais remis la variable "fichier". J'ai fini par trouvé "Tableau" dans la feuille clients. Il sagit d'un champs calculé, pas facile à retrouver sous 2007 ( il est dans formules,gestionnaire des noms).
Bien, maintenant je dois renvoyer le module1 et le USF vers tous les classeurs.
Merci encore pour votre aide et toutes vos explications.
@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
16
Affichages
1 K
Réponses
6
Affichages
641
L
Réponses
27
Affichages
4 K
M
B
Réponses
5
Affichages
1 K
bilbinou
B
X
Réponses
0
Affichages
1 K
X
T
  • Question Question
Réponses
125
Affichages
14 K
Retour