Besoin d'un ensemble de lignes

Dan67

XLDnaute Nouveau
Bonsoir,
je cherche à automatiser certaines tâches de mon carnet de notes.
Dans ce carnet, le nombre de lignes dépend du nombre d'élèves. Au cours de l'année, de nouveaux arrivants modifient aussi le nombre de lignes. Dans ce dernier cas, il faut donc rajouter un nouveau nom puis le classer.
Voilà mon code pour sélectionner les lignes après rajout d'un élève.
Code:
    Rows("14:14").Select
    Selection.Copy
    Selection.Insert Shift:=xlDown
    Application.CutCopyMode = False
    Range("B14:C14,I14:O14,P14:V14,W14:AC14").Select
    Selection.ClearContents
    Range("B14").Select
    ActiveCell.FormulaR1C1 = textNomEleve.Value
    Range("C14").Select
    ActiveCell.FormulaR1C1 = textPrenomEleve
    Columns("B:C").Select
    Selection.SpecialCells(xlCellTypeConstants, 23).Select
    Selection.EntireRow.Select
Voici la macro pour classer le nom des élèves.
Code:
    ActiveWorkbook.Worksheets("Notes").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Notes").Sort.SortFields.Add Key:=Range("D8:D39"), _
        SortOn:=xlSortO à D39_nValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Notes").Sort
        .SetRange Range("A8:AH39")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Columns("B:C").Select
    Selection.EntireColumn.Hidden = True
    ActiveCell.Select
En fait je sélectionne les lignes 8 à 39, parce que y a autant d'élèves. Mais sur d'autres feuilles, y en a moins ou plus.
y a-t-il moyen de sélectionner uniquement les lignes d'élèves, quelque soit leur nombre?
 

BERRACHED said

XLDnaute Accro
Re : Besoin d'un ensemble de lignes

Salut dany

dans ton cas je crois qu'il y a pas un problème une feuille Excel peut en magasiner jusqu'à 65536 élèves et plus dans la nouvelle version, a peut prés jusqu'à ta retraite :D aussi ton code il est fait d'un mixage lignes code et lignes enregistreur donc un petit nettoyage s'impose envois nous un fichier pour qu'en puisse t'aider en simplifiant les choses

Cordialement
 

Dan67

XLDnaute Nouveau
Re : Besoin d'un ensemble de lignes

J'ai réglé le problème.
Voici le code
Code:
' Ajoute un nouvel élève
    Range("B44").Select
    ActiveCell.FormulaR1C1 = textNomEleve.Value
    Range("C44").Select
    ActiveCell.FormulaR1C1 = textPrenomEleve
' Trier les élèves
    Rows("8:45").Select
    ActiveWorkbook.Worksheets("Notes").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Notes").Sort.SortFields.Add Key:=Range("D8:D46"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Notes").Sort
        .SetRange Range("A8:AH45")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    ActiveWorkbook.Worksheets("Notes").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Notes").Sort.SortFields.Add Key:=Range("A8"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Notes").Sort
        .SetRange Range("A8:AH45")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
Je pense avoir fait le ménage.
 

Statistiques des forums

Discussions
312 518
Messages
2 089 258
Membres
104 080
dernier inscrit
M.Bloceht