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 :

[VBA-E] [help]macro pour dupliquer une feuille (en valeur)


Sujet :

Macros et VBA Excel

  1. #21
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
       Cells.Copy
       Cells(1, 1).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False
        Application.CutCopyMode = False
        Range("A1").Select
    c'est ce morceau de code qui supprime les formules ...
    il copie toutes les cellules et colle les valeurs de celle-ci au même endroit...


  2. #22
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par minikisskool
    ah si, je l'ai remis dans un module à part et ça a l'air de marcher (sauf que ça bug à cause des cellules fusionnées à partir de la 2e fiche)
    il faut peu-être rajouter un recalcul du classeur avant l'appel de copyfeuille... afin de mettre toutes tes formules à jour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ...
      Calculate
      CopieFeuille 
    Next
    ...

  3. #23
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Si tu connais la plage de cellules à copier, c'est facile. Donne-la, on mettra un exemple.

  4. #24
    Candidat au Club
    Inscrit en
    Novembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 16
    Points : 2
    Points
    2
    Par défaut
    merci pour tout, ça marche super bien

    y'a encore qu'un seul truc à régler, c'est l'histoire de mon image (drapeau) qui est en lien avec une 3e feuille
    le pays qui s'affiche dans la fiche renvoie cette info à une feuille qui s'appelle "flags" qui elle-même renvoie l'image du pays correspondant à la feuille fiche

    mais lorsqu'il y a plusieurs fiches, c'est le même drapeau qui s'affiche dans toutes

    je pense qu'il faudrait également supprimer les liaisons à chaque collage pour éviter que l'image ne se remette à jour...

    sinon, pour la plage de cellules, c'est A4:N49 mais comme les lignes et les colonnes ont parfois un format spécial, je ne sais pas si ça le conserve si on ne copie qu'une plage de cellules...

    dernier point, que faut-il changer pour que ça copie dans le même classeur plutôt que sur un nouveau?

  5. #25
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par minikisskool
    merci pour tout, ça marche super bien

    y'a encore qu'un seul truc à régler, c'est l'histoire de mon image (drapeau) qui est en lien avec une 3e feuille
    le pays qui s'affiche dans la fiche renvoie cette info à une feuille qui s'appelle "flags" qui elle-même renvoie l'image du pays correspondant à la feuille fiche

    mais lorsqu'il y a plusieurs fiches, c'est le même drapeau qui s'affiche dans toutes

    je pense qu'il faudrait également supprimer les liaisons à chaque collage pour éviter que l'image ne se remette à jour...

    sinon, pour la plage de cellules, c'est A4:N49 mais comme les lignes et les colonnes ont parfois un format spécial, je ne sais pas si ça le conserve si on ne copie qu'une plage de cellules...

    dernier point, que faut-il changer pour que ça copie dans le même classeur plutôt que sur un nouveau?
    - non pour le drapeau je comprends pas tout ... dis nous en plus sur formule ...?

    - pour la plage ... bon pour moi c'est pas trop utiles vu que l'on copie la feuille compléete...

    - pour copier dans le même classeur ... ben initialise fd ... avant le premier appel à copie feuille ... (boucle for each...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Set Fd = ThisWorkbook
    for each....

  6. #26
    Candidat au Club
    Inscrit en
    Novembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 16
    Points : 2
    Points
    2
    Par défaut
    pour le drapeau, j'ai une feuille "flag" qui contient le nom de tous les pays en colonne B avec le drapeau (image) correspondant en colonne C, j'ai également sur cette feuille une fonction equiv() qui va chercher le pays indiqué sur "fiche" et qui renvoie le n° de ligne correspondant

    et sur ma feuille "fiche", j'ai collé une image drapeau quelconque que j'ai associé avec un nom, nom qui fait référence à une fonction décaler() qui prend en compte le résultat de la fonction equiv() pour afficher le drapeau correspondant au pays

    mais comme il n'y a qu'une fonction equiv et que l'image garde son nom, donc sa référence, à chaque copie, toutes les fiches se mettent à jour avec le dernier résultat et tout le monde a le même drapeau

    il faudrait donc supprimer la liaison à chaque copie ou alors trouver une autre bidouille pour que mon drapeau n'ait plus aucune référence et reste fixe

  7. #27
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par minikisskool
    pcorrespondant en colonne C, j'ai également sur cette feuille une fonction equiv() qui va chercher le pays indiqué sur "fiche" et qui renvoie le n° de ligne correspondant
    ma prmiére idée est : déplace cette fonction équiv dans ta fiche ...(quitte à la masquer à l'affichage en changeant sa couleur par exemple.. ...


    puis en relisant ton post j'ai toujours un probléme ... je sais pas faire ce que tu décris ? ' coller une image drapeau à laquelle j'associe un nom qui fait référence à la fonction décaler' ... pourrai tu SVP essayer d'être un peu plus précis ... sur la maniére dont tu crée ce lien.. :

  8. #28
    Candidat au Club
    Inscrit en
    Novembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 16
    Points : 2
    Points
    2
    Par défaut
    c'est un truc que j'avais trouvé jenesaisplusou

    excel n'est pas censé renvoyer d'image avec une formule mais il se trouve qu'avec cette bidouille, ça marche

    1- on colle dans une feuille une série d'images avec la taille exacte de la cellule qui la contient (en se servant de la touche Alt je crois lorsqu'on redimensionne l'image); dans mon cas, c'est une série de drapeaux

    2- on colle une image dans la feuille destination, image que l'on associe tout bêtement à un nom

    3- sur la référence du nom, on met une fonction décaler() et le tour est joué, l'image se met à jour automatiquement

    je crois que je vais essayer de mettre la fonction EQUIV() dans ma feuille "Fiche" mais vu que je n'ai qu'un seul nom de toute façon, je ne sais pas si ça va le faire...

  9. #29
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par minikisskool

    2- on colle une image dans la feuille destination, image que l'on associe tout bêtement à un nom

    3- sur la référence du nom, on met une fonction décaler() et le tour est joué, l'image se met à jour automatiquement
    je doit être un peu "bouché" ce matin ...

    2 - C'est quoi associer une image à un nom ?

    3 - C'est quoi que tu appelle référence du nom ?

  10. #30
    Candidat au Club
    Inscrit en
    Novembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 16
    Points : 2
    Points
    2
    Par défaut
    lol

    2- bin c'est juste utiliser la commande insertion/nom/définir après avoir sélectionné l'image

    3- et c'est la référence de ce nom

  11. #31
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    bon il te faut rajouter le code suivant aprés la copie de la feuille fiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ActiveSheet.Shapes("MonDrapeau").Cut
    ActiveSheet.Range("B11").Select
    ActiveSheet.PasteSpecial Link:=False
    la feuille active doit être la nouvelle fiche ,
    MonDrapeau est le nom donné à l'image..

    "B11" et la cellule dans laquelle l'image est placé ..

    le code copie l'image ( Couper ...) et la colle en B11 ce qui permet de perdre la référence à la formule initale ..

    Pour ce qui est de l'utilisation de la fonction DeCALER , j'ai trouvé ça :
    http://www.polykromy.com/html/poly_m...s_decaler.html

  12. #32
    Candidat au Club
    Inscrit en
    Novembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 16
    Points : 2
    Points
    2
    Par défaut
    ui, pour DECALER c'est exactement le site que j'avais trouvé à l'époque

    sinon, pour la macro, ça ne marche pas, mon image est flottante dans la feuille "fiche"...

Discussions similaires

  1. [Toutes versions] Macro pour ajouter une feuille excel avec un nom précis
    Par luc-ratif dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/05/2014, 09h53
  2. [jxl] probleme pour dupliquer une feuille
    Par Noctis dans le forum Documents
    Réponses: 0
    Dernier message: 20/01/2014, 11h40
  3. [XL-2002] Macro pour copier une feuille dans un autre classeur
    Par JBeaunez dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/02/2012, 21h46
  4. [XL-2007] Macro pour copier une feuille
    Par francky62000 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/12/2011, 16h36
  5. [E-97] macro pour déprotéger une feuille (fichier partagé)
    Par mart159 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/10/2008, 08h09

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