Copie onglet excel avec VBA

Résolu/Fermé
ItzFolloWerS Messages postés 22 Date d'inscription mercredi 4 novembre 2020 Statut Membre Dernière intervention 24 novembre 2023 - 21 avril 2023 à 09:11
Le Pingou Messages postés 12191 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 novembre 2024 - 25 avril 2023 à 12:01

Bonjour,

Je viens vers vous car je rencontre un problème avec la copie d'un onglet Excel via VBA.

Je voudrais faire la copie d'un onglet nommé "Exploitations" présent sur un fichier Excel que j'ouvre systématiquement en 1er, pour le mettre à la fin d'un autre fichier Excel dit "Actif".

Le problème vient du fait que je ne peux pas mettre le nom d'un fichier précis pour la copie, puisque le fichier de destination n'aura jamais le même nom.

Je ne sais pas si je suis très clair, mais en gros je veux copier mon onglet d'un fichier ouvert en 1er à un ActivWorkbook.

J'ai essayé plein de méthode différente (que je ne comprends pas vraiment) comme vous pourrez voir ci-dessous :

    'Workbooks(1).Sheets(1)("exploitations").Copy After:=Workbooks.ActiveSheets(26)
    'Sheets(1)("exploitations").Select
    'Worksheets(1)("exploitations").Copy After:=ActiveWorkbooks.Sheets(26)
    'Sheets(1)("exploitations").Copy After:=Workbooks.Sheets(26)
    'Sheets(1)("Feuil1").Copy After:=Workbooks("Exemple.xlsm").Sheets(Workbooks("Exemple.xlsm").Sheets.Count)

Pourriez-vous m'éclairer s'il vous plaît ?

A voir également:

26 réponses

Le Pingou Messages postés 12191 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 novembre 2024 1 450
25 avril 2023 à 10:27

Bonjour,

Question complémentaire. depuis quelle classeur vous déclencher la macro...!


0
Le Pingou Messages postés 12191 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 novembre 2024 1 450
25 avril 2023 à 11:03

Bonjour,

Je suppose que ma question précédente est juste , donc essayer ceci : https://cjoint.com/c/MDzjbrJsKfZ


0
ItzFolloWerS Messages postés 22 Date d'inscription mercredi 4 novembre 2020 Statut Membre Dernière intervention 24 novembre 2023
25 avril 2023 à 11:15

Bonjour,

J'ai modifié la macro comme ci-dessous:

            nbsh = Workbooks(2).Sheets.Count

            
            Workbooks(1).Sheets("Exploitations").Copy After:=Workbooks(2).Sheets(nbsh)

Avec ça, j'ai pu avoir le résultat que je voulais.

0
Le Pingou Messages postés 12191 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 novembre 2024 1 450
Modifié le 25 avril 2023 à 11:37

Bonjour,

Merci pour les réponses aux poste 21 et 22.

Concernant cette modification, ce n'est pas certain que cela fonctionne correctement si vous avez plus de 2 classeurs ouverts a vous de voir ! Qui sont les 

Workbooks(1) et Workbooks(2)

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ItzFolloWerS Messages postés 22 Date d'inscription mercredi 4 novembre 2020 Statut Membre Dernière intervention 24 novembre 2023
25 avril 2023 à 11:52

Bonjour,

Justement après vérifications, il y a déjà une macro plus haut qui s'occupe de vérifier s'il y a d'autre classeur d'ouvert.

Normalement, je ne devrais pas avoir de blocage !

Je vous remercie pour votre aide.

0
Le Pingou Messages postés 12191 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 novembre 2024 1 450
25 avril 2023 à 12:01

Bonjour,

Merci, en marge il est toujours préférable d'avoir des codes précis, attention les recherche si une erreur se produit et pas toujours visible du premier coup.


0