Problème sur macro classement

Bonsoir,

J'ai une colonne avec des noms en dynamique utilisant une formule matricielle.

C'est a dire que j'ai 50 cellules les unes en dessous des autres en B avec la formule à l'intérieur.

Des fois j'ai donc 20 noms, des fois 45.

Je souhaiterai utiliser la macro ci-dessous, mais lorsque je l'active, elle me classe en premier les champs vides, puis après les noms par ordre alphabétique.

Private Sub Worksheet_Activate()
Range("B1:B50").Select 'plage par exemple où sont tes noms et adresses
Selection.Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom 'B1 est la cellule où il y a le premier nom
Range("B1").Select
End Sub

Du coup c'est pas terrible

Vous auriez une idée?

Cordialement.

Bonsoir

En mettant un filtre et en désélectionnant la valeur 0 ?

Enregistre la macro pour ce filtre et teste ....

A tout hasard

Cordialement

FINDRH

Bonsoir

Bonsoir FINDRH

A condition que les cellules soient vides

Private Sub Worksheet_Activate()
  With Range("C1:C50")
    .Formula = "=IF(B1="""",""zzzzzz"",B1)"
    .Value = .Value
  End With
  Range("B1:C50").Sort Key1:=Range("C1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
                MatchCase:=False, Orientation:=xlTopToBottom
  Range("C1:C50").ClearContents
  Range("B1").Select
End Sub

Bonsoir à tous les deux,

Merci pour vos interventions, le fonctionnement de la macro est presque correct, il classe bien les noms par ordre alphabétique, mais elle m'efface les prénoms dans la colonne C

Alors je me suis dit ça vient peut être de la ligne

  Range("C1:C50").ClearContents

mais en le supprimant ça génère une erreur.

Bonjour,

remplace C par une colonne libre.

eric

Bonjour

Si des soucis avec la solution proposée par eriiic

Bonjour,

Je viens de remplacer Range("C1:C50").ClearContents par Range("H1:H50").ClearContents

Du coup, en lançant la macro, ça rajoute 4 ligne avec ZZZZZ et les noms sont copiés à la place des prénoms.

J'insère le fichier en PJ.

Bien cordialement.

Bonjour

Fournis le fichier mais surtout avant l'exécution de la macro

On ne sait pas ce que tu veux faire, tu as plein de colonnes et pas de la même longueur

Certaines cellules n'ont pas de formules, d'autres si, mais avec #REF comme résultat

Bonjour Banzai, Eric, FINDRH,

Dans un autre fil de Dyscus, il faut masquer les 0 ... ce qui conduit à une macro de classement ...

https://forum.excel-pratique.com/excel/masquer-les-0-dans-un-classement-alphabetique-horizontal-t55681-10.html

Mais, si on reprend le problème à la source ... pour ne pas avoir de 0 "pertubateurs" dés le départ, le problème est réglé de lui-même.

Or, pour éviter les 0, il suffit d'avoir défini une plage des noms des Employés dynamiquement ...

J'espère que mon interprétation n'est pas erronée ...

Bonjour à tous,

Merci pour vos différentes interventions, le problème est pratiquement résolu avec une autre façon.

Bon week end à tous.

Cordialement.

Rechercher des sujets similaires à "probleme macro classement"