Macro pour un tableau de scolarité

Résolu
Salut les amis
je travaille sur une macro dans le tableau de scolarité de l’année prochaine
Je souhaite créer une macro afin de préparer le tableau de scolarité de l’année prochaine pour cela dans le tableau de scolarité de l’année actuelle je saisi dans les cellules des résultats de fin d’année :
A : pour les admis
R : pour les non admis
Le but de cette macro est de réorganiser les élèves de chaque niveau scolaire pour l’année prochaine
Exemple : les élèves non admis de la 4AP et les admis de la 3AP de l’année actuelle devront être regroupé dans le tableau de scolarité de la 4AP de l’année prochaine
Le classeur est compose de 6 feuilles de la 1AP à 6AP
Les admis de la 6AP ne devront plus exister dans le classeur de l’année prochaine car ils iront au collège

Aider moi pour importer les données du classeur année actuelle vers le classeur année prochaine et merci infiniment
vous trouverez le deux fichiers en fichier joint :
https://www.cjoint.com/c/FEwuhEN7HCB

6 réponses

  1. meme des formules pour liaison entre les classeurs ça marche pour moi
    0
    1. Bonjour
      Pourquoi toutes ces cellules fusionnées?
      Voici le code, vous devez y modifier toutes les lettres des colonnes pour l'adapter au format arabe (de droite à gauche) , chez moi, tout inversé, la colonne A correspond à la colonne Z chez vous, donc je vous laisse faire les modifs.
      Option Compare Text
      
      Sub Macro1()
          Application.ScreenUpdating = False
          Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5", "Sheet6")).Select
          Sheets("Sheet1").Activate
          Range("C14:X100").Select
          Selection.ClearContents
      
          For f = 1 To 6
              Windows("Année actuelle.xls").Activate
              Sheets(f).Select
              DerLig = [C13].End(xlDown).Row
              ReDim Classe(6, 100) As String
              ReDim Position(6, 100) As String
              ReDim Naissance(6, 100) As String
              ReDim Sexe(6, 100) As String
              ReDim Prenom(6, 100) As String
              ReDim Nom(6, 100) As String
              ReDim Num(6, 100) As String
              For l = 14 To 100
                  If Cells(l, "C") = "" Then GoTo Restitution
                  If Cells(l, "C") = "A" Then
                      Classe(f, l) = f + 1
                  ElseIf Cells(l, "C") = "R" Then
                      Classe(f, l) = f
                  End If
                  If f + 1 = 7 Then GoTo Suivant
                  Position(f, l) = Cells(l, "C")
                  Naissance(f, l) = Cells(l, "F")
                  Sexe(f, l) = Cells(l, "J")
                  Prenom(f, l) = Cells(l, "M")
                  Nom(f, l) = Cells(l, "Q")
                  Num(f, l) = Cells(l, "V")
      Suivant:
              Next l
              
      Restitution:
              Windows("Année prochaine.xls").Activate
              For l = 14 To 100
                  If Classe(f, l) = "" Then GoTo FeuilleSuivante
                  If Classe(f, l) = f + 1 Then
                      If f + 1 = 7 Then GoTo Suivant2
                      Sheets(f + 1).Select
                  ElseIf Classe(f, l) = f Then
                      Sheets(f).Select
                  End If
                  DerLig2 = [V1000].End(xlUp).Row + 1
                  Cells(DerLig2, "C") = Position(f, l)
                  Cells(DerLig2, "F") = Format(Naissance(f, l), "m/d/yyyy")
                  Cells(DerLig2, "J") = Sexe(f, l)
                  Cells(DerLig2, "M") = Prenom(f, l)
                  Cells(DerLig2, "Q") = Nom(f, l)
                  Cells(DerLig2, "V") = Num(f, l)
      Suivant2:
              Next l
      FeuilleSuivante:
          Next f
      End Sub
      
      Cdlt
      0
      1. Bonjour,

        Non , pas erreur, il y a des nons admis qui passent a la trappe, en 4,5 et 6
        0
    2. Bonsoir F894009, bonsoir noe2008,
      Merci pour votre remarque.
      Seuls les redoublants "R" de la feuille 6 passent à la trappe, (j'ai laissé trainer une ligne qui fallait pas). Pour les autres cela vient du fait que les tableaux sont arrêtés à la ligne 38, les 2 ou 3 autres lignes suivantes sont masquées, donc le remplissage ne se faisait pas.
      https://www.cjoint.com/c/FExrjQfsb1w pour l'année actuelle
      https://www.cjoint.com/c/FExrlAFt5Nw pour l'année prochaine
      J'avais oublié aussi de dire qu'il fallait que les 2 fichiers soient ouverts dans la même session d'EXCEL.
      Le bouton de lancement de la macro est sur la feuille 1 du fichier "Année actuelle".
      Cordialement
      0
      1. Salut les amis ,
        Une personne m' a résolu le problème c'est exactement ce que je cherchais c'est dire une macro sur le fichier année prochaine qui ouvre l'explorer sans m'imposer un nom pour le fichier "année actuelle"
        mais il y un petit problème dans le fichier année prochaine c'est que la macro annule le fusionnement des cellules puis elle trace les bordures
        et dans sheet 1 elle trace les bordure pour un grand nombre de cellules et ainsi le fichier est devenu volumineux : 8mo
        j'ai besoin d'une petite rectification de la macro pour que le fusionnement des cellules reste analogue à celui de de l’entête tout en imposant une hauteur de ligne égale à 17

        merci infiniment
        voila les deux fichiers

        https://www.cjoint.com/c/FEFoCkd64jk
        0
        1. Bonjour
          Voilà
          https://www.cjoint.com/c/FEFqkmMjMvw
          Pour le fichier "Année actuelle" vous devez impérativement ne pas laisser de lignes masquées en fin de chaque tableau sinon certaines données ne seront pas recopiées.
          Cdlt
          0
          1. Merci frenchie83 c'est fantastique
            Une deniere demande : peux tu ajouter dans la macro que la valeur de de la cellule "H8" de chaque feuille "sheet i" du fichier annee actuelle soit aussi importée dans la cellule "H8" de la feuille correspondante "sheet i" du fichier année prochaine et que le fichier annee actuelle soit fermé à la fin
            Cordialement
            0