Microsoft 365 Nettoyer les étapes inutiles d'une macro

oceanepla

XLDnaute Junior
Bonjour,

J'ai fais une macco mais j'ai l'impression qu'elle peut être améliorer en supprimant les étapes inutiles mais je ne sais pas comment faire. Voici mon fichier, si quelqu'un veut bien jeter un oeil.

Merci d'avance,
 

Pièces jointes

  • Plan d'actions Proposition 3 v1-4 Océ.xlsm
    155.5 KB · Affichages: 16

Lolote83

XLDnaute Barbatruc
Bonjour,
Dans ta macro1, remplace toute la partie des copier-collé par ceci
Je n'ai pas repris ici les premières lignes de ta macro1. La partie donnée ci-dessous est à insérer après le debut
VB:
Sub Macro111()
    Application.ScreenUpdating = False
    With Sheets("Saisie")
        .Range("C4").Copy Sheets("PA Général").Range("D11")
        .Range("C6").Copy Sheets("PA Général").Range("A11")
        .Range("C8").Copy Sheets("PA Général").Range("B11")
        .Range("C10").Copy Sheets("PA Général").Range("E11")
        .Range("C12").Copy Sheets("PA Général").Range("F11")
        .Range("C16").Copy Sheets("PA Général").Range("H11")
        .Range("C18").Copy Sheets("PA Général").Range("I11")
        .Range("C22").Copy Sheets("PA Général").Range("P11")
        .Range("C24").Copy Sheets("PA Général").Range("N11")
    End With
    Application.ScreenUpdating = True
End Sub
Pas regardé la macro2, pas le temps.
@+ Lolote83
 

oceanepla

XLDnaute Junior
Bonjour,
Dans ta macro1, remplace toute la partie des copier-collé par ceci
Je n'ai pas repris ici les premières lignes de ta macro1. La partie donnée ci-dessous est à insérer après le debut
VB:
Sub Macro111()
    Application.ScreenUpdating = False
    With Sheets("Saisie")
        .Range("C4").Copy Sheets("PA Général").Range("D11")
        .Range("C6").Copy Sheets("PA Général").Range("A11")
        .Range("C8").Copy Sheets("PA Général").Range("B11")
        .Range("C10").Copy Sheets("PA Général").Range("E11")
        .Range("C12").Copy Sheets("PA Général").Range("F11")
        .Range("C16").Copy Sheets("PA Général").Range("H11")
        .Range("C18").Copy Sheets("PA Général").Range("I11")
        .Range("C22").Copy Sheets("PA Général").Range("P11")
        .Range("C24").Copy Sheets("PA Général").Range("N11")
    End With
    Application.ScreenUpdating = True
End Sub
Pas regardé la macro2, pas le temps.
@+ Lolote83
Ok super merci ça m'aide déjà bcp
 

Webperegrino

XLDnaute Impliqué
Supporter XLD
Bonjour Le Forum, Oceanepla, Lolote83,
Une autre présentation :
VB:
Sub Macro111()
  Set GEN = Sheets("PA Général")
  Application.ScreenUpdating = False
  With Sheets("Saisie")
    .[C4].Copy GEN.[D11]: .[C6].Copy GEN.[A11]: .[C8].Copy GEN.[B11]
    .[C10].Copy GEN.[E11]: .[C12].Copy GEN.[F11]: .[C16].Copy GEN.[H11]
    .[C18].Copy GEN.[I11]: .[C22].Copy GEN.[P11]: .[C24].Copy GEN.[N11]
  End With
  Application.ScreenUpdating = True
End Sub
 

oceanepla

XLDnaute Junior
Bonjour Le Forum, Oceanepla, Lolote83,
Une autre présentation :
VB:
Sub Macro111()
  Set GEN = Sheets("PA Général")
  Application.ScreenUpdating = False
  With Sheets("Saisie")
    .[C4].Copy GEN.[D11]: .[C6].Copy GEN.[A11]: .[C8].Copy GEN.[B11]
    .[C10].Copy GEN.[E11]: .[C12].Copy GEN.[F11]: .[C16].Copy GEN.[H11]
    .[C18].Copy GEN.[I11]: .[C22].Copy GEN.[P11]: .[C24].Copy GEN.[N11]
  End With
  Application.ScreenUpdating = True
End Sub
Merci bcp :)
 

Phil69970

XLDnaute Barbatruc
Bonjour à tous

Je te propose ce code .... qui remplace la totalité de la macro 1
Code:
Sub Remplace_Macro1()
With Sheets("Saisie")
    If Application.CountA(.[C4,C6,C8,C10,C14]) < 5 Then MsgBox "Les cellules Initiateur de l'action, Thématique, Sujet, Action à réaliser, Département concerné doivent être remplies.": Exit Sub
    If .[C14] = "Tous" Then
        Sheets("PA Général").Rows("11:11").Insert Shift:=xlDown
        Sheets("PA Général").Range("K10:K11").FillDown
        Sheets("PA Général").[D11] = .[C4].Value
        Sheets("PA Général").[A11] = .[C6].Value
        Sheets("PA Général").[B11] = .[C8].Value
        Sheets("PA Général").[E11] = .[C10].Value
        Sheets("PA Général").[F11] = .[C12].Value
        Sheets("PA Général").[G11] = .[C14].Value
        Sheets("PA Général").[H11] = .[C16].Value
        Sheets("PA Général").[I11] = .[C18].Value
        Sheets("PA Général").[P11] = .[C22].Value
        Sheets("PA Général").[N11] = .[C24].Value
    End If
End With
End Sub

@Phil69970
 

Discussions similaires

Réponses
3
Affichages
203