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 :

Copier une nouvelle feuille avant (before) "Variable"


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 63

    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Par défaut Copier une nouvelle feuille avant (before) "Variable"
    Bonjour,
    Sur le premier onglet du classeur dans la colonne A j'ai une liste de noms
    ...
    LEGOANVIC_MARIE-FRANCE
    LEMARQUIS_NATHALIE
    LEMIEN_STEEVE
    LEMOAL_EVELYNE
    LEPERS_SYLVIE
    ...
    a chaque nom correspond 1 onglet qui porte le meme nom

    a l'aide d'une macro je voudrais inserer une feuille "LEMIEN_STEEVE" avant l'onglet "LEMOAL_EVELYNE"

    Le code enregistré me donne ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sheets("0-Matrice_AMENDE").Copy Before:=Sheets(46)
        Sheets("0-Matrice_AMENDE (2)").Select
        Windows("VRP  DONNEES.xlsm").Activate
        Windows("VRP   AMENDE.xlsm").Activate
        Sheets("0-Matrice_AMENDE (2)").Select
        Sheets("0-Matrice_AMENDE (2)").Name = "LEMIEN_STEEVE"
    Comment faire pour récupérer "=sheets(46)" comme une variable 46 etant la position de l'onglet "LEMOAL_EVELYNE"

    Merci pour votre aide

  2. #2
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut
    Je ne comprend pas trop ce que tu veux faire...

    Mais si tu veux ajouter un onglet avant un autre, il te faut récuperer l'Index de l'onglet qui sera précédé de l'onglet à ajouter.

    Exemple :
    Feuil 1, Feuil2, Feuil3

    On veux ajouter Feuil4 avant Feuil 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub Insertion()
    'Récuperer l'Index de la feuil2 que l'on stock dans une variable "IndexFeuil" de type Intege
    Dim IndexFeuil As Integer
    IndexFeuil = Sheets("NOM DE TA FEUIL").Index 'Te donne le N° D'index !
    'Ensuite, il te faut inserer ta feuil en utilisant IndexFeuil
    Sheets("NOM DE TA FEUIL").Copy Before:=Sheets(IndexFeuil)
    End Sub

    Pour adapter à ton exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    a l'aide d'une macro je voudrais inserer une feuille "LEMIEN_STEEVE" avant l'onglet "LEMOAL_EVELYNE"
    Sub Inserer ()
    Dim IndexLEMOAL As Integer
     
    IndexLEMOAL = Sheets("0-Matrice_AMENDE").Index 'Te donne le N° D'index !
     
       Sheets("0-Matrice_AMENDE").Copy Before:=Sheets(IndexLEMOAL)
        Sheets("0-Matrice_AMENDE (2)").Select
        Sheets("0-Matrice_AMENDE (2)").Name = "LEMIEN_STEEVE"
    End sub

    Voila j'éspère t'avoir aidé !

    Sinon reformule ton éxplication ! (c'est vrai que c'est pas toujours facile de décrire ce que l'on veut faire)

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Tu n'es pas obligé de passer par l'index, tu peux directement passer le nom
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    worksheets.add before:=worksheets("LEMOAL_EVELYNE")
    activesheet.name="LEMIEN_STEEVE"
    Mais tu veux ajouter un onglet, ou tu veux déplacer un onglet existant?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 63

    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Par défaut
    Merci,

    C'est presque cela que je voulais

    sheet(46) correspond l'onglet "LEMOAL_EVELYNE)
    mais si j'ai déjà insérer d'autre onglet, sheet(46) peut devenir (48) ou (54)
    je voudrais respecter l'ordre alphabétique des onglet en les inserant.
    dans le code que tu m'as donné indexfeuil ="46"
    lorsque je'exécute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("0-Matrice_AMENDE").Copy Before:=Sheets(IndexFeuil)
    indexfeuil attend 1 chiffre mais pas entre ()

    Merci

    Merci
    je veux ajouter 1 nouvel onglet...

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    C'est pour cela que tu ne dois pas utiliser l'index, mais bien le nom de l'onglet...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 63

    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Par défaut sheet (46)
    Merci

    le code donné par Pierre FAUCAUNNIER fonctionne à merveille.

    Je ne pensais pas que cela aurait été si simple (quand on sait, cela semble simple)

    Merci à tous

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

Discussions similaires

  1. [XL-2010] Filtrer un tableau + copier coller dans une nouvelle feuille.
    Par Vich79 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/06/2013, 09h47
  2. Copier les données de plusieurs colonnes dans une nouvelle feuille
    Par lolonico1974 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/07/2010, 08h51
  3. Copier les valeurs d'une feuille dans une nouvelle feuille en VBA
    Par muska78 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/06/2008, 11h44

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