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

Excel Discussion :

repéter une macro copie d'une feuille d'un autre classeur suivant chemin d'accès dans une liste parametre [XL-2010]


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut repéter une macro copie d'une feuille d'un autre classeur suivant chemin d'accès dans une liste parametre
    Bonjour

    j'ai une macro que je souhaite améliorer afin quelle puisse servir a d'autre personne
    cette macro copie une feuille excel dans un fichier fermé et la colle dans le fichier qui a la macro
    j'aimerai que celle ci le fasse sur plusieurs fichiers différent de facon automatique
    a partir d'un chemin d'acces et liste des fichiers qui serait préalablements definit dans un feuille Paramètres

    Voici la macro

    Sub Bouton10_Cliquer()
    Dim wkA As Workbook, wkB As Workbook
    Dim chemin As String, fichier As String

    'classeur A qui contient la macro
    Set wkA = ThisWorkbook

    'chemin ou se trouve le fichier B
    chemin = parametre D11

    'nom du fichier B
    fichier = Paramètres D20;D40


    'ouvre le fichier B
    Workbooks.Open chemin & fichier

    'met en variable le classeur B
    Set wkB = ActiveWorkbook

    'copie la feuille "feuil1" du classeur A avant la feuille 1 dans le classeur B
    wkB.Sheets("Synthèse").Copy before:=wkA.Sheets(1)

    MsgBox ("La feuille est maintenant copiée") 'message pour dire que la feuille est copiée.

    wkB.Close True 'ferme et enregistre le classeur B
    End Sub


    si l'un de vous peut m'aider se serait cool parce que la je bloque

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Pourrais-tu expliquer un peu plus ?
    Tu bloques à faire une boucle ?

    Ici, je ne comprends pas cette ligne
    'nom du fichier B
    fichier = Paramètres D20;D40
    PS: quand tu mets du code sélectionne-le et clique le bouton "#" pour le formater.

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    A la légitime question de Parmi, on pourrait ajouter la ligne précédente qui semble pour le moins bizarre :
    'chemin ou se trouve le fichier B
    chemin = parametre D11
    Est-ce que tu as déjà fait tourner ta macro ?

  4. #4
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    deja merci de vous interresser à mon problème

    je vais essayer d'etre un peu plus clair dans ma demande
    voici la macro d'origine

    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
    Sub Bouton10_Cliquer()
    Dim wkA As Workbook, wkB As Workbook
    Dim chemin As String, fichier As String
     
    'classeur A qui contient la macro
    Set wkA = ThisWorkbook
     
    'chemin ou se trouve le fichier B
    chemin = "C:\mes documents\"
     
    'nom du fichier B
    fichier = "Ficher 1.xlsm"
     
    'ouvre le fichier B
    Workbooks.Open chemin & fichier
     
    'met en variable le classeur B
    Set wkB = ActiveWorkbook
     
    'copie la feuille "feuil1" du classeur A avant la feuille 1 dans le classeur B
    wkB.Sheets("Synthèse").Copy before:=wkA.Sheets(1)
     
    MsgBox ("La feuille est maintenant copiée") 'message pour dire que la feuille est copiée.
     
    wkB.Close True 'ferme et enregistre le classeur B
    End Sub
    le but serait
    au lieu d'avoir le chemin d'acces dans la macro je souhaite le mettre dans une cellule de la feuille "Paramètres"
    et cette macro devant se faire sur plusieurs fichiers entre 20 et 30 tous dans le meme dossier
    avoir de la meme facon la liste des fichiers a traiter dans la feuille "Paramètres"
    ce fichier devant servir a plusieurs personnes chacun ferai son paramétrage assez facilement sans toucher à la macro
    la macro servant à copier la feuille "synthése" de chaque fichier et les regrouper dans un meme fichier synthése globale
    j'espere etre un peu plus clair

  5. #5
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Il suffit que tu fasses un For Each ou un For to qui scrute les cellules dans lesquelles se trouvent tes noms de chemin et de fichier et mette ces valeurs dans tes variables "chemin" et "fichier".

  6. #6
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    merci de ta réponse
    par contre je suis débutant en macro et je ne connais pas cette fonction

    si tu peux me donner queques conseil
    j'ai commencé par essayer de mettre le chemin d'acces et le fichier dans une cellule
    mais sa ne marche pas

  7. #7
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Dans l'éditeur VBA, tu cliques sur le petit point réinterrogation bleu qui est à droite du menu pour ouvrir l'aide.
    Dans la case de recherche tu tapes "For".
    Dans la liste qui t'es proposée, tu pourras choisir successivement "For...Next, instruction" et "For Each...Next, instruction" qui te donneront les explications, les syntaxes et les exemples que tu recherches.

    Tu auras de nombreux autres exemples en sélectionnant "Utilisation d'instructions For Each...Next" et "Utilisation d'instructions For...Next".

    Citation Envoyé par yann7630 Voir le message
    j'ai commencé par essayer de mettre le chemin d'acces et le fichier dans une cellule mais sa ne marche pas
    "Ca ne marche pas", c'est un peu vague comme description de symptôme.
    Je subodore aussi que ce n'est pas mettre le chemin dans le fichier qui a posé problème mais de récupérer cette donnée pour l'utiliser dans ta macro. Donc si tu ne dis pas non plus de quelle façon tu l'as récupérée et utilisée, je ne vois pas comment il peut être possible de t'aider.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    je vais aller voir dans l'aide pour la fonction for
    et essayer de faire quelque chose

    pour récupérer le chemin dacces voila ce que j'ai essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    'chemin ou se trouve le fichier B
    chemin = Sheets("Paramètres").Cells(4, 11).Value
    ' "C:\mes documents\"
     
    'nom du fichier B
    fichier = Sheets("Paramètres").Cells(4, 20).Value
    sachant que dans la cellule pour le chemin j'ai C:\Documents\2015\

    et dans la cellule fichier fichier1.xlsm

    j'ai un message d'erreur qui me dis que introuvable vérifier chemin d'acces
    mais le chemin est bon

  9. #9
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par yann7630 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    'chemin ou se trouve le fichier B
    chemin = Sheets("Paramètres").Cells(4, 11).Value
    ' "C:\mes documents\"
     
    'nom du fichier B
    fichier = Sheets("Paramètres").Cells(4, 20).Value
    sachant que dans la cellule pour le chemin j'ai C:\Documents\2015\
    et dans la cellule fichier fichier1.xlsm

    j'ai un message d'erreur qui me dis que introuvable vérifier chemin d'acces mais le chemin est bon
    Etant donné qu'il est peu probable que ce soit les lignes de code que tu cites qui aient générer cette erreur, pourrais-tu ajouter la ligne concernée ?

  10. #10
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    'ouvre le fichier B
    Workbooks.Open chemin & fichier
    Voila la ligne concerné

    par contre pour la fonction for each j'ai commencé a regardé mais je suis perdu

  11. #11
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par yann7630 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'ouvre le fichier B
    Workbooks.Open chemin & fichier
    Essaye de mettre juste avant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print chemin & fichier
    Pour vérifier si le nom et le chemin sont correct.

    Est-ce que ce ne serait pas un problème d'extension ?
    Si dans ton explorer Windows tu as indiqué que tu masquais les extensions et que tu as mis l'extension dans ton nom de fichier (ou l'inverse), Excel ne va pas comprendre.

    Place en début de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print ThisWorkbook.Name
    pour voir si ton excel met des extensions aux noms de fichiers.

    Bref, essaye de chercher un peu par toi-même avant de faire des demandes au quart d'heure.

    par contre pour la fonction for each j'ai commencé a regardé mais je suis perdu
    "je suis perdu", c'est un peu vague comme description de problème.
    Tu fais comme tout le monde : tu commences par te faire la main sur des cas simples pour comprendre comment ça marche avant de l'adapter à ton application.
    Tu peux aussi essayer avec "For to" qui est plus simple d'usage.

  12. #12
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Citation Envoyé par yann7630 Voir le message
    pour récupérer le chemin dacces voila ce que j'ai essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    'chemin ou se trouve le fichier B
    chemin = Sheets("Paramètres").Cells(4, 11).Value
    ' "C:\mes documents\"
     
    'nom du fichier B
    fichier = Sheets("Paramètres").Cells(4, 20).Value
    sachant que dans la cellule pour le chemin j'ai C:\Documents\2015\

    et dans la cellule fichier fichier1.xlsm

    j'ai un message d'erreur qui me dis que introuvable vérifier chemin d'acces
    mais le chemin est bon
    Cells(4, 11) = Range("K4")
    Est-ce bien cette cellule que tu veux lire ou plutôt Range("D11") ?

  13. #13
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    je vous remercie pour votre aide et toute ces précisions

    pour ce qui est des extensions je n'ai pas compris comment le verifié et le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print ThisWorkbook.Name
    ne me donne rien de plus
    ou je ne l'ai pas bien ecrit ou placé

    j'ai repris la formule avec range ("D11")

    mais j'ai toujours le meme résultats fichier introuvable

  14. #14
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par yann7630 Voir le message
    ne me donne rien de plus
    As-tu ouvert la fenêtre d'exécution pour faire afficher les messages ?
    Menu affichage > Fenêtre exécution.

  15. #15
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    oui
    le chemin d'accès est bien celui ou se trouve le fichier avec l'extension .xlsm
    est dans l'exploreur les fichiers aparaissent avec les extensions

  16. #16
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    le problème peut il venir d'un chemin d'acces trop long?

  17. #17
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Si c'est seulement pour ouvrir un fichier, disons, ça ne devrait pas être un problème.
    Par contre, il peut s'agir une faute d'orthographe dans le chemin, un espace en trop, un caractère interdit,...

  18. #18
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    bonjour

    j'ai changé le chemin d'accès pour qu'il soit plus cout et la macro fonctionne

    je vais chercher voir si cela peut etre résolu

    pourriez vous m'aider pour transposer ce code dans une fonction for each next
    je ne comprend pas commend celle ci fonctionne

    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
    Sub Bouton10_Cliquer()
    Dim wkA As Workbook, wkB As Workbook
    Dim chemin As String, fichier As String
     
    'classeur A qui contient la macro
    Set wkA = ThisWorkbook
     
    'chemin ou se trouve le fichier B
    chemin = Sheets("Paramètres").Range("D11").Value
    'nom du fichier B
    fichier = Sheets("Paramètres").Cells(20, 4).Value
     
    'ouvre le fichier B
    Workbooks.Open chemin & fichier
     
    'met en variable le classeur B
    Set wkB = ActiveWorkbook
     
    'copie la feuille "feuil1" du classeur A avant la feuille 1 dans le classeur B
    wkB.Sheets("Synthèse").Copy before:=wkA.Sheets(1)
     
    MsgBox ("La feuille est maintenant copiée") 'message pour dire que la feuille est copiée.
     
    wkB.Close True 'ferme et enregistre le classeur B
    End Sub

  19. #19
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Qu'est-ce que tu veux faire avec le For Each ?
    Lire plusieurs fichiers ?
    Si oui, dans le même répertoire ?
    Est-ce que la feuille à copier a toujours le même nom ? Est-ce que tu colles dans la même feuille sous les données existantes ?
    Est-ce que tous les utilisateurs vont copier toujours les mêmes feuilles des mêmes fichiers ou ça diffère selon les utilisateurs ?
    Finalement, où sont situés les noms de répertoires et fichiers (cellules, plage,...) ?

    Pas mal de questions comme tu peux voir.
    Et la réponse sera différente selon les cas...

  20. #20
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    déja merci de prendre un peu de temps pour m'aider

    Effectivement beaucoup de question, je vais tenter d'y répondre avec le plus de précisions possible
    je veux copier une feuille "synthèse" (toujours le meme nom) situé dans plusieurs fichiers différents environ 30 situé dans le mçme repertoire
    et coller ces feuilles dans un autre fichier qui regroupe toutes les synthèses
    le nom des fichiers et chemin d'accès étant différent d'un utilisateur à un autre, j'avais penser mettre dans une feuille paramétre
    - le chemin d'accès
    - le nom des fichiers à importer

    cela afin que chaque personne puisse paramétrer de facon simple

    en gros
    feuille paramètre
    en D5 le chemin
    D10 : D50 la liste des fichiers A1, A2, A3,etc

    la macro copie la feuille "synthèseA1" et la colle sur le fichier qui contient la macro
    copie la feuille "synthèseA2" et la colle sur le fichier qui contient la macro
    etc

    j'espere avoir été plus clair

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Chemin de partage dans une macro VBA
    Par Aquellito dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/08/2011, 10h20
  2. Réponses: 3
    Dernier message: 05/03/2009, 03h44
  3. Chemin d'accès dans une requête INTO
    Par CyberMen dans le forum VBA Access
    Réponses: 1
    Dernier message: 16/10/2008, 22h10
  4. Chemin d'accès dans une dll
    Par The_link dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 15/05/2008, 19h14
  5. [VBA-E] Nommer chemin d'accès dans une feuille de calcul.
    Par BRUNO71 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/03/2007, 13h30

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