classer dans une colonne selon F ou M

gilles72

XLDnaute Junior
Bonjour,
dans un fichier XL2003,
une colonne A de 100 lignes env. dont la valeur des cellules est M ou F, sans aucun ordre.
Je souhaite trouver et classer les 4 lignes en respectant cette obligation:
soit:
3 lignes M et 1 ligne F (si les 3 premières sont M, je dois descendre jusqu'à ce que je trouve la 1ere F)
2 lignes M et 2 lignes F (si A1 est M, B1 peut être M ou F, et je dois descendre pour trouver une cellule F et une cellule M,
1 ligne M et 3 ligne F
Je cherche depuis un moment à l'aide de formules conditionnelles, mais ça coince toujours.
Est-ce qu'en VBA, ce serait faisable
merci
gilles72
 

gilles72

XLDnaute Junior
Bonsoir
Oui effectivement
J ai vérifié par la suite qui est vgendron et c est sûr : il s y connaît
Mais avant ca j ai repondu rapidement car je connais une vgendron un peu facétieux
Et j ai pensé que c etait elle
Désolé pour la méprise
Merci
Gilles72
 

vgendron

XLDnaute Barbatruc
Hello
pour préciser ma pensée.. et surement expliquer pourquoi il n'y a toujours pas de réponse

dans un fichier XL2003,
Lequel ?

une colonne A de 100 lignes env. dont la valeur des cellules est M ou F, sans aucun ordre.
Je souhaite trouver et classer les 4 lignes en respectant cette obligation:

Euh... 100 lignes sans aucun ordre
classer les 4 lignes (c'et 4 ou c'est 100?? lesquelles??)
classer ou pas classer??
parce que avec M ou F. je ne vois qu'un seul classement possible.. tous les M d'abord puis les F.. ou le contraire... ???

soit:
3 lignes M et 1 ligne F (si les 3 premières sont M, je dois descendre jusqu'à ce que je trouve la 1ere F)
euh.. si tu parles de 4 lignes. et que les 3 premières sont M. alors....forcément la 4eme est la F.....

2 lignes M et 2 lignes F (si A1 est M, B1 peut être M ou F, et je dois descendre pour trouver une cellule F et une cellule M,
1 ligne M et 3 ligne F
??????????????
Est-ce qu'en VBA, ce serait faisable

Donc la réponse est toujours OUI.. pour peu qu'on comprenne de quoi tu parles et ce que tu veux...
 

ROGER2327

XLDnaute Barbatruc
Bonjour à tous.

Un essai...

ℝOGER2327
#8452


Jeudi 19 Décervelage 144 (Saint et Sainte Cartouche, vétérinaires - fête Suprême Quarte)
27 Nivôse An CCXXV, 0,0676h - plomb
2017-W03-1T00:09:44Z
 

Pièces jointes

  • Classement par équipe (1).xlsm
    30.5 KB · Affichages: 38
Dernière édition:

gilles72

XLDnaute Junior
bonjour Roger
merci pour tout le travail effectué
toutefois je n'ai pas pu le tester, car j'ai un message qui s'affiche dès le départ.:
variable non définie
.Add Key:=dat.Offset(0, c1(0)), SortOn:=xlSortOnValues, Order:=c1(1), DataOption:=xlSortNormal
l'aide précise que ça provirnt de Option explicit
....et je ne suis pas bon en vba, au point de trouver la parade
excuse moi de te re-solliciter
Gilles72
 

ROGER2327

XLDnaute Barbatruc
Re...

xlSortOnValues n'est pas une variable. C'est une constante qui vaut 0 (zéro).
De même, xlSortNormal ou xlUp ne sont pas des variables mais des constantes. On peut parfaitement écrire la fonction ordre comme suit :
VB:
Private Function ordre(Origine As Range, nbLig&, nbCol&, c1, Optional c2, Optional c3, Optional f As Boolean)
Dim dat As Range, p() As Variant
    With Origine
        Set dat = .Parent.Range(.Cells, .Parent.Cells(nbLig, .Column).End(-4162))
        p = dat.Resize(, nbCol).Value
        With .Parent.Sort
            With .SortFields
                .Clear
                .Add Key:=dat.Offset(0, c1(0)), SortOn:=0, Order:=c1(1), DataOption:=0
                If Not IsMissing(c2) Then .Add Key:=dat.Offset(0, c2(0)), SortOn:=0, Order:=c2(1), DataOption:=0
                If Not IsMissing(c3) Then .Add Key:=dat.Offset(0, c3(0)), SortOn:=0, Order:=c3(1), DataOption:=0
            End With
            .SetRange dat.Resize(, nbCol)
            .Header = 2: .MatchCase = 0: .Orientation = 1: .SortMethod = 1
            .Apply
        End With
        ordre = dat.Resize(, nbCol).Value
        If f Then dat.Resize(, nbCol).Value = p
    End With
End Function

Je viens d'ouvrir le classeur du message #11 : aucun problème pour exécuter la procédure. Toutes les variables sont définies et aucune ne provoque le message que vous évoquez. Bizarre...

Bonne journée.


ℝOGER2327
#8453


Jeudi 19 Décervelage 144 (Saint et Sainte Cartouche, vétérinaires - fête Suprême Quarte)
27 Nivôse An CCXXV, 3,9648h - plomb
2017-W03-1T09:30:56Z

 

gilles72

XLDnaute Junior
bonjour ROGER2327
j'ai essayé avec la nouvelle private function. j'obtiens ce message au démarrage.
propriété ou methode non gérée par cet objet
J'utilise XL2003 et pour ouvrir des fichiers plus récents, ça passe par un convertisseur.
XL2003 car les utilisateurs ne sont pas tous équipés de XL récent.
J'ai essayé sur un autre PC équipé en XL2007, et ça fonctionne.
Le pb c'est que je dois rester en XLS pour le moment.
Je vais essayer de comprendre le code que tu m'as transmis, mais mes connaissances en VBA sont vite atteintes.
Un grand merci, encore
à+
gilles72
 

ROGER2327

XLDnaute Barbatruc
Re...

bonjour ROGER2327
j'ai essayé avec la nouvelle private function. j'obtiens ce message au démarrage.
propriété ou methode non gérée par cet objet
J'utilise XL2003 et pour ouvrir des fichiers plus récents, ça passe par un convertisseur.
(...)
Comme ça, c'est plus clair. C'est aussi le genre de renseignement qu'on pourrait avoir dès le début : on gagnerait du temps. Alternativement, vous auriez pu faire votre demande dans la section du forum réservé à Excel2003...

Essayez le classeur joint : avec un peu de chance ça fonctionnera même avec Excel97 (?)

ℝOGER2327
#8454


Jeudi 19 Décervelage 144 (Saint et Sainte Cartouche, vétérinaires - fête Suprême Quarte)
27 Nivôse An CCXXV, 6,0518h - plomb
2017-W03-1T14:31:27Z
 

Pièces jointes

  • Classement par équipe (3).xls
    59 KB · Affichages: 24

Discussions similaires

Statistiques des forums

Discussions
312 203
Messages
2 086 183
Membres
103 152
dernier inscrit
Karibu