Alterner les lignes selon le sexe (ds excel)

Résolu
bonheur2007 Messages postés 113 Statut Membre -  
bonheur2007 Messages postés 113 Statut Membre -
Bonjour,

j'ai une base de donnée dont les inscrits sont clasés en fonction du sexe :féminin(F )puis masculin(M).
je voudrais avoir dans une ligne une candidate F suivi d'un candidat M, y a-t-il une formule pour faire ce travail?
merci
https://www.cjoint.com/?BGmoIhMQhGK

3 réponses

  1. pépé35530 Messages postés 2951 Date d'inscription   Statut Membre Dernière intervention   1 390
     
    Bonjour,

    peut-être une solution:

    1) trier tout d'abord sur la colonnes "sexe" (M ou F) afin d'avoir tout d'abord toutes les personnes de sexe féminin puis toutes les personnes de sexe masculin
    2) dans une nouvelle colonne taper 1 pour la première ligne et 3 pour la deuxième ligne.
    3) sélectionner les deux cellules et faire une recopie vers le bas jusqu'à la dernière ligne de F
    4) sur la première ligne de M taper 2 et sur la deuxième ligne de M taper 4
    5) sélectionner ces deux cellules et faire une recopie vers le bas
    6) enfin faire un tri sur la colonne renfermant les chiffres précédemment entrés.

    on obtient ainsi une alternance des F et des M

    A+

    pépé
    0
  2. eljojo_e Messages postés 1255 Statut Membre 155
     
    Bonjour,

    Ou alors du vba

    (cela implique que ton tableau soit ranger en A1)

    Sub coupe()   
    
    Application.ScreenUpdating = false
    
    b = "M"   
    
    c = 3   
    
    d = 3   
    
    For a = 1 To 100000   
    
    If Range("a" & a).Value <> "" Then   
    Max = a   
    Else   
    Exit For   
    End If   
    
    Next   
    
    For a = 2 To Max   
    
        Rows("2:2").Select   
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove   
           
        If b = "F" Then   
        b = "M"   
        GoTo b:   
        End If   
           
        If b = "M" Then b = "F"   
               
    b:   
               
            Do While (Range("a" & c).Value <> "")   
               
            If c > Max Then Exit Do   
               
                If Range("d" & c).Value = b Then   
                   
                    Rows(c & ":" & c).Cut   
                       
                    Rows("2:2").Select   
                       
                    ActiveSheet.Paste   
                       
                    Rows(c & ":" & c).Select   
                       
                    Selection.Delete Shift:=xlUp   
                       
                    d = d + 1   
                       
                    c = d   
                       
                    GoTo a:   
                   
                End If   
                   
                c = c + 1   
               
            Loop   
    
    a:   
           
    Next   
    
    a = 1   
    
    Do While (Range("a2").Value = "")   
    
        Rows("2:2").Select   
           
        Selection.Delete Shift:=xlUp   
           
    Loop   
    Application.ScreenUpdating = True
    End Sub 


    bon la c'est plus compexe lol
    0
    1. eljojo_e Messages postés 1255 Statut Membre 155
       
      http://cjoint.com/data3/3Gmpv4iL7pi.htm

      ca ira plus vite

      ps : j'ai fait ca a la va-vite il se peux que l'on puisse le racourcir ou l'ameliorer)
      0
  3. bonheur2007 Messages postés 113 Statut Membre
     
    salut
    merci à tous.j'ai essayé la prmière methode ça marche bien.quant au vba je n'y comprends rien.
    merci à tous
    +
    0