Trier à l'aide d'une macro

Résolu
noe2008 Messages postés 191 Statut Membre -  
noe2008 Messages postés 191 Statut Membre -
Salut les amis
j'ai une grande tache a traiter il s'agit de préparer 22 fichiers concernat les liste des élèves qui vont bénéficier du soutien pendant le 2 eme semestre dans les matières suivantes : math ; langue arabe et langue française chaque liste doit contenir les noms et les moyennes des élèves ayant une moyenne inférieure strictement à 5
la liste des élèves et les moyenne se trouvent dans la feuille " semestre " je veux les extraire les listes dans la feuille " soutien " par une macro
le classeur se trouve dans l'adresse ci-dessous
http://www.cjoint.com/c/FBfqC0hdqjP
merci infiniment

4 réponses

  1. Theo.R Messages postés 585 Statut Membre 31
     
    Bonjour,

    Le code suivant devrait répondre à votre demande :

    Sub ElevesEnSoutien()

    Dim DernLigne As Long
    DernLigne = Sheets("semestre").Range("B" & Rows.Count).End(xlUp).Row
    m = 6 'début de collage pour soutien

    For i = 5 To DernLigne

    'Français
    Sheets("semestre").Select
    If Range("AI" & i).Value >= 5 Then
    Else

    'Nom français
    Sheets("semestre").Select
    Range("B" & i).Select
    Selection.Copy
    Sheets("soutien").Select
    Range("L" & m & ":M" & m).Select
    ActiveSheet.Paste

    'Moyenne français
    Sheets("semestre").Select
    Range("AI" & i).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("soutien").Select
    Range("N" & m & ":O" & m).Select
    ActiveSheet.Paste

    End If 'Fin Français

    'Maths
    Sheets("semestre").Select
    If Range("X" & i).Value >= 5 Then
    Else

    'Nom Maths
    Sheets("semestre").Select
    Range("B" & i).Select
    Selection.Copy
    Sheets("soutien").Select
    Range("H" & m & ":I" & m).Select
    ActiveSheet.Paste

    'Moyenne Maths
    Sheets("semestre").Select
    Range("X" & i).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("soutien").Select
    Range("J" & m & ":K" & m).Select
    ActiveSheet.Paste

    End If 'Fin Maths

    'Arabe
    Sheets("semestre").Select
    If Range("P" & i).Value >= 5 Then
    Else

    'Nom Arabe
    Sheets("semestre").Select
    Range("B" & i).Select
    Selection.Copy
    Sheets("soutien").Select
    Range("D" & m & ":E" & m).Select
    ActiveSheet.Paste

    'Moyenne arabe
    Sheets("semestre").Select
    Range("P" & i).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("soutien").Select
    Range("F" & m & ":G" & m).Select
    ActiveSheet.Paste

    End If 'Fin Arabe

    Sheets("semestre").Select
    If Range("AI" & i).Value < 5 Or Range("X" & i).Value < 5 Or Range("P" & i).Value < 5 Then
    m = m + 1
    End If

    Next i

    End Sub
    0
    1. noe2008 Messages postés 191 Statut Membre 4
       
      Elle est efficace mais elle prend un certain temps
      si vous ne trouvez pas de macro guidez moi par une formule
      merci
      0
  2. noe2008 Messages postés 191 Statut Membre 4
     
    m
    Même si vous trouvez une formule qui pourra faire la même chose faites moi signe
    cordialement
    0
  3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour a vous deux,

    Theo.R:
    les selects et activate sont a eviter car tres goumands en temps d'execution

    neo2008: trois fichiers

    https://www.cjoint.com/c/FBgkAwUzIbf

    celui de Theo.R avec son temps d'execution
    et deux autres avec temps d'execution qui peut etre ameliore un peu si vous trouvez que c'est encore trop long

    le premier meme classement que Theo.R
    le deuxieme un classement par matiere que je trouve plus logique

    A vous de voir
    0
  4. noe2008 Messages postés 191 Statut Membre 4
     
    oui elle marche bien mais est il possible qu'il n'aura plus de cellules vides
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,
      "Plus de cellules vides". Que voulez-vous dire????????
      0
    2. noe2008 Messages postés 191 Statut Membre 4 > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
       
      oui merci
      0
    3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > noe2008 Messages postés 191 Statut Membre
       
      Re,

      Mais encore .......
      0
    4. noe2008 Messages postés 191 Statut Membre 4
       
      Par exemple entre entre eleveA et eleveB il ya des cellules vides car les noms d’élèves correspondants ont une moyenne sup à 5
      0
    5. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > noe2008 Messages postés 191 Statut Membre
       
      Re,

      Si vous prenez le fichier notes-des-eleves_2.xlsm le tri n'est pas le meme, donc regardez!!

      Relisez ce que j'ai ecrit f894009 6 févr. 2016 à 11:28
      0