3 feuilles vers 1 - userform

  • Initiateur de la discussion Initiateur de la discussion XCo
  • 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 !

XCo

XLDnaute Occasionnel
Bonjour

c`est un pb VBA!
j`ai un fichier avec 3 feuilles (S1,S2 et S3). Dans chacune, des donnees avec date en col 1, code en col 2...

mon pb : j`ai un userform avec listbox.
1/ Comment remplir la listbox avec les codes sans doublon sachant qu`il faut aller chercher les codes produits ds col B des 3 feuilles citees?

2/ ensuite, ce que j`aimerai - c`est doux de rever 😛 - c`est selectionner un produit de la listbox et reporter les donnes des 3 feuilles ds un onglet qui se creerait (avec code produit) et qui reprendrait les lignes des 3 autres feuilles

je pense que c`est faisable mais j`ai pas toruve d`exemple qui tri sans doublon selon 3 colonnes de 3 feuilles differentes

Merci pour votre aide

XCo
 

Pièces jointes

Re : 3 feuilles vers 1 - userform

Bonsoir Herve

ben j`avoue que ca marche bien. Je te remercie pour ton aide.

Je vais l`utiliser demain en reel. J`aurai peut etre des questions

Merci en tout cas pour ce morceau de code bien plaisant

Bonne soiree

XCo
 
Re : 3 feuilles vers 1 - userform

re

pas grave 🙂

dans le module de ton userform, remplace ta procedure initialize par celle-ci :

PHP:
Private Sub UserForm_Initialize()
Dim data As New Collection
Dim sh, el, temp
Dim c As Range
Dim i As Integer, j As Integer

For Each sh In Array("s1", "s2", "s3")
    With Sheets(sh)
        On Error Resume Next
        For Each c In .Range("b2:b" & .Range("b65536").End(xlUp).Row)
            data.Add c, CStr(c)
        Next c
        On Error GoTo 0
    End With
Next sh

For Each el In data
    ListBox1.AddItem el
Next el

With ListBox1
    For i = 0 To .ListCount - 1
        For j = 0 To .ListCount - 1
            If .List(i) < .List(j) Then
                temp = .List(i)
                .List(i) = .List(j)
                .List(j) = temp
            End If
        Next j
    Next i
End With
            
End Sub
salut
 
- 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

Retour