XL 2019 Recopier mes feuilles dans mon USF

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 !

Phil Du59

XLDnaute Nouveau
Bonjour à tous
Je reviens vers vous pour améliorer mon tableau afin d’avoir une meilleure visibilité et de regrouper les données de mes feuilles sur mon USF , si tout est possible bien sur .
Pour entrer mes données je passe par NEW QSO

1° Dans la Listbox 1 , recopier la ligne de B2 à H2 de le feuille LOG .

2° Dans la Listbox 2 (le grand cadre) , recopier les entrées des colonnes B C D E F G et H de façon à voir toujours le dernier entré visible en bas , donc avec la liste qui monte au fur et à mesure (si c’est possible)

3° Dans la Listbox 3 (QSO N°) , recopier la case A2 de la feuille LOG

4° Dans la Listbox 4 (DXCC WORKED) , recopier la case L1 de la feuille STATS

5° Dans la Listbox 5 (celle en bas) , recopier de H2 à Q31 de la feuille STATS (par ordre croissant si possible)

Je pense n’avoir rien oublié dans mes demandes , en tout cas n’hésitez pas à demander si besoin , en fait tout ce que je rentre dans la partie haute de mon USF serait visible dans les ListBox pour avoir un aperçu global .

Par avance Merci , Philippe
 

Pièces jointes

Solution
Oui sans les doublons merci
Avec ce code il n'y a plus de doublon dans le 2ème tableau de la feuille STATS :
VB:
Private Sub Worksheet_Activate()
    Dim DL&, Tablo, i&, Dxcc, Tablo2(), n&, L&, C%
    [H2:Q41].ClearContents
    DL = Sheets("LOG").[C10000].End(xlUp).Row
    Tablo = Sheets("LOG").Range("C3:D" & DL) 'au moins 2 éléments
    For i = 1 To UBound(Tablo)
        Dxcc = Val(Left(Tablo(i, 1), 3))
        If Trim(Tablo(i, 1)) Like (Dxcc) & "*" Then
            ReDim Preserve Tablo2(n) 'base 0
            Tablo2(n) = Dxcc
            n = n + 1
        End If
    Next i
    If n = 0 Then Exit Sub
    tri Tablo2, 0, UBound(Tablo2)
    L = 2: C = 8
    Cells(L, C) = Tablo2(0): C = C + 1
    For i = 1 To UBound(Tablo2)
        If...
Avec ce code il n'y a plus de doublon dans le 2ème tableau de la feuille STATS :
VB:
Private Sub Worksheet_Activate()
    Dim DL&, Tablo, i&, Dxcc, Tablo2(), n&, L&, C%
    [H2:Q41].ClearContents
    DL = Sheets("LOG").[C10000].End(xlUp).Row
    Tablo = Sheets("LOG").Range("C3:D" & DL) 'au moins 2 éléments
    For i = 1 To UBound(Tablo)
        Dxcc = Val(Left(Tablo(i, 1), 3))
        If Trim(Tablo(i, 1)) Like (Dxcc) & "*" Then
            ReDim Preserve Tablo2(n) 'base 0
            Tablo2(n) = Dxcc
            n = n + 1
        End If
    Next i
    tri Tablo2, 0, UBound(Tablo2)
    L = 2: C = 8
    Cells(L, C) = Tablo2(0): C = C + 1
    For i = 1 To UBound(Tablo2)
        If Tablo2(i) <> Tablo2(i - 1) Then
            Cells(L, C) = Tablo2(i)
            C = C + 1
            If C = 18 Then C = 8: L = L + 1
        End If
    Next i
End Sub
Et pour afficher les 14 dernières lignes de ListBox2 utilisez sa propriété .TopIndex dans le code de la feuille LOG :
VB:
    If plage.Row = 2 Then .Clear Else .TopIndex = .ListCount - 14
Merci infiniment Job superbe travail sur mon tableau vous avez tout résolu selon mes attentes , maintenant il me reste à comprendre un peu pour apprendre et voir si je serais capable de faire un ajout seul ou vous me reverrez prochainement , encore Merci à vous tous qui ont pris le temps de m'aider , Bon week-end Philippe .
 
Avec ce code il n'y a plus de doublon dans le 2ème tableau de la feuille STATS :
VB:
Private Sub Worksheet_Activate()
    Dim DL&, Tablo, i&, Dxcc, Tablo2(), n&, L&, C%
    [H2:Q41].ClearContents
    DL = Sheets("LOG").[C10000].End(xlUp).Row
    Tablo = Sheets("LOG").Range("C3:D" & DL) 'au moins 2 éléments
    For i = 1 To UBound(Tablo)
        Dxcc = Val(Left(Tablo(i, 1), 3))
        If Trim(Tablo(i, 1)) Like (Dxcc) & "*" Then
            ReDim Preserve Tablo2(n) 'base 0
            Tablo2(n) = Dxcc
            n = n + 1
        End If
    Next i
    If n = 0 Then Exit Sub
    tri Tablo2, 0, UBound(Tablo2)
    L = 2: C = 8
    Cells(L, C) = Tablo2(0): C = C + 1
    For i = 1 To UBound(Tablo2)
        If Tablo2(i) <> Tablo2(i - 1) Then
            Cells(L, C) = Tablo2(i)
            C = C + 1
            If C = 18 Then C = 8: L = L + 1
        End If
    Next i
End Sub
Et pour afficher les 14 dernières lignes de ListBox2 utilisez sa propriété .TopIndex dans le code de la feuille LOG :
VB:
    If plage.Row = 2 Then .Clear Else .TopIndex = .ListCount
En effet je n'avais pas vu la MàJ du #30 , tout est nickel , encore merci pour votre temps , bonne soirée .
 
- 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
3
Affichages
142
Réponses
5
Affichages
506
Retour