Bonjour a tous
J'ai un classeur avec plusieurs feuilles notamment une feuille nommée "AVAN_METRE" et une autre nommé "NOMENCLATURE_DES_MATERIAUX_INFRA". j'ai créé un user forme "frm_AVANT_METRE" . Sur ce formulaire j'ai une listebox nommé "liste_avant_metre" qui contient les enregistrements de la feuille " AVANT_METRE" . j'ai une autre listebox nommé " list_des_tache". Ces deux listebox sont reliés entre elle a travers un bouton de commande "ajouter" qui permet de sélectionner une ligne dans la listebox "liste_avant_metre" et puis de l'ajouter dans la listebox nommé "list_des_taches". J'aimerais a travers un code, sélectionné d'avance une ligne de mon choix dans le tableau situé sur la feuille "NOMENCLATURE _DES_MATERIAUX_INFRA", puis venir sélection plusieurs lignes de ma listbox "list_des_taches" et de les insérer sur la ligne que j'aurai sélectionné d'avance dans le tableau a travers le bouton "exporter pour devis élémentaire".
Voici les codes que j'ai utilisé sur le bouton "exporter pour devis élémentaire".
Code 1
Sub_
Dim x as long
Dim ws as worksheet
Set ws= sheets("Nomenclature_des_materieaux_infra")
For x=0 To Me. List_des_taches.Listcoubt -1
Ws.Range("B" & rows.count).end(xlup).offset(1,0)=Me.list_des_taches.list(x,0)
Next x
End sub
Ce code m'ajoute bien toute les lignes de la listbox dans la colonne "B" du classeur mais a la dernière et hors du tableau
Code 2
Sub_
Dim x as long
Dim ws as worksheet
Dim newrow as listrow
Set ws= sheets("Nomenclature_des_materieaux_infra")
Finalrow=ws.cells(rows.count , 2).end(xlup).row-1
' selection de la cellule active au choix
Range(cells(finalrow -6 , 2),cells(finalrow -6 , 2)). activate
' insérer une ligne après l'ajout d'un enregistrement sur la cellule sélectionné
Set newrow=sélection.listobject.listrow.add(activecell.row-1)
' on crée une boucle qui va parcourir les lignes du tableau
For For x=0 To Me. List_des_taches.Listcoubt -1
'exporter un enregistrement de la listbox vers la cellule active du tableau
Ws.Range(cells(finalrow -6 , 2) , cells( finalrow -6 , 2)) =Me.list_des_taches.list(x,0)
' décalé d'une ligne après insertion de l'enregistrement
Range(cells (finalrow -6 , 2) , cells( finalrow -6 , 2)).offset(1,0)
Next x
End sub
Dans ce code, juste un seul enregistrement est inséré dans le tableau et sur la cellule sélectionné au choix
Voilà le niveau de mon problème auquel je sollicite votre aide pour avancer. Merci d'avance
Ci joint le fichier xlsm
[Traitement de : DEVISapp (11).xlsm…]()