Merci à tous pour vos messages et vos conseils, top !
Pour Yeahou, voici ce que j'ai entré :
Sub CellSem2()
Dim CellSemaine As Byte
Dim CellDef As Integer
CellSemaine = Worksheets("ExporWeb").Range("H1")
'Dans H1, s'insrit automatiquement le numéro de la semaine en cours
CellDef = (CellSemaine - 1) * 28 + 5
'Afin d'activer la première cellule de la semaine en cours
Sheets("Planning").Select
Range("A1").Select
ActiveCell.Offset(CellDef, 2).Select
ActiveCell.Range("A1:J24").Select
Selection.Copy
Sheets("ExporWeb").Select
Range("C7").Select
ActiveCell.Range("A1:J24").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=True, Transpose:=True
Application.CutCopyMode = False
End Sub
Et voici ce que me dit Excel : "La méthode PAsteSpecial de la classe Range a échoué", kézako ?
Pour Jean-Claude, j'ai adapté ta macro, puisque il faut en fait que je copie quatre plages de cellules en même temps, voici le code que j'ai entré :
Public Sub copier_feuille1()
Dim tableau(1 To 24, 1 To 10)
Dim tableau2(1 To 24, 1 To 10)
Dim x As Variant, y As Variant
Dim CellSemaine As Byte
Dim CellDef As Integer
Dim CellDef2 As Integer
CellSemaine = Worksheets("ExporWeb").Range("H1")
'Dans H1, s'insrit automatiquement le numéro de la semaine en cours
CellDef = (CellSemaine - 1) * 28 + 4
'Pour sélectionner la première cellule de la semaine en cours
CellDef2 = CellSemaine * 28 + 4
For x = 1 To 24
For y = 1 To 10
tableau(x, y) = Worksheets("Planning").Cells(CellDef + x, y + 2).Value
Worksheets("test").Cells(4 + x, 2 + y).Value = tableau(x, y)
tableau2(x, y) = Worksheets("Planning").Cells(CellDef2 + x, y + 2).Value
Worksheets("test").Cells(4 + 28 + x, 2 + y).Value = tableau2(x, y)
'28, c'est le nombre de lignes qui sépare deux semaines dans le planning
Next y
Next x
End Sub
C'est pour seulement deux plages de cellules (c'est-à-dire deux semaines sur mon planning). Ça marche, mais, déjà, c'est lent, il lui faut une minute pour réaliser l'opération, qu'est-ce que ça va être quand il y aura quatre plages de cellules !
Connaîtrais-tu un moyen de simplifier le code, dans le cas justement où les plages à "copier" son plusieurs ?
Je cherche de mon côté, mais j'ai peur de n'en avoir pas les moyens intellectuels ;-)
Bref, si un des spécialistes du forum avait une piste, je serais preneur...
Encore merci pour votre aide ;-)
Yohan, qui ne décolle pas d'Escel (sur Mac)