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 :

Créer une macro pour plusieurs fichiers excel


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Créer une macro pour plusieurs fichiers excel
    Bonjour à tous,

    Je suis en train de réaliser une macro complexe pour moi, donc j'ai besoin d'une aide.
    Je m'explique :
    D'un côté, j'ai créé sur un fichier excel, sur feuille 1 appelée nouvelle facture, j'ai intégré un bouton macro avec une cellule vierge à côte, où j'entre manuellement le numéro du fichier "facture_d_acompte_n°X.xls" que je souhaite faire apparaitre suite à une série de collage.
    Et de l'autre j'ai créé plusieurs fichiers appelé facture_d_acompte_n°1.xls, facture_d_acompte_n°2.xls,etc... et sur chaque fichier en feuille 1 apparait un tableau.

    Pour le moment ma macro fonctionne mais sans prendre compte du numéro et grâce à l'enregistrement de la facture_d_acompte_n°1 seulement.

    Ce que je voudrais faire : c'est pouvoir faire apparaitre la facture d'acompte
    n° que j'aurai choisi grâce à la cellule à côté du bouton macro et tout cela doit se faire lorsque je clique sur le bouton macro?????

    Voici la macro créée pour le moment, qu'en pensez vous?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Facturedacomptenum_nouvellefacture()
    'copie les données de la facture d'acompte N° sur nouvelle facture
    Workbooks.Open Filename:="F:\(........\Facture\Sauvegarde\Facture_d_acompte_n°1.xls"
    Windows("Facture_d_acompte_n°1.xls").Activate
    Sheets("Feuil1").Select
    Range("B30:I44").Copy
    Windows("Facture entreprise.xls").Activate
    Sheets("Nouvelle facture").Select
    Range("A27:H41").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    End Sub
    Il y a t'il une solution à mon problème?
    Merci d'avance.:

  2. #2
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    Salut et bienvenu
    il suffit de remplacer "1" dans ta chaine de texte par le contenu du textbox, en faisant un truc comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.Open Filename:="F:\(........\Facture\Sauvegarde\Facture_d_acompte_n°" & textbox1.text & ".xls"


    Je n'ai pas le nom du textbox donc g mis au pif, par contre il serait surement utile de contrôler que le contenu correspond bien a une valeur numérique ou encore mieux remplacer ton textbox par une liste déroulante contenant les numéros possibles a utiliser.
    Dans un cas comme dans l'autre tu trouveras des info dans la FAQ VBA du site

    Un commentaire rapide sur le code, je ne sais pas quel sera sa longueur au final mais il serait a mon avis judicieux de déclarer des variable WorkBook et de leur attribuer les 2 fichier que tu utilises, ça évitera d'avoir a taper des noms de fichiers a rallonge a chaque fois, ce qui te permettra aussi d'abandonner les ".Activate" et compagnie

    En gros ca donnerait un truc comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim Fichier1 As WorkBook, Fichier2 As WorkBook 'remplaces fichier1 fichier2 par des noms plus explicite afin de les retrouver facilement dans ton code.
     
    Set Fichier1 = Workbooks.Open Filename:="F:\(........\Facture\Sauvegarde\Facture_d_acompte_n°" & textbox1.text & ".xls"
     
    'Par la suite pas besoin d'activer le fichier
     
    Fichier1.Sheets("Feuil1").Range("A1:E6").copy Fichier2.Sheets("Feuil2").Range("A4")
    Je n'ai pas testé le code mais la phylosophie a utiliser dans le code est la

    A++
    Qwaz

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour le tuyau....
    La ligne de commande est bien mais, je ne veux pas mettre une textbox, il faut que se soit une cellule. Dans cette cellule, il y aura des chiffres de 1 à l'infinie!!

    As tu une autre idée??
    Merci.

  4. #4
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    Salut
    Un petit effort de compréhension serait pas mal? non?
    Il te suffit de remplacer textBox.text par Fichier2.Range("D28").value, en supposant que ta valeur qui va de 1 a l'infini soit en D28 du fichier2 par exemple.
    A++
    Qwaz

Discussions similaires

  1. Réponses: 6
    Dernier message: 02/08/2017, 16h55
  2. Réponses: 1
    Dernier message: 11/02/2011, 14h14
  3. Réponses: 1
    Dernier message: 08/10/2008, 15h30
  4. Réponses: 8
    Dernier message: 09/01/2007, 16h30
  5. [VBA-E]une macro unique pour plusieurs fichiers excel
    Par fanchic29 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/04/2006, 16h20

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