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

Bonsoir Job le forum,
merci pour ta réponse, j'ai mis deux colonnes dans la première listbox, mais je fais quoi maintenant pour mon problème🙁(.
Merci d'avance
@+
Re, j'ai fini par trouver, voici comment:
Quand je valide mes listbox, je concatène si les conditions sont remplies
Code:
Private Sub Valider_Click()
Application.ScreenUpdating = False
ActiveWorkbook.ActiveSheet.Cells(35, 11).Value = Me.LMespropriétaires.List(Me.LMespropriétaires.ListIndex)
Cells(40, 11).Value = Me.LMeadresses.List(Me.LMeadresses.ListIndex)
'Si K35 et K40 ne sont pas vide, on concatene en K34
If Cells(35, 11) <> "" And Cells(40, 11) <> "" = True Then
    Cells(34, 11).FormulaR1C1 = Cells(35, 11).Value & Cells(40, 11).Value
    Else
End If
FMespropriétaires.Hide
Application.ScreenUpdating = True
        ' Stockage du résultat dans la cellule K35
End Sub
J'ai également modifié ma recherche comme ceci:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Intersect(Target, Range("K34")) Is Nothing Then Exit Sub

    Dim rng As Range
    Dim Clients As Worksheet
    Dim x As Range
    Dim Lechemin As String
    Dim MonClasseur As Excel.Workbook
    Dim WB1 As Workbook
    
    Set WB1 = ThisWorkbook
    Lechemin = "K:\Trames\Mes Clients"

    Set MonClasseur = Excel.Workbooks.Open(Lechemin)
    Windows("ACCESSOIRES DE LEVAGE1.xls").Activate
    Worksheets("Page 1").Select
    
    Set rng = Worksheets("Page 1").Range("K34")
    Set Clients = MonClasseur.Sheets("Feuil1")
        Set x = Clients.Columns("A:I").Find(Range("K34").Value, , xlValues, xlWhole, , , False)
        If Not x Is Nothing Then
            Range("K36").Value = x.Offset(0, -7).Value
            Range("I37").Value = x.Offset(0, -6).Value
            Range("I38").Value = x.Offset(0, -5).Value
            Range("I39").Value = x.Offset(0, -4).Value
            Range("K41").Value = x.Offset(0, -3).Value
            Range("K42").Value = x.Offset(0, -2).Value
Ensuite je recherche cette concaténation dans mon classeur client que j'ai préalablement concaténé (Nom & Lieu) à l'ouverture du classeur.
Malgré qu'il ne soit pas très passionnant, mon code répond aux attentes du demandeur.
@+
 
Dernière édition:
Re : Problème concaténation listbox

Bonjour Arpette, le forum,

Juste un exemple pour montrer ce que l'on peut faire assez simplement.

Mettez les 3 fichiers dans le même répertoire (par exemple le bureau).

Nota :

- il y a un seul UserForm

- la ListBox a 8 colonnes dont 6 de largeur nulle.

- la liste de la ListBox est triée alphabétiquement à l'ouverture de l'UserForm

- dans les 2 fichiers sources, voir le nom défini Tableau.

- en passant voir la formule de la date en W46.

A+
 

Pièces jointes

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

Bonsoir Job le forum,
J'ai deux questions, quand je clique sur propriétaire, le bouton du USF affiche "Données Entreprises" et inversement pour entreprise. J'ai essayé de corriger mais rien n'y fait.
Ma seconde question est la suivante:
est-il possible d'avoir un seul bouton ex: "Sélection", qui appelle un seul fichier ex: "Mes client" et suivant les bouton du USF, on renseigne la partie propriétaire ou entreprise.
Merci de votre aide et de vos conseils
@+
 
Re : Problème concaténation listbox

Bonjour Arpette, le forum,

J'ai mis les 2 listes Propriétaires et Entreprises dans le fichier Mes clients.

Comme vous semblez avoir du mal à comprendre ce que faisait le bouton dans l'USF, j'ai mis à la place 2 OptionButtons...

A+
 

Pièces jointes

Re : Problème concaténation listbox

Re,

Vous préférez peut-être une liste de clients unique ?

Laisser à l'utilisateur le soin de déterminer si le client est "Propriétaire" ou "Entreprise" me paraît source d'erreurs, mais enfin...

A+
 

Pièces jointes

Re : Problème concaténation listbox

Bonsoir Job, merci pour ces réponses. J'ai opté pour la dernière, c'est bien un fichier unique que je souhaite et c'est l'utilisateur qui doit choisir. Il s'agit de contrôles d'engins, et un même proriétaire peut avoir un engin dans un emplacement et un autre ailleur. C'est l'intitulé " Entreprise" que je ne trouve pas très approprié...mais bon.
Par contre le fichier "Clients" se trouve dans un autre endroit que celui des trames (les trames sont des classeurs excel qui sont différents en fonction du type de matériel "tracteur, pelleteuse, camion etc...") par contre les données de la macro sont toujours dans des cellules identiques: ce fichier "Mes Clients" se trouve dans c:\document\bla..\bla et je n'arrive pas à insérer ce chemin dans votre code, ou si j'y arrive, ma listbox à l'affichage est vide.
C'est le dernier point qui me pose problème.
Encore un grand merci pour votre aide.
A bientôt.
 
Re : Problème concaténation listbox

Bonjour Arpette,

Si la ListBox est vide c'est que probablement le nom Tableau n'a pas été défini dans le fichier Clients.

Je rappelle la formule de définition :

Code:
=DECALER(Liste!$A$1;1;;MAX(NBVAL(Liste!$A:$A)-1;1);8)
A+
 
Re : Problème concaténation listbox

Bonsoir Job, je suis désolé mais je ne comprends pas la réponse. J'ai regardé dans le fichier client, je ne trouve rien. J'ai demandé l'aide avec F1 sur Evaluate, j'ai vu que celà converti un nom en objet mais je ne vois pas comment faire.
Merci de votre aide
@+
 
Re : Problème concaténation listbox

Re,

Dans le fichier Clients que j'ai joint, étant sur une feuille de calcul, menu Insertion => Nom => Définir.

Voyez le nom Tableau et sa définition. Faites la même chose sur votre fichier.

Tableau est une plage dynamique (évolutive).

A+
 
- 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