Macro Tri AàZ après ajout d'une ligne

  • Initiateur de la discussion Initiateur de la discussion erwans12
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

erwans12

XLDnaute Nouveau
Bonjour,
Je précise tout d'abord que je suis complètement novice en Macro !!!
Je suis en train de faire un petit projet pour ma formation future et je patoge !!
J'ai créer donc un tableau avec différentes formule et totaux à droite et en bas.
En suivant différent conseil en lisant ici ai donc réussi temps bien que mal à créer deux macro avec la fonction
enregistrer un macro !!
Premier bouton ajoute une ligne copier coller de la dernière vide et copie ça mise en forme et formule. Le souci c'est que si malencontreusement on a pas cliquer sur la dernière ligne cela m'ajoute une ligne n'importe ou !!! pas top si l'utilisateur ne fais pas attention à ça !!!
Le deuxième bouton toujours fais avec enregistreur de macro me trie le tableau de A à Z avec les noms et prénom de la colonne A !! sauf que et oui !!! il reproduit ce que j'ai fais lors de l'enregistrement et donc si ensuite j'atoute une ligne celle ci n'est pas ajouter a ce fameux trie de A à Z !!!
Je serais ravie si on pouvais donc m'aider à comprendre le cheminement de ces macros et donc modifier ceux-ci qu'il régisse à mes attentes et donc au modification apportées.
je vous remercie par avance et joint mon joli tableau !!
 

Pièces jointes

Dernière édition:
Re : Macro Tri AàZ après ajout d'une ligne

Bonjour.

Pourquoi ne mettriez vous pas un nom aux lignes du tableau, par exemples "Tablo", réf. "=Inscriptions!$4:$125"
Vous pourriez alors faire comme ça :
VB:
Sub AjouterUnEnfant()
Dim LMax As Long
With Range("Tablo")
   LMax = .Rows.Count
   .Rows(LMax).Copy
   .Rows(LMax).Insert
   Application.CutCopyMode = False
   LMax = LMax + 1
   On Error Resume Next
   .Rows(LMax).SpecialCells(xlCellTypeConstants).Value = Empty
   .Cells(LMax, "A").Select
   End With
End Sub

Remarque: je trouve bien compliquée votre formule pour calculer l'age. Si vous tenez à calculer sur cette base vous pourriez faire:
En C4 :
Code:
=ENT(ANNEE(AUJOURDHUI())-ANNEE(B4)+(MOIS(AUJOURDHUI())-MOIS(B4))/12)
Mais personnellement, considérant qu'une personne doit toujours avoir un age en correspondance avec le temps qu'elle a vécu, quel que soit la date du jour et sa date de naissance, sans donc tenir compte ni du nombre de jours traditionnel des mois impliqués ni de la compensation arbitraire périodique de la réalité grâce aux années bissextiles, je préfère tout simplement:
En C4 :
Code:
=ENT((AUJOURDHUI()-B4)/365,2425)

Pour le classement :
VB:
Sub TrierDeAàZ()
Range("Tablo").Sort Key1:=Columns("A"), Order1:=xlAscending, Header:=xlNo, _
   OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
End Sub
 
Dernière édition:
Re : Macro Tri AàZ après ajout d'une ligne

Tu as eu la bonne idée d'utiliser un tableau.

Tout devient très simple :

Pour ajouter un enfant
Code:
Feuil1.ListObjects(1).DataBodyRange.ListObject.ListRows.Add AlwaysInsert:=True

et pour Trier
Code:
With Feuil1.ListObjects(1).Sort
    .SortFields.Clear
    .SortFields.Add Key:=Range("Tableau6[[#All],[Nom et Prénom]]"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
  End With
 
Re : Macro Tri AàZ après ajout d'une ligne

De toute façon, les tableaux, je ne les ai pas sur ma version d'Excel, et ils ne me manquent pas. Je m'en suis toujours très bien sorti, et facilement, avec un simple nom dans le classeur portant sur les lignes du tableau.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
139
Retour