Yldie
XLDnaute Junior
Bonjour à toutes et à tous,
Comme dit en objet, j'ai réalisé avec mes petits moyens une macro qui fonctionne trop lentement sans doute par le fait que sa structure est une USINE à GAZ et comme je sais que certains ont l'art et la manière de simplifier via des méthodes ad hoc, je vous saurais gré de bien vouloir m'aider à gagner de précieuses secondes...pour ne pas dire minutes. Je sais beaucoup de redondances dans ma structure. Merci par avance.
Voici ma macro qui rame….rame...rame :
Sub etap1()
Dim Cell As Range
Application.Run "Test_Class_Ouvert"
Application.ScreenUpdating = False
ActiveSheet.Unprotect ("pswd")
Range("Z8:AC14").Select
Selection.Copy
Range("C8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.Locked = False
For Each Cell In Sheets("GRH").Range("C8:F14")
If Cell.Value = 0 Then
Cell.ClearContents
End If
Next Cell
Range("Z24:AC30").Select
Selection.Copy
Range("C24").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
For Each Cell In Sheets("GRH").Range("C24:F30")
If Cell.Value = 0 Then
Cell.ClearContents
End If
Next Cell
Selection.Locked = False
Range("Z40:AC46").Select
Selection.Copy
Range("C40").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.Locked = False
For Each Cell In Sheets("GRH").Range("C40:F46")
If Cell.Value = 0 Then
Cell.ClearContents
End If
Next Cell
Range("Z56:AC62").Select
Selection.Copy
Range("C56").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.Locked = False
For Each Cell In Sheets("GRH").Range("C56:F62")
If Cell.Value = 0 Then
Cell.ClearContents
End If
Next Cell
Range("Z72:AC78").Select
Selection.Copy
Range("C72").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.Locked = False
For Each Cell In Sheets("GRH").Range("C72:F78")
If Cell.Value = 0 Then
Cell.ClearContents
End If
Next Cell
ActiveSheet.Protect ("pswd")
End Sub
Comme dit en objet, j'ai réalisé avec mes petits moyens une macro qui fonctionne trop lentement sans doute par le fait que sa structure est une USINE à GAZ et comme je sais que certains ont l'art et la manière de simplifier via des méthodes ad hoc, je vous saurais gré de bien vouloir m'aider à gagner de précieuses secondes...pour ne pas dire minutes. Je sais beaucoup de redondances dans ma structure. Merci par avance.
Voici ma macro qui rame….rame...rame :
Sub etap1()
Dim Cell As Range
Application.Run "Test_Class_Ouvert"
Application.ScreenUpdating = False
ActiveSheet.Unprotect ("pswd")
Range("Z8:AC14").Select
Selection.Copy
Range("C8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.Locked = False
For Each Cell In Sheets("GRH").Range("C8:F14")
If Cell.Value = 0 Then
Cell.ClearContents
End If
Next Cell
Range("Z24:AC30").Select
Selection.Copy
Range("C24").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
For Each Cell In Sheets("GRH").Range("C24:F30")
If Cell.Value = 0 Then
Cell.ClearContents
End If
Next Cell
Selection.Locked = False
Range("Z40:AC46").Select
Selection.Copy
Range("C40").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.Locked = False
For Each Cell In Sheets("GRH").Range("C40:F46")
If Cell.Value = 0 Then
Cell.ClearContents
End If
Next Cell
Range("Z56:AC62").Select
Selection.Copy
Range("C56").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.Locked = False
For Each Cell In Sheets("GRH").Range("C56:F62")
If Cell.Value = 0 Then
Cell.ClearContents
End If
Next Cell
Range("Z72:AC78").Select
Selection.Copy
Range("C72").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.Locked = False
For Each Cell In Sheets("GRH").Range("C72:F78")
If Cell.Value = 0 Then
Cell.ClearContents
End If
Next Cell
ActiveSheet.Protect ("pswd")
End Sub