1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
public Sub ajout_temps()
Dim nom_feuil
With ActiveWorkbook
'choix de la feuille où sont les temps à copier
nom_feuil = Worksheets(InputBox("nom de feuil chrono", "nom de feuil")).Name
'on va sur la feuille
.Sheets(nom_feuil).Activate
' choix si il faut rajouté une colonne avec non et prénom dans la meme cellule dans la feuille chrono
colonne = InputBox("ajouté colonne nom prénom regroupé (oui ou non ) oui si pas de colonne avec nom et prénom dans la même cellule", "ajouté colonne")
If colonne = "oui" Then
'selection de la colonne a inseré
.Sheets(nom_feuil).Range("a:a").Select
Selection.EntireColumn.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
' formule pour regroupé le nom et le prenom
.Sheets(nom_feuil).Range("a:a").FormulaR1C1 = "=CONCATENATE(rc[1] & rc[2])"
Else
End If
'boucle sur colonne et recherche la dernière colonne vide feuille chrono
For c = 4 To Cells(1, Columns.Count).End(xlToLeft).Column
'boucle sur ligne et recherche de la dernière ligne colonne prénom
For l = 2 To Cells(Rows.Count, c).End(xlUp).Row
' recherche de la colonne ou est situé le titre de la colonne temps
Set c_r = ActiveWorkbook.Sheets("resultat").Range("b2:b50").Find(ActiveWorkbook.Sheets(nom_feuil).Cells(l, 1).Value, LookIn:=xlValues, lookat:=xlWhole)
'recherche de la ligne ou est situé le groupe nom prénom dans la colonne b masque pour avoir un identifiant unique
Set l_r = ActiveWorkbook.Sheets("resultat").Range("a2:v3").Find(ActiveWorkbook.Sheets(nom_feuil).Cells(1, c).Value, LookIn:=xlValues, lookat:=xlWhole)
If (Not (c_r Is Nothing) Or (l_r Is Nothing)) And ((c_r Is Nothing) Or Not (l_r Is Nothing)) Then
' copie du temps dans la cellule situe au croisement des ligne et colonne
.Sheets("resultat").Cells(c_r.Row, l_r.Column).Value = .Sheets(nom_feuil).Cells(l, c).Value
Else
End If
Next l
Next c
.Sheets(nom_feuil).Activate
For c = Cells(1, Columns.Count).End(xlToLeft).Column To 4 Step -1
.Sheets(nom_feuil).Cells(1, c + 1).Select
Selection.EntireColumn.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
.Sheets(nom_feuil).Cells(1, c + 1).Value = Cells(1, c).Value + " pts"
For l = 2 To Cells(Rows.Count, c).End(xlUp).Row
' recherche de la colonne ou est situé le titre de la colonne temps
Set c_r = ActiveWorkbook.Sheets("resultat").Range("b2:b50").Find(ActiveWorkbook.Sheets(nom_feuil).Cells(l, 1).Value, LookIn:=xlValues, lookat:=xlWhole)
'recherche de la ligne ou est situé le groupe nom prénom dans la colonne b masque pour avoir un identifiant unique
Set l_r = ActiveWorkbook.Sheets("resultat").Range("a2:v3").Find(ActiveWorkbook.Sheets(nom_feuil).Cells(1, c).Value, LookIn:=xlValues, lookat:=xlWhole)
If (Not (c_r Is Nothing) Or (l_r Is Nothing)) And ((c_r Is Nothing) Or Not (l_r Is Nothing)) Then
' copie des point dans la cellule situe au croisement des ligne et colonne
.Sheets(nom_feuil).Cells(l, c + 1).Value = .Sheets("resultat").Cells(c_r.Row, l_r.Column + 1).Value
Else
End If
Next l
Next c
MsgBox "fin de transfert"
End With
End Sub |
Partager