Microsoft 365 ListBox transposée

JessCH

XLDnaute Nouveau
Bonjour le forum,
Je galère avec une ListBox.
Comment transposer une ListBox dans une feuille excel avec une recherche dans un tableau.
Voici le code :
VB:
Private Sub CButton_Enregistrer_Click()

If MsgBox("Voulez-vous enregistrer la modification ?", vbYesNo, "Demande de confirmation") = vbYes Then
  End If
 
    Set Ta = ThisWorkbook.Sheets("BD")

  Set A = Ta.Range("A:A").Cells.Find(Me.TB_Entreprise, , xlValues, xlWhole) 'recherche rang dans tableau "BD"
    If Not A Is Nothing Then


                  Ta.Cells(A.Row, 3) = TB_Adresse_Potale.Value
                  Ta.Cells(A.Row, 5) = TB_Adresse_Physique.Value
                  Ta.Cells(A.Row, 4) = TB_Ville.Value
                  Ta.Cells(A.Row, 6) = TB_Pays.Value
                  Ta.Cells(A.Row, 7) = TB_Téléphone.Value
                  Ta.Cells(A.Row, 8) = ListBox1.Application.Transpose(.List)
                  
                  End If
                  End Sub

Je ne sais pas comment faire pour que le contenue de ma ListBox soit envoyé dans la bonne cellule après recherche.
J'ai un message d'erreur:
"
Erreur de compilation:
Référence incorrecte ou non qualifiée "

Surbrillance sur

Code:
(.List)

D'avance, merci
 

Dudu2

XLDnaute Barbatruc
Bonjour,
En effet, .List est non qualifié en premier lieu sans préjuger du fait que ce soit une référence correcte en fonction de l'objet auquel .List est supposé appartenir.
Pour qualifier .List, soit tu mets l'objet devant <Objet>.List soit tu utilises un With <Objet>
D.
 

job75

XLDnaute Barbatruc
Bonjour JessCH, Dudu2,

Très bizarre votre manière d'utiliser Application.Transpose, a priori il faudrait écrire :
VB:
Ta.Cells(A.Row, 8) = Application.Transpose(ListBox1.List)
Mais à droite du signe = on a une matrice, ça n'ira pas… Peut être tout bêtement :
VB:
Ta.Cells(A.Row, 8) = ListBox1
A+
 

JessCH

XLDnaute Nouveau
Bonjour a toutes est a tous et avant toute chose, BONNE ANNEE !!! :)

Alors j'ai essayé plusieurs possibilité selon les conseils de Dudu2 et job75, mais ça ne fonctionne pas...

Je joint mon fichier un peu simplifié vue qu'il y a des données confidentielles, je joint aussi une petite aide vue qu'il est assez complexe a utiliser si c'est en mode Admin.

J'espère qu'avec ça, vous pourrez faire qqchose pour m'aider.

Un grand merci d'avance.
 

Pièces jointes

  • Document1.pdf
    697 KB · Affichages: 3
  • JESS.xlsm
    256.8 KB · Affichages: 9

JessCH

XLDnaute Nouveau
Bonjour job75,

C'est parce que j'ai simplifié le problème pour facilité la compréhension de mon problème. Mais je m'appercois que ce n'est pas ça...
Dans mon fichier Excel il y a 3 base de données :
  1. La 1er Feuil1(BD) : nom ; adresse ; tél etc de l'entreprise.
  2. La 2ème Feuil2(Contacts) Nom des personnes de contact avec leurs fonctions.
  3. La 3ème base de données (Feuil3) Leur spécialités. "Métiers".

J'aimerais pouvoir modifier leur métiers qui est dans la Feuil3 dés qu'un changement est nécessaire. Tout cela a partir de mon UserForm "UF_BD".

J'espère avoir été plus clair cette fois ci.

Merci.
 

Dudu2

XLDnaute Barbatruc
Bonjour,
S'il faut plonger dans le code, ce n'est pas très cool. Que veux tu faire au juste ?
Tu as une ListBox et tu veux en charger le contenu dans des cellules avec une transposition ? Cest ça ?
VB:
Dim TT() As Variant
TT = ActiveSheet.ListBox1.List
Range("A1").Resize(UBound(TT, 2) + 1, UBound(TT, 1) + 1).Value = WorksheetFunction.Transpose(TT)

Ou encore plus simple:
Code:
Range("A1").Resize(2, ActiveSheet.ListBox1.ListCount).Value = WorksheetFunction.Transpose(ActiveSheet.ListBox1.List)
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
Ta ListBox n'est pas en direct sur une feuille comme dans mes exemples.
Elle est dans un UserForm. Et comme à priori ton code est dans le UserForm...
VB:
Range("A1").Resize(2, Me.LB_Métiers.ListCount).Value = WorksheetFunction.Transpose(Me.LB_Métiers.List)
 

Discussions similaires

Réponses
2
Affichages
241
Réponses
10
Affichages
312

Statistiques des forums

Discussions
312 238
Messages
2 086 491
Membres
103 234
dernier inscrit
matteo75654548