OVH Cloud OVH Cloud

Optimiser un code

4 réponses
Avatar
YeTi
Bonjour,

J'ai enregistré une macro récemment mais quand j'ai regardé dans le code, je
trouvais qu'il y avait pas mal d'étape inutiles... Voici le code original:

Private Sub Image3_Click()
Sheets("Feuil1").Visible = True
Sheets("Feuil1").Select
Cells.Select
Selection.Copy
Range("H4").Select
Sheets("Feuil2").Visible = True
Sheets("Feuil2").Select
Cells.Select
ActiveSheet.Paste
Range("H4").Select
Sheets("Feuil2").Visible = False
Sheets("Feuil1").Visible = False
Sheets("Feuil3").Select
UserForm1.Hide
UserForm2.Show
End Sub

Voici le code optimisé (et qui fonctionne tjrs):
Private Sub Image3_Click()
Sheets("Feuil1").Visible = True
Sheets("Feuil1").Cells.Copy
Sheets("Feuil2").Visible = True
Sheets("Feuil2").Select
Cells.Select
ActiveSheet.Paste
Sheets("Feuil2").Visible = False
Sheets("Feuil1").Visible = False
Sheets("Feuil3").Select
UserForm1.Hide
UserForm2.Show
End Sub

Pourtant, je suis sur qu'on peut encore mieux optimiser tout ceci! Mais je
n'y arrive pas sans provoquer une erreur...

Est-ce que qqn peut m'aider?
Merci d'avance

4 réponses

Avatar
JLuc
YeTi avait soumis l'idée :
Bonjour,

J'ai enregistré une macro récemment mais quand j'ai regardé dans le code, je
trouvais qu'il y avait pas mal d'étape inutiles... Voici le code original:

Private Sub Image3_Click()
Sheets("Feuil1").Visible = True
Sheets("Feuil1").Select
Cells.Select
Selection.Copy
Range("H4").Select
Sheets("Feuil2").Visible = True
Sheets("Feuil2").Select
Cells.Select
ActiveSheet.Paste
Range("H4").Select
Sheets("Feuil2").Visible = False
Sheets("Feuil1").Visible = False
Sheets("Feuil3").Select
UserForm1.Hide
UserForm2.Show
End Sub

Voici le code optimisé (et qui fonctionne tjrs):
Private Sub Image3_Click()
Sheets("Feuil1").Visible = True
Sheets("Feuil1").Cells.Copy
Sheets("Feuil2").Visible = True
Sheets("Feuil2").Select
Cells.Select
ActiveSheet.Paste
Sheets("Feuil2").Visible = False
Sheets("Feuil1").Visible = False
Sheets("Feuil3").Select
UserForm1.Hide
UserForm2.Show
End Sub

Pourtant, je suis sur qu'on peut encore mieux optimiser tout ceci! Mais je
n'y arrive pas sans provoquer une erreur...

Est-ce que qqn peut m'aider?
Merci d'avance


Private Sub Image3_Click()
Worksheets("Feuil1").Cells.Copy _
destination:=Worksheets("Feuil2").Range("A1")
UserForm1.Hide
UserForm2.Show
End Sub

Devrait faire l'affaire. Dis nous

--
JLuc

Avatar
YeTi
Wow! Alors ça c'est de l'optimisation!

Et en plus ca marche parfaitement! Merci beaucoup!


YeTi avait soumis l'idée :
Bonjour,

J'ai enregistré une macro récemment mais quand j'ai regardé dans le code, je
trouvais qu'il y avait pas mal d'étape inutiles... Voici le code original:

Private Sub Image3_Click()
Sheets("Feuil1").Visible = True
Sheets("Feuil1").Select
Cells.Select
Selection.Copy
Range("H4").Select
Sheets("Feuil2").Visible = True
Sheets("Feuil2").Select
Cells.Select
ActiveSheet.Paste
Range("H4").Select
Sheets("Feuil2").Visible = False
Sheets("Feuil1").Visible = False
Sheets("Feuil3").Select
UserForm1.Hide
UserForm2.Show
End Sub

Voici le code optimisé (et qui fonctionne tjrs):
Private Sub Image3_Click()
Sheets("Feuil1").Visible = True
Sheets("Feuil1").Cells.Copy
Sheets("Feuil2").Visible = True
Sheets("Feuil2").Select
Cells.Select
ActiveSheet.Paste
Sheets("Feuil2").Visible = False
Sheets("Feuil1").Visible = False
Sheets("Feuil3").Select
UserForm1.Hide
UserForm2.Show
End Sub

Pourtant, je suis sur qu'on peut encore mieux optimiser tout ceci! Mais je
n'y arrive pas sans provoquer une erreur...

Est-ce que qqn peut m'aider?
Merci d'avance


Private Sub Image3_Click()
Worksheets("Feuil1").Cells.Copy _
destination:=Worksheets("Feuil2").Range("A1")
UserForm1.Hide
UserForm2.Show
End Sub

Devrait faire l'affaire. Dis nous

--
JLuc






Avatar
YeTi
J'ai réussi a optimiser d'autres parties de mon code grâce a ton aide et je
t'en remercie!

Par contre j'ai un petit problème là car je n'arrive rien a optimiser...
est-ce qu'on peut faire qqch? Voici le code:

