Bonjour Fab...
Bon vraiment en ayant l'espoir que tu feras la prochaine macro tout seul ...
Voici la macro "commentée en live" !!!
Option Explicit 'DEJA EXPLIQUE
Sub Copie24X()
Dim Table As Long '(DECLARATION de VARIABLE)
Dim X As Currency '(Idem)
Dim Max As Integer '(Idem)
Dim Dif As Integer '(Idem)
Dim Depart As String '(Idem)
Dim Col As Integer '(Idem)
Dim Collage As Integer '(Idem)
Dim Ligne As Integer '(Idem) (consulter l'aide pour savoir ce que sont ces variable)
Table = Sheets(1).Range("A65536").End(xlUp).Row '(on trouve la dernière cellule pleine de la colonne A)
If Table < 25 Then '(On test si c'est plus petit que 25, car sinon çà rentre pas 24 cellules copiées)
MsgBox "La table est trop petite, 25 cellules mini !" '(Message d'alerte)
Exit Sub '(si c'est pas bon ON SORT, fin de macro)
End If '(Fin du Test)
X = (Table - Ligne - 24) / 24 '(On mesure la place dispo divisée pas 24)
Max = Application.WorksheetFunction.RoundDown(X, 0) '(on arrondit inférieur, faut un chiffre entier !)
Dif = Table - 24 - (Max * 24) '(on calcule la différence pour les lignes résiduelles en dessous de 24)
Depart = InputBox("Entrez la cellule de départ svp", _
"ADRESSE DE LA 1er CELLULE", "B1") '(on propose au user de taper la cellule de départ de la copie)
Range(Depart).Select '(on sélectionne ce point de départ)
Ligne = Selection.Row '(on mémorise la ligne de départ)
Col = Selection.Column '(on mémorise la Colonne de départ)
Range(Selection, Selection.Offset(23, 0)).Select '(on garde selectionné et on décalera la sélection de 23)
Selection.Copy '(Copie hi hi hi)
For Collage = 1 To Max '(on fait une boucle sur le nombre de fois max où on peut coller les 24 cellules)
Cells(Ligne, Col).Select '(et On prend le repère, on sélectionne)
Selection.Offset(24, 0).Select '(on Décale de 24 en selection plus bas)
ActiveSheet.Paste '(on colle donc plus bas)
Ligne = Ligne + 24 '(on rajoute 24 pour la prochaine boucle)
Next Collage '(on repare au départ de la boucle mais 24 lignes plus bas donc.....)
Cells(Ligne, Col).Select '(on est sorti de la boucle on sélectionne la premiere des 24 cellule)
Range(Selection, Selection.Offset(Dif - 1, 0)).Select '(on sélectionne juste le "résidu" du nombre de cellules)
Selection.Copy '(Copie hi hi hi)
Selection.Offset(24, 0).Select '(on se met en place 24 cellule plus bas)
ActiveSheet.Paste '(on colle donc juste c'qui faut)
MsgBox "Vos 24 lignes ont été copiées " & Max & " Fois ! Plus " & Dif & " lignes..."
Range(Depart).Select '(on revient à la cellule de départ)
Application.CutCopyMode = False '(on arrete le mode collage (les pointillés autour des cellules)
End Sub '(ouf c'est fini)
....
@+Thierry