copier des noms dans un tableau et les ordonner en fonction d'un critère

hervoul

XLDnaute Occasionnel
Bjr,
Je pense que ça sera plus clair avec l'exemple joint...
Il faudrait que les noms des élèves dans "feuille recueil Noms+VMA", soient recopiés et classés...dans les cases ci-dessus, correspondant à leur VMA.
merci
à bientôt.
RVoul
 

Pièces jointes

  • RVOUL.xlsx
    14.4 KB · Affichages: 58
  • RVOUL.xlsx
    14.4 KB · Affichages: 63
  • RVOUL.xlsx
    14.4 KB · Affichages: 64

PMO2

XLDnaute Accro
Re : copier des noms dans un tableau et les ordonner en fonction d'un critère

Bonjour,

Une piste avec le code suivant à copier dans un module standard

Code:
'### Noms des feuilles à adapter ###
Const SOURCE As String = "feuille recueil Noms + VMA"
Const DEST As String = "Elèves-VMA"
'###################################

Sub ClassementVMA()
Dim S As Worksheet
Dim R As Range
Dim var
Dim i&
Dim j&
Dim T()
Set S = Sheets(SOURCE)
Set R = S.Range("b3:c" & S.[b3].End(xlDown).Row & "")
var = R
ReDim T(1 To UBound(var, 1), 1 To 21)
For i& = 1 To UBound(var, 1&)
  T(i&, (var(i&, 2) * 2) - 15) = var(i&, 1)
Next i&
Set S = Sheets(DEST)
Set R = S.Range(S.Cells(4, 2), S.Cells(UBound(var, 1) + 4 - 1, 22))
R = T
End Sub


Je me suis référé entièrement à votre classeur exemple.
Il faut donc garder la structure des feuilles.
feuille recueil Noms + VMA liste en B3:Cx
Elèves-VMA tableau en B4:Vx

Cordialement.

PMO
Patrick Morange
 

hervoul

XLDnaute Occasionnel
Re : copier des noms dans un tableau et les ordonner en fonction d'un critère

Merci bcp déjà pour la rapidité de réponse...
Si je peux me permettre, serait-il possible d'empêcher les noms de garder leur hauteur? En fait qu'il se "tassent" en haut de la colonne, les un après les autres...:rolleyes:
merci bcp.
Rvoul
Sinon, ok, c'est ce que je recherche.:)
 

hervoul

XLDnaute Occasionnel
Re : copier des noms dans un tableau et les ordonner en fonction d'un critère

...il faudrait aussi permettre d'allonger la liste de noms au départ. Avoir la possibilité de classer 35 noms, d'aller jusqu'à la ligne 37 du tableau. Car comme j'y connais pas grand chose en visualB, j'ai pas réussi à "bidouiller"....:rolleyes: hemmm...désolé...
RVoul
 

PMO2

XLDnaute Accro
Re : copier des noms dans un tableau et les ordonner en fonction d'un critère

Bonjour,

Si je peux me permettre, serait-il possible d'empêcher les noms de garder leur hauteur? En fait qu'il se "tassent" en haut de la colonne, les un après les autres...

Remplacez tout le précédent code par le code suivant

Code:
'### Noms des feuilles à adapter ###
Const SOURCE As String = "feuille recueil Noms + VMA"
Const DEST As String = "Elèves-VMA"
'###################################

Sub ClassementVMA2()
Dim S As Worksheet
Dim R As Range
Dim var
Dim i&
Dim j&
Dim T()
Set S = Sheets(SOURCE)
Set R = S.Range("b3:c" & S.[b3].End(xlDown).Row & "")
var = R
ReDim T(1 To UBound(var, 1), 1 To 21)
For i& = 1 To UBound(var, 1&)
  For j& = 1 To UBound(T, 1)
    If T(j&, (var(i&, 2) * 2) - 15) = "" Then
      T(j&, (var(i&, 2) * 2) - 15) = var(i&, 1)
      Exit For
    End If
  Next j&
Next i&
Set S = Sheets(DEST)
Set R = S.Range(S.Cells(4, 2), S.Cells(UBound(var, 1) + 4 - 1, 22))
R = T
End Sub



il faudrait aussi permettre d'allonger la liste de noms au départ. Avoir la possibilité de classer 35 noms, d'aller jusqu'à la ligne 37 du tableau.

Dans la feuille "feuille recueil Noms + VMA" il suffit d'ajouter les noms et leur vma respectifs à la suite de ceux déjà existants (ne pas laisser de cellules vides dans la liste). La macro est prévue pour être dynamique.

Cordialement.

PMO
Patrick Morange
 

Discussions similaires

Statistiques des forums

Discussions
312 388
Messages
2 087 883
Membres
103 672
dernier inscrit
ammarhouichi