Private Sub Image1_Click()
If OptionButton1 Then
UserForm1.Hide
UserForm2.Show
End If

If OptionButton2 Then
UserForm1.Hide
UserForm3.Show
End If

If OptionButton3 Then
UserForm1.Hide
UserForm4.Show
End If

If OptionButton4 Then
UserForm1.Hide
UserForm5.Show
End If

End Sub


Merci!




Wow! Alors ça c'est de l'optimisation!

Et en plus ca marche parfaitement! Merci beaucoup!


YeTi avait soumis l'idée :
Bonjour,

J'ai enregistré une macro récemment mais quand j'ai regardé dans le code, je
trouvais qu'il y avait pas mal d'étape inutiles... Voici le code original:

Private Sub Image3_Click()
Sheets("Feuil1").Visible = True
Sheets("Feuil1").Select
Cells.Select
Selection.Copy
Range("H4").Select
Sheets("Feuil2").Visible = True
Sheets("Feuil2").Select
Cells.Select
ActiveSheet.Paste
Range("H4").Select
Sheets("Feuil2").Visible = False
Sheets("Feuil1").Visible = False
Sheets("Feuil3").Select
UserForm1.Hide
UserForm2.Show
End Sub

Voici le code optimisé (et qui fonctionne tjrs):
Private Sub Image3_Click()
Sheets("Feuil1").Visible = True
Sheets("Feuil1").Cells.Copy
Sheets("Feuil2").Visible = True
Sheets("Feuil2").Select
Cells.Select
ActiveSheet.Paste
Sheets("Feuil2").Visible = False
Sheets("Feuil1").Visible = False
Sheets("Feuil3").Select
UserForm1.Hide
UserForm2.Show
End Sub

Pourtant, je suis sur qu'on peut encore mieux optimiser tout ceci! Mais je
n'y arrive pas sans provoquer une erreur...

Est-ce que qqn peut m'aider?
Merci d'avance


Private Sub Image3_Click()
Worksheets("Feuil1").Cells.Copy _
destination:=Worksheets("Feuil2").Range("A1")
UserForm1.Hide
UserForm2.Show
End Sub

Devrait faire l'affaire. Dis nous

--
JLuc








Avatar
JLuc
YeTi avait soumis l'idée :
J'ai réussi a optimiser d'autres parties de mon code grâce a ton aide et je
t'en remercie!

Par contre j'ai un petit problème là car je n'arrive rien a optimiser...
est-ce qu'on peut faire qqch? Voici le code:

Private Sub Image1_Click()
If OptionButton1 Then
UserForm1.Hide
UserForm2.Show
End If

If OptionButton2 Then
UserForm1.Hide
UserForm3.Show
End If

If OptionButton3 Then
UserForm1.Hide
UserForm4.Show
End If

If OptionButton4 Then
UserForm1.Hide
UserForm5.Show
End If

End Sub


Peut etre aves :
Private Sub CommandButton1_Click()
For Each ctrl In Me.Controls
If TypeName(ctrl) = "OptionButton" And ctrl.Value = True Then
MsgBox "Fermer le Userform1"
Select Case ctrl.Name
Case "OptionButton1": MsgBox "Ouvrir Userform2"
Case "OptionButton2": MsgBox "Ouvrir Userform3"
Case "OptionButton3": MsgBox "Ouvrir Userform4"
Case "OptionButton4": MsgBox "Ouvrir Userform5"
End Select
End If
Next

End Sub

Ci-joint :
http://cjoint.com/?bto7UDrNiy

Merci!
De rien




Wow! Alors ça c'est de l'optimisation!

Et en plus ca marche parfaitement! Merci beaucoup!


YeTi avait soumis l'idée :
Bonjour,

J'ai enregistré une macro récemment mais quand j'ai regardé dans le code,
je trouvais qu'il y avait pas mal d'étape inutiles... Voici le code
original:

Private Sub Image3_Click()
Sheets("Feuil1").Visible = True
Sheets("Feuil1").Select
Cells.Select
Selection.Copy
Range("H4").Select
Sheets("Feuil2").Visible = True
Sheets("Feuil2").Select
Cells.Select
ActiveSheet.Paste
Range("H4").Select
Sheets("Feuil2").Visible = False
Sheets("Feuil1").Visible = False
Sheets("Feuil3").Select
UserForm1.Hide
UserForm2.Show
End Sub

Voici le code optimisé (et qui fonctionne tjrs):
Private Sub Image3_Click()
Sheets("Feuil1").Visible = True
Sheets("Feuil1").Cells.Copy
Sheets("Feuil2").Visible = True
Sheets("Feuil2").Select
Cells.Select
ActiveSheet.Paste
Sheets("Feuil2").Visible = False
Sheets("Feuil1").Visible = False
Sheets("Feuil3").Select
UserForm1.Hide
UserForm2.Show
End Sub

Pourtant, je suis sur qu'on peut encore mieux optimiser tout ceci! Mais je
n'y arrive pas sans provoquer une erreur...

Est-ce que qqn peut m'aider?
Merci d'avance


Private Sub Image3_Click()
Worksheets("Feuil1").Cells.Copy _
destination:=Worksheets("Feuil2").Range("A1")
UserForm1.Hide
UserForm2.Show
End Sub

Devrait faire l'affaire. Dis nous

--
JLuc








--
JLuc