Remplacer listview par listbox

bonjour à tous et toutes

merci a BOB75AU et BAKH pour leur implication dans ce post ou le dernier fichier "test" de BOB74AU est en page 2 du 25 Jan 2014, 17:20

fichier du post =

83copie-de-test.xlsm (21.61 Ko)

post =https://forum.excel-pratique.com/excel/iniatlisation-listview-t47186-20.html?hilit=BOB75AU

maintenant je voudrais le modifier afin de remplacer la listview qui fait défaut sur certaine machine, par une lisbox

mais je bloque et m'en remets aux mains d'expert du Forum

Bonjour,

j'ai un peu modifié le code pour faire le test à même ce fichier,

vous aurez à adapter ThisWorkbook pour votre fichier et .Sheets(1) au lieu de .Sheets(2)

et remettre actif quelque ligne que j'ai mit en commentaire

Private Sub CommandButton1_Click()
'copie les lignes selectionnées dans la colonne G
Dim i As Integer
Dim rg As Range
Dim Fichier As Workbook
Dim Chemin As String

Chemin = UserForm1.ComboBox1
Application.ScreenUpdating = False
On Error Resume Next
If ListBox1.ListIndex = -1 Then Exit Sub 'si aucune selection
'Set Fichier = Workbooks.Open("C:\Facturations\base\fournisseurs\" & Chemin)
'With Workbooks("monClasseurBase_V01")
With ThisWorkbook
n = .Sheets(2).Range("M65536").End(xlUp).Row + 1
    'on boucle sur tous les éléments du ListBox1
    For i = 0 To ListBox1.ListCount - 1
     If ListBox1.Selected(i) = True Then
      .Sheets(2).Cells(n, "M") = UserForm2.ListBox1.List(i, 0)
      .Sheets(2).Cells(n, "N") = UserForm2.ListBox1.List(i, 6)
      .Sheets(2).Cells(n, "O") = UserForm2.ListBox1.List(i, 7)
     End If
     n = .Sheets(2).Range("M65536").End(xlUp).Row + 1
    Next i
'   .Close (1)
End With
Application.ScreenUpdating = True
End Sub
'
    Private Sub UserForm_Initialize()
    Dim rg As Range
    Dim t As Byte, x As Byte, j As Byte
    Dim fournisseur As Variant
    Set rg = Sheets("Feuil1").Range("d19:k" & Range("k65536").End(xlUp).Row)

    With Me.ListBox1
    .ColumnCount = rg.Columns.Count
    .BoundColumn = 1
    .ColumnWidths = "100;5;5;5;5;60;60;60"
    .ListStyle = fmListStyleOption
    .MultiSelect = fmMultiSelectMulti
    .Clear
    .List = rg.Value
    End With

    fournisseur = Array("Rouenel", "Rexel", "Tanguy", "Leader Mat", _
                    "Castorama", "Point P", "Dispano", "Cedeo", "Kerbrat", "Qama", _
                    "Foussier", "Wurth", "Berner")
    For i = 0 To UBound(fournisseur)
        ComboBox1.AddItem fournisseur(i)
    Next i
    ComboBox1.ListIndex = 0
    End Sub

bonsoir sabV

Merci de ta réponse, mais il manque le combobox _change que j'ai essayer comme suis

mais sans réponse

Private Sub ComboBox1_Change()
    Dim I As Integer
    If UserForm2.Combox1.ListIndex <> -1 Then
      For I = 1 To UserForm2.ListBox1.ListIndex.Count
        If UserForm2.ListBox1.ListIndex(I).Checked = True Then UserForm2.ListBox1.ListIndex(I).Checked = False
      Next I
    End If
    End Sub

le but de ce classeur est de passer commande en sélectionnant les lignes nécessaires et correspondant a tel ou tel fournisseur

puis(ou avant) choisir le fournisseur, puis une fois tous les choix fait, cliquer sur transfert qui envoie les lignes sélectionnées dans le classeur au nom choisi dans la combobox afin d'injecter les lignes a partir de la dernière écrite, ou a partir de la 8ème

ce classeur est dans un dossier "fournisseurs" sous

C:\Facturations\base\fournisseurs\

qui contient tous les classeurs aux noms des fournisseurs de la combobox

voici un exemple du classeur qui est sur

C:\Facturations\base\fournisseurs\

apercu classeur fournisseurs

Bonjour,

Désolé, il n'y avait pas de macro ComboBox1_Change dans le fichier transmit,

je croyait que c'était le bouton qui faisait le transfert et que le ComboBox1 servait uniquement à renseigner le chemin.

Chemin = UserForm1.ComboBox1

bonsoir sabv

le code change de la combobox est dans mon classeur actuel, oubli de le préciser

Rechercher des sujets similaires à "remplacer listview listbox"