Alterner les lignes selon le sexe (ds excel)

Résolu/Fermé
bonheur2007 Messages postés 110 Date d'inscription samedi 30 juin 2007 Statut Membre Dernière intervention 30 septembre 2017 - 12 juil. 2012 à 14:34
bonheur2007 Messages postés 110 Date d'inscription samedi 30 juin 2007 Statut Membre Dernière intervention 30 septembre 2017 - 12 juil. 2012 à 20:34
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

A voir également:

3 réponses

pépé35530 Messages postés 2942 Date d'inscription vendredi 1 mai 2009 Statut Membre Dernière intervention 19 mars 2016 1 383
12 juil. 2012 à 15:08
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
eljojo_e Messages postés 1155 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 14 octobre 2022 153
Modifié par eljojo_e le 12/07/2012 à 15:19
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
eljojo_e Messages postés 1155 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 14 octobre 2022 153
Modifié par eljojo_e le 12/07/2012 à 15:28
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
bonheur2007 Messages postés 110 Date d'inscription samedi 30 juin 2007 Statut Membre Dernière intervention 30 septembre 2017
12 juil. 2012 à 20:34
salut
merci à tous.j'ai essayé la prmière methode ça marche bien.quant au vba je n'y comprends rien.
merci à tous
+
0