Simplification d'une macro

Bonjour

Est-il possible de simplifier ce "codage"(on me parle de sélections multiples!??)

Fichier joint

Nonno

10essai.xlsx (11.06 Ko)

Bonjour

pour simplifier la macro, il faudrait plutôt le fichier complet anonymisé

mais si ton problème est juste le suivant

Est-il possible de "Simplifier" cette macro qui du fait qu'elle navigue entre Shetts "notes" et "Feuil3" plusieurs fois, créé des "sauts désagréables" lors de son éxécution.

ajoute alors

Sub machin()
Application.DisplayAlerts = False
' ta macro
Application.DisplayAlerts = Ture
End Sub

Merci

Ci joint le fichier,

9essai.xlsm (190.31 Ko)

c'est la Macro3 qui serait à simplifier

si ton problème est juste le suivant

Est-il possible de "Simplifier" cette macro qui du fait qu'elle navigue entre Shetts "notes" et "Feuil3" plusieurs fois, créé des "sauts désagréables" lors de son éxécution.

ajoute alors

Sub machin()
Application.DisplayAlerts = False
' ta macro
Application.DisplayAlerts = Ture
End Sub

désolé, je me suis trompé dans ma solution

Sub Macro3()
Application.ScreenUpdating = False
' ton code
Application.ScreenUpdating = False
End Sub

cela supprime les sauts de feuilles

mais sur la macro elle-même je n'ai rien fait (la structure des informations est trop spécifique)

Bonjour à tous,

J'ai modifié pour éliminer les .Select ...

Ce n'est pas testé ...

Il y aura sûrement d'autres améliorations à faire ...

ric

22nonno-essai.xlsm (179.56 Ko)

Pourquoi faire simple quand on peut faire compliqué ?

Je crois que je n'aurais pas dû perdre mon temps sur la 1ère question.

Sub Macro1()

    Dim ws1 As Worksheet, ws2 As Worksheet

    Set ws1 = Sheets("notes")
    Set ws2 = Sheets("Feuil3")

    With ws2
        ws1.Range("D11:W42").Copy Destination:=.Range("B2")
        ws1.Range("D56:W87").Copy Destination:=.Range("B36")
        ws1.Range("Y11:AO42").Copy Destination:=.Range("B70")
        ws1.Range("Y56:AO87").Copy Destination:=.Range("B103")
        ws1.Range("AV11:AY42").Copy Destination:=.Range("B138")
        ws1.Range("AT11:AU42").Copy Destination:=.Range("W138")
        ws1.Range("AV56:AY87").Copy Destination:=.Range("B172")
        ws1.Range("AT56:AU87").Copy Destination:=.Range("W172")
        ws1.Range("AQ11:AS42").Copy Destination:=.Range("AO138")
        ws1.Range("AQ56:AS87").Copy Destination:=.Range("AO172")
    End With
End Sub

Je crois que je n'aurais pas dû perdre mon temps sur la 1ère question.

Bravo Optimix

je n'ai pas cherché très loin au vu de la structure très spécifique des données, car je ne crois pas en la pérennité de ce type de fichier, j'aurais plutôt aimé paramétrer et utiliser excel comme BdD

Merci Steelson, mais j'ai eu le tort d'utiliser le 1er fichier et de ne pas regarder ce que les autres avaient proposé pour ne pas m'en inspirer. A quelques détails près Ric avait déjà donné la même solution 45 minutes plus tôt. Ca m'apprendra.

Merci Steelson, mais j'ai eu le tort d'utiliser le 1er fichier et de ne pas regarder ce que les autres avaient proposé pour ne pas m'en inspirer. A quelques détails près Ric avait déjà donné la même solution 45 minutes plus tôt. Ca m'apprendra.

oui et non,

moi j'apprécie beaucoup quand le code est retranscris dans le texte de la réponse comme tu as fait, cela permet de voir d'un seul coup d'œil sans avoir à ouvrir un fichier avec macro

Super

Merci à tous

Cordialement

Nonno

Rechercher des sujets similaires à "simplification macro"