Tout d'abord, je vous présente mes meilleurs voeux pour 2008, en vous
souhaitant toutes les meilleures choses.
Je suis totalement débutant en programmation, VBA ou autre, si j'arrive,
via Internet et divers forums, à m'en tirer pas trop mal, j'avoue être
devant une colle où je ne trouve aucune solution (ou je l'ai croisé,
mais mon manque d'expérience fait que je ne l'ai pas reconnu).
Je voudrais savoir comment il est possible, en partant d'un tableau avec
en entête, un numéro de dossart (de 1 à 20), et en dessous, classé par
lignes, le résultat de 20 participants multiplié par 10 équipes (donc 10
lignes), de classer, par numéro de dossart et par équipe, chaque
participant en fonction de son résultat (du meilleur au moins bon).
Fichier joint : http://cjoint.com/?bgbSxanrFC
Je vous remercie d'avance de l'aide que vous pourrez m'apporter.
Je vous remercie égalemenet, pour mon apprentissage, si vous voulez bien
décrire un minimum la procédure, pour que je ne fasse pas un bête
copier/coller, mais que je puisse progresser en apprenant pour pouvoir
réutiliser, voir adapter, mais je ne pense pas que ce soit pour demain...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
Copie ceci dans le module feuille où l'action se déroule :
P.S. Dans ton tableau du haut, tu n'as pas d'équipe 4 pourtant, elle est bien présente dans le tableau du bas. Faudra corriger !
Élaboré sous Excel 2003 '----------------------------------- Sub test() Dim rg As Range, B As Long, C As Long Dim A As Long, NbLigne As Long
Application.ScreenUpdating = False NbLigne = Range("G4:Z20").Rows.Count For A = 1 To NbLigne Step 2 Set rg = Range("G2:Z" & A + 3) B = rg.Rows.Count With rg .Sort Key1:=.Cells(B, 1), Order1:=xlDescending, _ Header:=xlNo, Orientation:=xlLeftToRight C = C + 1 With Range("G26:Z35") With .Rows(C) .Value = rg.Rows(1).Value End With End With .Sort Key1:=.Cells(1, 1), Order1:=xlAscending, _ Header:=xlNo, Orientation:=xlLeftToRight End With Next End Sub '-----------------------------------
"Arkaneo" a écrit dans le message de news: %23E5Ef1$ Bonjour.
Tout d'abord, je vous présente mes meilleurs voeux pour 2008, en vous souhaitant toutes les meilleures choses.
Je suis totalement débutant en programmation, VBA ou autre, si j'arrive, via Internet et divers forums, à m'en tirer pas trop mal, j'avoue être devant une colle où je ne trouve aucune solution (ou je l'ai croisé, mais mon manque d'expérience fait que je ne l'ai pas reconnu).
Je voudrais savoir comment il est possible, en partant d'un tableau avec
en entête, un numéro de dossart (de 1 à 20), et en dessous, classé par lignes, le résultat de 20 participants multiplié par 10 équipes (donc 10 lignes), de classer, par numéro de dossart et par équipe, chaque participant en fonction de son résultat (du meilleur au moins bon).
Fichier joint : http://cjoint.com/?bgbSxanrFC
Je vous remercie d'avance de l'aide que vous pourrez m'apporter.
Je vous remercie égalemenet, pour mon apprentissage, si vous voulez bien décrire un minimum la procédure, pour que je ne fasse pas un bête copier/coller, mais que je puisse progresser en apprenant pour pouvoir réutiliser, voir adapter, mais je ne pense pas que ce soit pour demain...
Encore merci
Copie ceci dans le module feuille où l'action se déroule :
P.S. Dans ton tableau du haut, tu n'as pas d'équipe 4
pourtant, elle est bien présente dans le tableau du bas.
Faudra corriger !
Élaboré sous Excel 2003
'-----------------------------------
Sub test()
Dim rg As Range, B As Long, C As Long
Dim A As Long, NbLigne As Long
Application.ScreenUpdating = False
NbLigne = Range("G4:Z20").Rows.Count
For A = 1 To NbLigne Step 2
Set rg = Range("G2:Z" & A + 3)
B = rg.Rows.Count
With rg
.Sort Key1:=.Cells(B, 1), Order1:=xlDescending, _
Header:=xlNo, Orientation:=xlLeftToRight
C = C + 1
With Range("G26:Z35")
With .Rows(C)
.Value = rg.Rows(1).Value
End With
End With
.Sort Key1:=.Cells(1, 1), Order1:=xlAscending, _
Header:=xlNo, Orientation:=xlLeftToRight
End With
Next
End Sub
'-----------------------------------
"Arkaneo" <nospam-arkaneo@edpnet.be> a écrit dans le message de news:
%23E5Ef1$TIHA.536@TK2MSFTNGP06.phx.gbl...
Bonjour.
Tout d'abord, je vous présente mes meilleurs voeux pour 2008, en vous
souhaitant toutes les meilleures choses.
Je suis totalement débutant en programmation, VBA ou autre, si j'arrive,
via Internet et divers forums, à m'en tirer pas trop mal, j'avoue être
devant une colle où je ne trouve aucune solution (ou je l'ai croisé,
mais mon manque d'expérience fait que je ne l'ai pas reconnu).
Je voudrais savoir comment il est possible, en partant d'un tableau avec
en entête, un numéro de dossart (de 1 à 20), et en dessous, classé par
lignes, le résultat de 20 participants multiplié par 10 équipes (donc 10
lignes), de classer, par numéro de dossart et par équipe, chaque
participant en fonction de son résultat (du meilleur au moins bon).
Fichier joint : http://cjoint.com/?bgbSxanrFC
Je vous remercie d'avance de l'aide que vous pourrez m'apporter.
Je vous remercie égalemenet, pour mon apprentissage, si vous voulez bien
décrire un minimum la procédure, pour que je ne fasse pas un bête
copier/coller, mais que je puisse progresser en apprenant pour pouvoir
réutiliser, voir adapter, mais je ne pense pas que ce soit pour demain...
Copie ceci dans le module feuille où l'action se déroule :
P.S. Dans ton tableau du haut, tu n'as pas d'équipe 4 pourtant, elle est bien présente dans le tableau du bas. Faudra corriger !
Élaboré sous Excel 2003 '----------------------------------- Sub test() Dim rg As Range, B As Long, C As Long Dim A As Long, NbLigne As Long
Application.ScreenUpdating = False NbLigne = Range("G4:Z20").Rows.Count For A = 1 To NbLigne Step 2 Set rg = Range("G2:Z" & A + 3) B = rg.Rows.Count With rg .Sort Key1:=.Cells(B, 1), Order1:=xlDescending, _ Header:=xlNo, Orientation:=xlLeftToRight C = C + 1 With Range("G26:Z35") With .Rows(C) .Value = rg.Rows(1).Value End With End With .Sort Key1:=.Cells(1, 1), Order1:=xlAscending, _ Header:=xlNo, Orientation:=xlLeftToRight End With Next End Sub '-----------------------------------
"Arkaneo" a écrit dans le message de news: %23E5Ef1$ Bonjour.
Tout d'abord, je vous présente mes meilleurs voeux pour 2008, en vous souhaitant toutes les meilleures choses.
Je suis totalement débutant en programmation, VBA ou autre, si j'arrive, via Internet et divers forums, à m'en tirer pas trop mal, j'avoue être devant une colle où je ne trouve aucune solution (ou je l'ai croisé, mais mon manque d'expérience fait que je ne l'ai pas reconnu).
Je voudrais savoir comment il est possible, en partant d'un tableau avec
en entête, un numéro de dossart (de 1 à 20), et en dessous, classé par lignes, le résultat de 20 participants multiplié par 10 équipes (donc 10 lignes), de classer, par numéro de dossart et par équipe, chaque participant en fonction de son résultat (du meilleur au moins bon).
Fichier joint : http://cjoint.com/?bgbSxanrFC
Je vous remercie d'avance de l'aide que vous pourrez m'apporter.
Je vous remercie égalemenet, pour mon apprentissage, si vous voulez bien décrire un minimum la procédure, pour que je ne fasse pas un bête copier/coller, mais que je puisse progresser en apprenant pour pouvoir réutiliser, voir adapter, mais je ne pense pas que ce soit pour demain...
Encore merci
Philippe.R
Bonjour, Une solution sans macro, avec en G26 de ton tableau :
Si tu décidais d'avoir le même enchainement de lignes entre les tableaux du haut et du bas (avec ou sans saut de ligne, au choix, mais dito dans les 2), tu pourrais simplement recopier vers le bas sans adaptation -- Avec plaisir http://dj.joss.free.fr/trombine.htm Philippe.R Pour se connecter au forum : http://www.excelabo.net/mpfe/connexion.php News://news.microsoft.com/microsoft.public.fr.excel "Arkaneo" a écrit dans le message de news:%23E5Ef1$
Bonjour.
Tout d'abord, je vous présente mes meilleurs voeux pour 2008, en vous souhaitant toutes les meilleures choses.
Je suis totalement débutant en programmation, VBA ou autre, si j'arrive, via Internet et divers forums, à m'en tirer pas trop mal, j'avoue être devant une colle où je ne trouve aucune solution (ou je l'ai croisé, mais mon manque d'expérience fait que je ne l'ai pas reconnu).
Je voudrais savoir comment il est possible, en partant d'un tableau avec en entête, un numéro de dossart (de 1 à 20), et en dessous, classé par lignes, le résultat de 20 participants multiplié par 10 équipes (donc 10 lignes), de classer, par numéro de dossart et par équipe, chaque participant en fonction de son résultat (du meilleur au moins bon).
Fichier joint : http://cjoint.com/?bgbSxanrFC
Je vous remercie d'avance de l'aide que vous pourrez m'apporter.
Je vous remercie égalemenet, pour mon apprentissage, si vous voulez bien décrire un minimum la procédure, pour que je ne fasse pas un bête copier/coller, mais que je puisse progresser en apprenant pour pouvoir réutiliser, voir adapter, mais je ne pense pas que ce soit pour demain...
Encore merci
Bonjour,
Une solution sans macro, avec en G26 de ton tableau :
Si tu décidais d'avoir le même enchainement de lignes entre les tableaux du
haut et du bas (avec ou sans saut de ligne, au choix, mais dito dans les 2),
tu pourrais simplement recopier vers le bas sans adaptation
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Arkaneo" <nospam-arkaneo@edpnet.be> a écrit dans le message de
news:%23E5Ef1$TIHA.536@TK2MSFTNGP06.phx.gbl...
Bonjour.
Tout d'abord, je vous présente mes meilleurs voeux pour 2008, en vous
souhaitant toutes les meilleures choses.
Je suis totalement débutant en programmation, VBA ou autre, si j'arrive,
via Internet et divers forums, à m'en tirer pas trop mal, j'avoue être
devant une colle où je ne trouve aucune solution (ou je l'ai croisé, mais
mon manque d'expérience fait que je ne l'ai pas reconnu).
Je voudrais savoir comment il est possible, en partant d'un tableau avec
en entête, un numéro de dossart (de 1 à 20), et en dessous, classé par
lignes, le résultat de 20 participants multiplié par 10 équipes (donc 10
lignes), de classer, par numéro de dossart et par équipe, chaque
participant en fonction de son résultat (du meilleur au moins bon).
Fichier joint : http://cjoint.com/?bgbSxanrFC
Je vous remercie d'avance de l'aide que vous pourrez m'apporter.
Je vous remercie égalemenet, pour mon apprentissage, si vous voulez bien
décrire un minimum la procédure, pour que je ne fasse pas un bête
copier/coller, mais que je puisse progresser en apprenant pour pouvoir
réutiliser, voir adapter, mais je ne pense pas que ce soit pour demain...
Si tu décidais d'avoir le même enchainement de lignes entre les tableaux du haut et du bas (avec ou sans saut de ligne, au choix, mais dito dans les 2), tu pourrais simplement recopier vers le bas sans adaptation -- Avec plaisir http://dj.joss.free.fr/trombine.htm Philippe.R Pour se connecter au forum : http://www.excelabo.net/mpfe/connexion.php News://news.microsoft.com/microsoft.public.fr.excel "Arkaneo" a écrit dans le message de news:%23E5Ef1$
Bonjour.
Tout d'abord, je vous présente mes meilleurs voeux pour 2008, en vous souhaitant toutes les meilleures choses.
Je suis totalement débutant en programmation, VBA ou autre, si j'arrive, via Internet et divers forums, à m'en tirer pas trop mal, j'avoue être devant une colle où je ne trouve aucune solution (ou je l'ai croisé, mais mon manque d'expérience fait que je ne l'ai pas reconnu).
Je voudrais savoir comment il est possible, en partant d'un tableau avec en entête, un numéro de dossart (de 1 à 20), et en dessous, classé par lignes, le résultat de 20 participants multiplié par 10 équipes (donc 10 lignes), de classer, par numéro de dossart et par équipe, chaque participant en fonction de son résultat (du meilleur au moins bon).
Fichier joint : http://cjoint.com/?bgbSxanrFC
Je vous remercie d'avance de l'aide que vous pourrez m'apporter.
Je vous remercie égalemenet, pour mon apprentissage, si vous voulez bien décrire un minimum la procédure, pour que je ne fasse pas un bête copier/coller, mais que je puisse progresser en apprenant pour pouvoir réutiliser, voir adapter, mais je ne pense pas que ce soit pour demain...
Encore merci
Arkaneo
Bonjour, Une solution sans macro, avec en G26 de ton tableau :
Si tu décidais d'avoir le même enchainement de lignes entre les tableaux du haut et du bas (avec ou sans saut de ligne, au choix, mais dito dans les 2), tu pourrais simplement recopier vers le bas sans adaptation
Bonjour,
je te remercie sincèrement, ça marche.
J'avais essayer cette méthode, mais je n'arrivais pas à la mettre en place.
Vraiment super, encore merci.
Bonjour,
Une solution sans macro, avec en G26 de ton tableau :
Si tu décidais d'avoir le même enchainement de lignes entre les tableaux
du haut et du bas (avec ou sans saut de ligne, au choix, mais dito dans
les 2), tu pourrais simplement recopier vers le bas sans adaptation
Bonjour,
je te remercie sincèrement, ça marche.
J'avais essayer cette méthode, mais je n'arrivais pas à la mettre en place.
Si tu décidais d'avoir le même enchainement de lignes entre les tableaux du haut et du bas (avec ou sans saut de ligne, au choix, mais dito dans les 2), tu pourrais simplement recopier vers le bas sans adaptation
Bonjour,
je te remercie sincèrement, ça marche.
J'avais essayer cette méthode, mais je n'arrivais pas à la mettre en place.
Vraiment super, encore merci.
Arkaneo
Copie ceci dans le module feuille où l'action se déroule :
P.S. Dans ton tableau du haut, tu n'as pas d'équipe 4 pourtant, elle est bien présente dans le tableau du bas. Faudra corriger !
Élaboré sous Excel 2003 '----------------------------------- Sub test() Dim rg As Range, B As Long, C As Long Dim A As Long, NbLigne As Long
Application.ScreenUpdating = False NbLigne = Range("G4:Z20").Rows.Count For A = 1 To NbLigne Step 2 Set rg = Range("G2:Z" & A + 3) B = rg.Rows.Count With rg .Sort Key1:=.Cells(B, 1), Order1:=xlDescending, _ Header:=xlNo, Orientation:=xlLeftToRight C = C + 1 With Range("G26:Z35") With .Rows(C) .Value = rg.Rows(1).Value End With End With .Sort Key1:=.Cells(1, 1), Order1:=xlAscending, _ Header:=xlNo, Orientation:=xlLeftToRight End With Next End Sub '-----------------------------------
"Arkaneo" a écrit dans le message de news: %23E5Ef1$ Bonjour.
Tout d'abord, je vous présente mes meilleurs voeux pour 2008, en vous souhaitant toutes les meilleures choses.
Je suis totalement débutant en programmation, VBA ou autre, si j'arrive, via Internet et divers forums, à m'en tirer pas trop mal, j'avoue être devant une colle où je ne trouve aucune solution (ou je l'ai croisé, mais mon manque d'expérience fait que je ne l'ai pas reconnu).
Je voudrais savoir comment il est possible, en partant d'un tableau avec
en entête, un numéro de dossart (de 1 à 20), et en dessous, classé par lignes, le résultat de 20 participants multiplié par 10 équipes (donc 10 lignes), de classer, par numéro de dossart et par équipe, chaque participant en fonction de son résultat (du meilleur au moins bon).
Fichier joint : http://cjoint.com/?bgbSxanrFC
Je vous remercie d'avance de l'aide que vous pourrez m'apporter.
Je vous remercie égalemenet, pour mon apprentissage, si vous voulez bien décrire un minimum la procédure, pour que je ne fasse pas un bête copier/coller, mais que je puisse progresser en apprenant pour pouvoir réutiliser, voir adapter, mais je ne pense pas que ce soit pour demain...
Encore merci
Bonjour,
je te remercie sincèrement, ça marche aussi.
J'avais essayer la méthode de Philippe.R, mais je n'arrivais pas à la mettre en place.
Grâce à vous deux, j'ai les deux méthodes, ce qui me permet, non seulement de me corriger, mais aussi de progresser.
Vraiment super, encore merci.
Copie ceci dans le module feuille où l'action se déroule :
P.S. Dans ton tableau du haut, tu n'as pas d'équipe 4
pourtant, elle est bien présente dans le tableau du bas.
Faudra corriger !
Élaboré sous Excel 2003
'-----------------------------------
Sub test()
Dim rg As Range, B As Long, C As Long
Dim A As Long, NbLigne As Long
Application.ScreenUpdating = False
NbLigne = Range("G4:Z20").Rows.Count
For A = 1 To NbLigne Step 2
Set rg = Range("G2:Z" & A + 3)
B = rg.Rows.Count
With rg
.Sort Key1:=.Cells(B, 1), Order1:=xlDescending, _
Header:=xlNo, Orientation:=xlLeftToRight
C = C + 1
With Range("G26:Z35")
With .Rows(C)
.Value = rg.Rows(1).Value
End With
End With
.Sort Key1:=.Cells(1, 1), Order1:=xlAscending, _
Header:=xlNo, Orientation:=xlLeftToRight
End With
Next
End Sub
'-----------------------------------
"Arkaneo" <nospam-arkaneo@edpnet.be> a écrit dans le message de news:
%23E5Ef1$TIHA.536@TK2MSFTNGP06.phx.gbl...
Bonjour.
Tout d'abord, je vous présente mes meilleurs voeux pour 2008, en vous
souhaitant toutes les meilleures choses.
Je suis totalement débutant en programmation, VBA ou autre, si j'arrive,
via Internet et divers forums, à m'en tirer pas trop mal, j'avoue être
devant une colle où je ne trouve aucune solution (ou je l'ai croisé,
mais mon manque d'expérience fait que je ne l'ai pas reconnu).
Je voudrais savoir comment il est possible, en partant d'un tableau avec
en entête, un numéro de dossart (de 1 à 20), et en dessous, classé par
lignes, le résultat de 20 participants multiplié par 10 équipes (donc 10
lignes), de classer, par numéro de dossart et par équipe, chaque
participant en fonction de son résultat (du meilleur au moins bon).
Fichier joint : http://cjoint.com/?bgbSxanrFC
Je vous remercie d'avance de l'aide que vous pourrez m'apporter.
Je vous remercie égalemenet, pour mon apprentissage, si vous voulez bien
décrire un minimum la procédure, pour que je ne fasse pas un bête
copier/coller, mais que je puisse progresser en apprenant pour pouvoir
réutiliser, voir adapter, mais je ne pense pas que ce soit pour demain...
Encore merci
Bonjour,
je te remercie sincèrement, ça marche aussi.
J'avais essayer la méthode de Philippe.R, mais je n'arrivais pas à la
mettre en place.
Grâce à vous deux, j'ai les deux méthodes, ce qui me permet, non
seulement de me corriger, mais aussi de progresser.
Copie ceci dans le module feuille où l'action se déroule :
P.S. Dans ton tableau du haut, tu n'as pas d'équipe 4 pourtant, elle est bien présente dans le tableau du bas. Faudra corriger !
Élaboré sous Excel 2003 '----------------------------------- Sub test() Dim rg As Range, B As Long, C As Long Dim A As Long, NbLigne As Long
Application.ScreenUpdating = False NbLigne = Range("G4:Z20").Rows.Count For A = 1 To NbLigne Step 2 Set rg = Range("G2:Z" & A + 3) B = rg.Rows.Count With rg .Sort Key1:=.Cells(B, 1), Order1:=xlDescending, _ Header:=xlNo, Orientation:=xlLeftToRight C = C + 1 With Range("G26:Z35") With .Rows(C) .Value = rg.Rows(1).Value End With End With .Sort Key1:=.Cells(1, 1), Order1:=xlAscending, _ Header:=xlNo, Orientation:=xlLeftToRight End With Next End Sub '-----------------------------------
"Arkaneo" a écrit dans le message de news: %23E5Ef1$ Bonjour.
Tout d'abord, je vous présente mes meilleurs voeux pour 2008, en vous souhaitant toutes les meilleures choses.
Je suis totalement débutant en programmation, VBA ou autre, si j'arrive, via Internet et divers forums, à m'en tirer pas trop mal, j'avoue être devant une colle où je ne trouve aucune solution (ou je l'ai croisé, mais mon manque d'expérience fait que je ne l'ai pas reconnu).
Je voudrais savoir comment il est possible, en partant d'un tableau avec
en entête, un numéro de dossart (de 1 à 20), et en dessous, classé par lignes, le résultat de 20 participants multiplié par 10 équipes (donc 10 lignes), de classer, par numéro de dossart et par équipe, chaque participant en fonction de son résultat (du meilleur au moins bon).
Fichier joint : http://cjoint.com/?bgbSxanrFC
Je vous remercie d'avance de l'aide que vous pourrez m'apporter.
Je vous remercie égalemenet, pour mon apprentissage, si vous voulez bien décrire un minimum la procédure, pour que je ne fasse pas un bête copier/coller, mais que je puisse progresser en apprenant pour pouvoir réutiliser, voir adapter, mais je ne pense pas que ce soit pour demain...
Encore merci
Bonjour,
je te remercie sincèrement, ça marche aussi.
J'avais essayer la méthode de Philippe.R, mais je n'arrivais pas à la mettre en place.
Grâce à vous deux, j'ai les deux méthodes, ce qui me permet, non seulement de me corriger, mais aussi de progresser.
Vraiment super, encore merci.
Arkaneo
Merci à MichDenis et à Philippe.R
Gràce à eux, voici les deux méthodes, avec et sans VBA :
----- Méthode avec VBA : -----
Copie ceci dans le module feuille où l'action se déroule :
P.S. Dans ton tableau du haut, tu n'as pas d'équipe 4 pourtant, elle est bien présente dans le tableau du bas. Faudra corriger !
Élaboré sous Excel 2003 '----------------------------------- Sub test() Dim rg As Range, B As Long, C As Long Dim A As Long, NbLigne As Long
Application.ScreenUpdating = False NbLigne = Range("G4:Z20").Rows.Count For A = 1 To NbLigne Step 2 Set rg = Range("G2:Z" & A + 3) B = rg.Rows.Count With rg .Sort Key1:=.Cells(B, 1), Order1:=xlDescending, _ Header:=xlNo, Orientation:=xlLeftToRight C = C + 1 With Range("G26:Z35") With .Rows(C) .Value = rg.Rows(1).Value End With End With .Sort Key1:=.Cells(1, 1), Order1:=xlAscending, _ Header:=xlNo, Orientation:=xlLeftToRight End With Next End Sub '-----------------------------------
----- Méthode sans VBA : -----
Une solution sans macro, avec en G26 de ton tableau :
Si tu décidais d'avoir le même enchainement de lignes entre les tableaux du haut et du bas (avec ou sans saut de ligne, au choix, mais dito dans les 2), tu pourrais simplement recopier vers le bas sans adaptation
'---------------------------------------
Voilà vraiment un super forum
Bon courage et bon développement à tous
Merci à MichDenis et à Philippe.R
Gràce à eux, voici les deux méthodes, avec et sans VBA :
----- Méthode avec VBA : -----
Copie ceci dans le module feuille où l'action se déroule :
P.S. Dans ton tableau du haut, tu n'as pas d'équipe 4
pourtant, elle est bien présente dans le tableau du bas.
Faudra corriger !
Élaboré sous Excel 2003
'-----------------------------------
Sub test()
Dim rg As Range, B As Long, C As Long
Dim A As Long, NbLigne As Long
Application.ScreenUpdating = False
NbLigne = Range("G4:Z20").Rows.Count
For A = 1 To NbLigne Step 2
Set rg = Range("G2:Z" & A + 3)
B = rg.Rows.Count
With rg
.Sort Key1:=.Cells(B, 1), Order1:=xlDescending, _
Header:=xlNo, Orientation:=xlLeftToRight
C = C + 1
With Range("G26:Z35")
With .Rows(C)
.Value = rg.Rows(1).Value
End With
End With
.Sort Key1:=.Cells(1, 1), Order1:=xlAscending, _
Header:=xlNo, Orientation:=xlLeftToRight
End With
Next
End Sub
'-----------------------------------
----- Méthode sans VBA : -----
Une solution sans macro, avec en G26 de ton tableau :
Si tu décidais d'avoir le même enchainement de lignes entre les tableaux
du haut et du bas (avec ou sans saut de ligne, au choix, mais dito dans
les 2), tu pourrais simplement recopier vers le bas sans adaptation
Gràce à eux, voici les deux méthodes, avec et sans VBA :
----- Méthode avec VBA : -----
Copie ceci dans le module feuille où l'action se déroule :
P.S. Dans ton tableau du haut, tu n'as pas d'équipe 4 pourtant, elle est bien présente dans le tableau du bas. Faudra corriger !
Élaboré sous Excel 2003 '----------------------------------- Sub test() Dim rg As Range, B As Long, C As Long Dim A As Long, NbLigne As Long
Application.ScreenUpdating = False NbLigne = Range("G4:Z20").Rows.Count For A = 1 To NbLigne Step 2 Set rg = Range("G2:Z" & A + 3) B = rg.Rows.Count With rg .Sort Key1:=.Cells(B, 1), Order1:=xlDescending, _ Header:=xlNo, Orientation:=xlLeftToRight C = C + 1 With Range("G26:Z35") With .Rows(C) .Value = rg.Rows(1).Value End With End With .Sort Key1:=.Cells(1, 1), Order1:=xlAscending, _ Header:=xlNo, Orientation:=xlLeftToRight End With Next End Sub '-----------------------------------
----- Méthode sans VBA : -----
Une solution sans macro, avec en G26 de ton tableau :
Si tu décidais d'avoir le même enchainement de lignes entre les tableaux du haut et du bas (avec ou sans saut de ligne, au choix, mais dito dans les 2), tu pourrais simplement recopier vers le bas sans adaptation