Modifier forme dans autre feuille
Bonjour, j'ai créé une macro permettant à partir d'une feuille contenant un tableau de mettre au premier ou dernier plan des formes situées dans un autre document.
J'ai fais une boucle du type :
Pour i allant de 1 à 50
Voir si forme 50=vrai (dans la page 2)
alors mettre forme 50 en arrière plan (dans la page 3)
...
Et je suis obligé de rendre chaque page active 2 puis 3 à chaque selection.
Je voudrais que la page active reste la page 2 tout en changeant les formes de la page 3 (en arrière plan) car le calcul devient long.
Voici mon code :
Code:
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 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| Sub Bouton4_clic()
Dim y, z
z = 2
For y = 1 To z
Sheets("Base").Copy After:=Sheets(ThisWorkbook.Sheets.Count)
ActiveSheet.Name = "S" & 42 + y
Sheets("Plan").Select
Dim nom_reseau As String
Dim case_init As Range
Set case_init = ActiveSheet.Range("C42")
Dim i As Integer
Dim j As Integer
j = Range("E1").Value - 42
For i = 0 To 59
Sheets("Plan").Select
case_init.Offset(j, i).Select
nom_reseau = case_init.Offset(0, i).Value
Sheets("S" & 42 + y).Select
If case_init.Offset(j, i) = 0 Then
ActiveSheet.Shapes(nom_reseau).Select
Selection.ShapeRange.ZOrder msoSendToBack
ActiveSheet.Shapes(nom_reseau & "b").Select
Selection.ShapeRange.ZOrder msoSendToBack
ActiveSheet.Shapes(nom_reseau & "c").Select
Selection.ShapeRange.ZOrder msoSendToBack
ElseIf case_init.Offset(j, i) = 1 Then
ActiveSheet.Shapes(nom_reseau).Select
Selection.ShapeRange.ZOrder msoSendToFront
ActiveSheet.Shapes(nom_reseau & "b").Select
Selection.ShapeRange.ZOrder msoSendToFront
ActiveSheet.Shapes(nom_reseau & "c").Select
Selection.ShapeRange.ZOrder msoSendToFront
Else
ActiveSheet.Shapes(nom_reseau).Select
Selection.ShapeRange.ZOrder msoSendToFront
ActiveSheet.Shapes(nom_reseau & "b").Select
Selection.ShapeRange.ZOrder msoSendToBack
ActiveSheet.Shapes(nom_reseau & "c").Select
Selection.ShapeRange.ZOrder msoSendToBack
End If
Next
Next y
End Sub |
Dites moi si je peux eviter ce sheets select à chaque fois qui rallonge énormément mon calcul.
Merci d'avance