Tout d'abord désolé pour ce titre peut explicite, mais j'ai du mal à convertir ma demande en quelque chose de simple.
Voici donc ce que j'aimerais faire : j'ai un tableau dans un onglet représentant une base de données et je voudrais recopier ces données dans un autre onglet toutes les 12 lignes.
Par exemple la valeur en A1 dans l'onglet 1 devra se retrouver en B9 dans l'onglet 2. Ensuite la valeur de A2 en B21 (+12 lignes), celle de A3 en B33, etc.
Bien sûr je pourrais mettre en B9 de l'onglet 2 "=Onglet1!A1". Mais comme j'ai énormément de cellules à traiter, j'aimerais pouvoir mettre une formule que je collerai toutes les 12 lignes.
J'avais pensé à indirect(), mais je sèche sur la façon de l'utiliser dans ce cas précis.
Comme je ne sais pas si je suis très clair, je joins un petit fichier très simple.
Option Explicit
Sub test()
Dim i As Long, j As Long
j = 9
With Sheets("Sheet1")
For i = 1 To .Range("A65536").End(xlUp).Row
Sheets("Sheet2").Cells(j, 2).Value = .Cells(i, 1).Value
j = j + 12
Next i
End With
End Sub
Sub Macro1()
Dim cel As Range 'déclare la variable cel (CELlule)
Dim dest As Range 'déclare la variable dest (DESTination)
Set dest = Sheets("Sheet2").Range("B9") 'définit la cellule de destination
'boucle sur toutes les cellules éditées cel de la colonne A de l'onglet "Sheet1"
For Each cel In Sheets("Sheet1").Range("A1:A" & Sheets("Sheet1").Range("A65536").End(xlUp).Row)
dest.Value = cel.Value 'récupère dans dest la valeur de la cellule cel
Set dest = dest.Offset(12, 0) 'redéfinit dest
Next cel 'prochaine cellule de la boucle
End Sub
Édition : Bonjour MRomain, Pierrot on s'est croisé
Merci beaucoup pour cette réponse très rapide et très efficace.
Bonjour Pierrot93 et Robert,
Merci également pour vos solutions.
Je pensais passer par une formule pour plus de simplicité, mais je garde vos propositions, car le fichier étant conséquent, la macro pourrait permettre de l'alléger de quelques formules.