Copier-coller

Bonjour,

Je bloque sur une macro et je suis sur que je dois connaitre la solution, mais ça ne sort pas.

J'ai une liste avec des noms et des nombres (nombres d'année de participations)

J'aimerais extraire toutes les personnes qui ont 5-10... dans une feuille....

Je joins mon tableau si quelqu'un peut jeter un œil pour voir ou ça coince cela serait gentil.

D'avance merci pour vos réponses.

7testcopie.xlsm (18.71 Ko)

Bonjour,

Je bloque sur une macro et je suis sur que je dois connaitre la solution, mais ça ne sort pas

Certainement que tu connais ... ça s'appelle un filtre automatique

Ceci dit, on ne sait pas trop si tu veux les '5' et les '10', les '5 à '10' ... On peut imaginer qu'il y a un lien avec tes deux feuilles ... mais personne ne semble avoir 10 ans dans ton fichier ... quelques éclaircissements seraient les bienvenus!

Et les noms, chacun n'apparaîtra qu'une seule fois?

Bonjour,

Sub medaille()
    Dim aa, tb5(), tb10(), i%, n%, nn%
    aa = ActiveSheet.Range("A1").CurrentRegion
    ReDim tb5(n): ReDim tb10(nn)
    For i = 2 To UBound(aa)
        Select Case aa(i, 2)
            Case 5
                n = n + 1: ReDim Preserve tb5(n)
                tb5(n) = aa(i, 1)
            Case 10
                nn = nn + 1: ReDim Preserve tb5(nn)
                tb5(nn) = aa(i, 1)
        End Select
    Next i
    tb5(0) = "Total 5 ans": tb10(0) = "Total 10 ans"
    With Sheets("5 ans").Range("A1")
        .CurrentRegion.Clear
        With .Resize(UBound(tb5) + 1)
            .Value = WorksheetFunction.Transpose(tb5)
            .Borders.Weight = xlThin
            With .Cells(1, 1)
                .Borders.Weight = xlMedium
                .Font.Bold = True: .Font.Italic = True
                .HorizontalAlignment = xlCenter
            End With
        End With
    End With
    With Sheets("10 ans").Range("A1")
        .CurrentRegion.Clear
        With .Resize(UBound(tb10) + 1)
            .Value = WorksheetFunction.Transpose(tb10)
            .Borders.Weight = xlThin
            With .Cells(1, 1)
                .Borders.Weight = xlMedium
                .Font.Bold = True: .Font.Italic = True
                .HorizontalAlignment = xlCenter
            End With
        End With
    End With
End Sub

NB- En VBA, lorsqu'on peut se dispenser de copier-coller (et on peut souvent ! ) c'est toujours mieux...

Cordialement.

Salut U.Milité !

Re-bonjour,

Salut MFerrand,

Je me préparais à déposer une proposition, avec des tableaux et un Select Case aussi ... mais sans la mise en forme Tant pis, je la garde

Désolé !

Désolé !

Waaah hé, y a aucune raison ... c'est le principe même du forum (et c'est très bien comme ça! d'autant que ta proposition est plus complète que la mienne )

Cool ! J'ai l'habitude de toujours soulever les questions de cohérence, mais cette fois je suis passé rapidement dessus, c'est toi qui a soulevé le problème d'intervalle 5-10, etc.

Bonne soirée.

U. Milité :

Pour répondre a tes questions, nous n'avons pas encore 10 ans d'existence, donc c'est normal que nous n'avons personne avec 10 ans , c'est en prévision pour les années a venir.

En fait tous les 5 ans nous offrons des médailles donc j'ai besoin d'extraire les personnes ayant 5 ans-10 ans,.... jusqu’à je ne sais pas quand.

MFerrand

Merci pour ton fichier,

Je vais tester ca.

Nickel le fichier, à part qu'il y avait une petite erreur, après modification c'est exactement ce que je voulais...

Merci

Rechercher des sujets similaires à "copier coller"