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 :

Selection Feuille après création


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 31
    Par défaut Selection Feuille après création
    Bonjour à tous,

    J'ai un petit soucis. J'ai réalisé une macro qui me permet de créer automatiquement des feuilles selon le nombre de ligne d'une liste et les renomment.

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Sub ajout_feuilles()
    Application.ScreenUpdating = False
     
    'Création de l'onglet
     
    Dim nom, c
     
    For Each c In Range("liste")
    nom = c.Offset(, -1).Value & " - " & c.Value & " " & Left(c.Offset(, 1), 1) & "."
     
    Sheets.Add Count:=1, after:=Worksheets(Worksheets.Count)
     
    ActiveSheet.Name = nom
     
    'Mise en forme et Remplissage
     
    Sheets("Modèle").Visible = True
        Cells.Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Help ME!").Select    <- le problème
        Cells.Select
        Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False
    Sheets("Modèle").Visible = False
     
    Next c
     
    End Sub
    Cependant, j'aimerais remplir chaque nouvelle feuille avec un copier coller du contenu d'une feuille cacher.
    Le problème: Apres effectué la copie des ma zone je n'arrive pas à re-sélectionner l'onglet pour effectuer le coller.

    En vous remerciant par avance pour votre aide!

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Salut,
    tu peux simplifier ton code

    en remplaçant ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sheets("Modèle").Visible = True
        Cells.Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Help ME!").Select    <- le problème
        Cells.Select
        Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False
    Sheets("Modèle").Visible = False
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Sheets("Modèle").Visible = True
    Worksheets("Modèle").Cells.Copy _
        Destination:=Worksheets(nom).Cells
    Sheets("Modèle").Visible = False
    perso, j'essaierais de sortir la modif de .visible hors de la boucle pour ne le faire qu'1 fois.

  3. #3
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour,
    Tu connais le nom de la feuille puisque tu lui en donnes un juste après sa crétion, tu peux donc avoir la feuille par le code suivant :
    Sinon, dans un cas où tu n'aurais pas connu le nom de la feuille : tu peux utiliser une variable nvlFeuille que tu définis juste après la création de ton nouvel onglet. Puis tu travailles avec cette variable.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim nvlFeuille As Worksheet
    Sheets.Add Count:=1, after:=Worksheets(Worksheets.Count)
    Set nvlFeuille = ActiveSheet
      '....
    nvlFeuille.Range("A1").PasteSpecial
    Quelque commentaires a propos de ton code :
    - N'utilise pas Select et Activate, mais précise sur quelles feuilles/plage de cellules tu travailles. N'écris pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sheets("Help ME!").Select    <- le problème
    Cells.Select
    Selection.PasteSpecial

    Mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Help ME!").Cells.PasteSpecial
    - A quoi te sert les lignes suivantes?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sheets("Modèle").Visible = True
    '...
    Sheets("Modèle").Visible = False
    Tu peux garder ta feuille "invisible" pendant toute la procédure. Et même si tu veux utiliser ceci, je pense qu'il serait plus judicieux de placer les lignes avant et après la boucle for, car tu refais exactement la même opération à chaque iteration de la boucle.

    - Je pense que tu n'as pas besoin d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.CutCopyMode = False
    Ou mets le juste à la fin du code, juste avant le End Sub.

    - Déclare tes variables jusqu'au bout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim nom As String, c As Range

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 31
    Par défaut
    Merci beaucoup pour vos réponse!

    Je vois qu'il me reste encore beaucoup à apprendre ^^'

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour riaolle,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim nvlFeuille As Workshee
    Set nvlFeuille = Sheets.Add( Count:=1, after:=Worksheets(Worksheets.Count))
    Set nvlFeuille = ActiveSheet
      '.... nvlFeuille.Range("A1").PasteSpecial

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour !

    Citation Envoyé par maitrebanjo Voir le message
    j'aimerais remplir chaque nouvelle feuille avec un copier coller du contenu d'une feuille cachée.
    Le problème: Après effectué la copie des ma zone je n'arrive pas à re-sélectionner l'onglet pour effectuer le coller
    Un bon code ne sélectionne jamais pour effectuer une simple copie !  Consulter déjà l'aide VBA de Range.Copy

    Et pour copier directement dans plusieurs feuilles en une unique instruction, voir la méthode FillAcrossSheets !

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Stockholm, London, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub ajout_feuilles()
        Application.ScreenUpdating = False
        Dim nom, c
        Sheets("Modèle").Visible = True
        For Each c In Sheets("nom du sheet").Range("liste")' renseigner le nom du sheet i!!!!!! je suppose que c'est le sheets modele
           nom = c.Offset(, -1).Value & " - " & c.Value & " " & Left(c.Offset(, 1), 1) & "."
            Set NewSheet = Sheets.Add(Count:=1, after:=Worksheets(Worksheets.Count))
            NewSheet.Name = nom
            Sheets("Modèle").Cells.Copy Destination:=NewSheet.Cells(1, 1)
            'normalement copy destination respecte le format et la mise en forme
        Next c
        Sheets("Modèle").Visible = False
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

Discussions similaires

  1. [XL-2003] erreur aprés création de la 11ème feuille
    Par tremens dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/10/2010, 15h56
  2. [VBA-E]: Suppression de feuilles après création
    Par michel2662 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 25/04/2007, 16h36
  3. Réponses: 5
    Dernier message: 20/11/2005, 11h15
  4. Réponses: 3
    Dernier message: 18/11/2005, 13h37
  5. [VBA-E] Sélection feuilles sous excel
    Par Mystic eyes dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/02/2004, 13h27

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