IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Simplification et sans les .select ? [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Indépendant Informatique
    Inscrit en
    Septembre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Réunion

    Informations professionnelles :
    Activité : Indépendant Informatique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 12
    Par défaut Simplification et sans les .select ?
    Bonjour.

    J'ai une macro qui fonctionne très bien, mais j'aimerais la simplifier et faire en sorte qu'elle s'exécute sans séléctionner les feuilles, car ca me fait un vrai strombinoscope à l'écran à chaque fois !

    Je vous la met ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Sub Nouvel_Enregistrement()
     
     
    For i = 1 To Worksheets.Count - 3 '(J'ai quatorze feuilles, mais la macro ne doit s'éxécuter que sur les 11 premières.
     
        With Worksheets(i)
     
        Worksheets(i).Select
            [A3000].End(xlUp).Select    '(selection de la dernière ligne)
            ActiveCell.Rows("1:2").EntireRow.Select '(Sélection des deux dernières lignes)
            Selection.AutoFill Destination:=ActiveCell.Rows("1:4").EntireRow, Type:= _
                xlFillDefault  ' (Copie incrémenter des deux dernière ligne sur les deux suivantes.
            [B3000].End(xlUp).Select '(Selection de la dernière ligne pour la prochaine fois)
     
    End With
     
    Next i
     
     
    End Sub
    En vous remerciant par avance.

    Sybiou

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Si le code te convient en l'état, et que tu veux simplement ne pas voir le travail effectué sur les feuilles, tu peux ajouter :

    - au tout début de ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = False
    - à la fin de ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = True
    Ainsi tu bloques l'affichage de ton classeur durant la macro.

    Ca n'enlèvera pas les sélections certes, mais ça va éviter les crises d'épilepsies

  3. #3
    Membre averti
    Homme Profil pro
    Indépendant Informatique
    Inscrit en
    Septembre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Réunion

    Informations professionnelles :
    Activité : Indépendant Informatique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 12
    Par défaut
    Merci Bcp, c'est déja plus confortable.

    Reste à voir pour la simplification, je ne mets pas pour autant résolu.

    bonne soirée à toi.

    Sybiou

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Nouvel_Enregistrement()
    Dim LastLig As Long
    Dim i As Integer
     
    Application.ScreenUpdating = False
    For i = 1 To Worksheets.Count - 3                  '(J'ai quatorze feuilles, mais la macro ne doit s'éxécuter que sur les 11 premières.
        With Worksheets(i)
            LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
            .Rows(LastLig).Resize(2).AutoFill .Rows(LastLig).Resize(4)
        End With
    Next i
    End Sub

  5. #5
    Membre averti
    Homme Profil pro
    Indépendant Informatique
    Inscrit en
    Septembre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Réunion

    Informations professionnelles :
    Activité : Indépendant Informatique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 12
    Par défaut
    Un grand merci, M'sieur !

    Je mets en résolu.

    bonne soirée à tous.

    Sybiou

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [LINQ to SQL] "select" sans les données ajoutées
    Par Isidore.76 dans le forum Linq
    Réponses: 5
    Dernier message: 21/12/2009, 15h03
  2. SELECT sans les accents.
    Par macben dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/11/2005, 19h56
  3. Réponses: 1
    Dernier message: 08/11/2004, 16h04
  4. tri a bulle sans les doublons
    Par comme de bien entendu dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 10/03/2003, 16h29
  5. Tracer une ligne droite sans les interruptions
    Par Stef784ever dans le forum x86 16-bits
    Réponses: 4
    Dernier message: 25/11/2002, 01h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo