XL pour MAC Copie de cellules dans une autre feuille excel

marcheurnordique

XLDnaute Junior
Bonjour à tous,

Je voudrais saisir dans les cellules C22, D22, E22, F22, les données de la feuille 4 et incrémenter ceci dans lignes suivantes (C23,D23,E23,F23 - C24,D24,E24,F24… etc.
Le problème, c'est que les données à copier sont en lignes et je veux les mettre en colonnes.
Si cela peut se faire automatiquement, ça serait encore mieux…
Pouvez-vous m'aider, s'il vous plaît ?
Merci d'avance pour votre recherche.
Je vous joins un fichier.
marcheurnordique
 

Pièces jointes

  • Classement.xlsx
    15.8 KB · Affichages: 15

marcheurnordique

XLDnaute Junior
Bonjour djidji59430,
Merci de t'être penché sur mon sujet.
J'ai oublié de préciser que dans les cellules D22, E22, et F22, ce sont la différence entre le temps du tour 1 et le temps du tour 2 soit le temps au tour et non pas le cumul et ainsi de suite pour les autres tours.
 

job75

XLDnaute Barbatruc
Bonjour marcheurnordique, djidji59430,

Voyez le fichier .xlsm joint et cette macro dans le code de la 2ème feuille :
VB:
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
[A2].Resize(Rows.Count - 1, Columns.Count).ClearContents 'RAZ
With Feuil1.[A1].CurrentRegion
    If .Columns.Count = 1 Then Exit Sub
    [A2] = 1
    With .Cells(1, 2).Resize(.Rows.Count, .Columns.Count - 1)
        [B2].Resize(.Columns.Count, .Rows.Count) = Application.Transpose(.Cells)
        [A2].Resize(.Columns.Count).DataSeries 'numérotation (classement)
        [B2].Offset(, .Rows.Count).Resize(.Columns.Count) = "=IF(SUM(RC3:RC[-1]),SUM(RC3:RC[-1]),"""")"
        [B2].Resize(.Columns.Count, .Rows.Count + 1).Sort [B2].Offset(, .Rows.Count), xlAscending, Header:=xlNo
    End With
End With
End Sub
Elle se déclenche quand on active la feuille.

A+
 

Pièces jointes

  • Classement(1).xlsm
    20.3 KB · Affichages: 7
Dernière édition:

marcheurnordique

XLDnaute Junior
Bonsoir job75 et djidji59430,
Désolé de répondre si tard, mais j'étais parti toute la journée.
Le travail que vous avez fait est déjà très bien, mais j'aurais voulu que dans la feuille 5, les temps soient des temps au tour (exemple : Dossard 1 - Tour 1 (C5) = 01:00, Tour 2 (D5) = soit 00:42 au tour, Tour 3 (E5) = 00:08 au tour, Tour 4 (F5) = 00:07 au tour.
Et que dans la feuille 5, ces temps "au tour" soient reportés automatiquement dans les cellules correspondantes (C5-D5-E5-F5), mais il faut que dans la cellule G5, ce soit le temps cumulé des cellules C5-D5-E5-F5 qui soit reporté.
 

marcheurnordique

XLDnaute Junior
djidji59430,
Dans la feuille 4, il n'y a pas besoin d'additionner les temps des 4 tours, car le temps de la cellule B2 est le temps du tour 1, le temps de la cellule B3 est le temps du tour 1 et du tour 2 cumulés et le temps de la cellule B4 est le temps du tour 1, du tour 2 et du tour 3 cumulés et le temps de la cellule B5 est le temps du tour 1, du tour 2, du tour 3 et du tour 4 cumulés. Il ne faut pas additionner les temps des 4 cellules.
Par contre, dans la feuille 5, je veux que les temps tour par tour soient reportés dans les cellules C2, D2, E2 et F2 et dans la cellule G2 il faut que ce soit la somme des 4 cellules précédemment citées soit 01:57.
 

marcheurnordique

XLDnaute Junior
J'ai essayé le fichier, mais les temps du dossard (par exemple), des cellules C2, D2, E2 et F2 de la feuille 5 doivent être des temps tour par tour c'est à dire 00:05 pour le 1er tour, 00:04 pour le 2ème tour, 00:02 pour le 3ème tour et 00:01 pour le 4ème tour et dans la cellule G2 doit apparaître la somme des 4 cellules précédemment citées, soit 00:12.
Par contre, les temps des cellules B2,B3,B4 et B5 sont des temps cumulés (additionnés tour par tour).
 

marcheurnordique

XLDnaute Junior
djidji59430,
Je viens de m'apercevoir que lorsque je fais un tri sur le temps, les numéros de dossards ne correspondent pas avec les temps et les cellules vides se mettent en premier.
J'aimerais que ces cellules vides se mettent en dernier, en suite logique.
Comment faire un classement normal ?
Merci pour ta réponse.
marcheurnordique
 

job75

XLDnaute Barbatruc
Bonjour marcheurnordique, le forum,

Voyez ce fichier (2) et la macro complétée pour les différences entre tours :
VB:
Private Sub Worksheet_Activate()
Dim tablo, cc%, resu(), i&, j%
Application.ScreenUpdating = False
[A2].Resize(Rows.Count - 1, Columns.Count).ClearContents 'RAZ
With Feuil1.[A1].CurrentRegion
    If .Columns.Count = 1 Or .Rows.Count = 1 Then Exit Sub
    [A2] = 1
    With .Cells(1, 2).Resize(.Rows.Count, .Columns.Count - 1)
        [A2].Resize(.Columns.Count).DataSeries 'numérotation (classement)
        [B2].Resize(.Columns.Count, .Rows.Count) = Application.Transpose(.Cells)
        With [C2].Resize(.Columns.Count, .Rows.Count - 1)
            tablo = .Value 'matrice, plus rapide
            cc = .Columns.Count
            ReDim resu(1 To .Rows.Count, 1 To cc)
            For i = 1 To .Rows.Count
                resu(i, 1) = tablo(i, 1)
                For j = 2 To cc
                    resu(i, j) = tablo(i, j) - tablo(i, j - 1)
                    If resu(i, j) = 0 Then resu(i, j) = ""
            Next j, i
            .Value = resu 'restitution
        End With
        [B2].Offset(, .Rows.Count).Resize(.Columns.Count) = "=IF(SUM(RC3:RC[-1]),SUM(RC3:RC[-1]),"""")"
        [B2].Resize(.Columns.Count, .Rows.Count + 1).Sort [B2].Offset(, .Rows.Count), xlAscending, Header:=xlNo
    End With
End With
End Sub
A+
 

Pièces jointes

  • Classement(2).xlsm
    21.6 KB · Affichages: 7

Discussions similaires

Statistiques des forums

Discussions
312 082
Messages
2 085 167
Membres
102 801
dernier inscrit
mrclbl