|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : lier des fichiers excel [ Divers / Débutants ] (boubou_7711)
Informations & options pour cette discussion
|
samedi 16 juin 2007 à 22:09:22 |
lier des fichiers excel

boubou_7711
|
bonjour à tous, je suis débutant. J'ai 2 fichiers sous excel et je voudrais récupérer les données du premier fichier vers le 2e fichier Mon fichier 1 : classeur1.xls Mon fichier 2 : classeur 2.xls Dans le classeur 2 : je voudrais récupérer les données du classeur 1 des cellules A1,B1,C1, etc. MAIS je veux créer pour chaque ligne du classeur 1 une nouvelle feuille dans mon classeur 2 en gardant la même mise en page que celle du classeur 2 feuille1. Par avance, merci pour votre aide
|
|
|
|
dimanche 17 juin 2007 à 16:07:08 |
Re : lier des fichiers excel

MPi
|
Pour conserver la mise en page, le plus simple est de faire une copie de la feuille originale. Utilise l'enregistreur de macro, clique droit sur l'onglet dont tu veux copier la mise en page, sélectionne "Déplacer ou copier", coche "Créer une copie", choisis le fichier dans lequel tu veux effectuer la copie et la position par rapport aux feuilles existantes et clique OK. Une nouvelle feuille (Copie conforme) aura donc été ajoutée.
Bien sûr la copie inclura les données. Comme tu ne veux que conserver les entêtes, il reste à éliminer les lignes superflues.
Autre méthode, Tu crées une procédure de mise en page qui inclut la police, les bordures, marges, ... Et tu appelles cette procédure à chaque fois que tu crées une feuille et y copie les données d'entêtes.
Avant d'aller plus avant, tu devrais déterminer la méthode que tu veux utiliser et nous revenir, avec éventuellement un bout de code...
MPi
|
|
|
|
dimanche 17 juin 2007 à 18:29:10 |
Re : lier des fichiers excel

boubou_7711
|
Merci MPi pour ton aide. Ce n'est pas tout à fait ce que je veux mais néanmoins j'ai appris qqch de plus.
voilà le code que j'ai :
Sub Macro1() ' Windows("Classeur1").Activate Windows("Classeur2").Activate Sheets("Feuil1").Select Range("B1").Select ActiveCell.FormulaR1C1 = "=[Classeur1]Feuil1!R2C1" Range("B2").Select ActiveCell.FormulaR1C1 = "=[Classeur1]Feuil1!R2C2" Range("D1").Select ActiveCell.FormulaR1C1 = "=[Classeur1]Feuil1!R2C3" Sheets("Feuil2").Select ActiveCell.FormulaR1C1 = "=[Classeur1]Feuil1!R3C1" Range("B2").Select ActiveCell.FormulaR1C1 = "=[Classeur1]Feuil1!R3C2" Range("D1").Select ActiveCell.FormulaR1C1 = "=[Classeur1]Feuil1!R3C3" Range("D2").Select End Sub
Je voudrais automatiser pour toutes les lignes de mon classeur 1 cette opération car je retrouve toujours les même données Par exemple : je retrouve les données du classeur 1 A2,B2,C2 dans mon classeur2 fichier 1 ainsi que les données du classeur 2 A3,B3,C3 dans mon classeur2 fichier 2. Ce deuxième fichier doit avoir la même mise en page que mon fichier 1 classeur 2 et ainsi de suite. Je pense que je dois faire une boucle, d'après ce que j'ai pu lire.... Je fais mes premiers pas. C'est pas si simple que ça.
|
|
|
|
dimanche 17 juin 2007 à 20:16:14 |
Re : lier des fichiers excel

MPi
|
Avant d'aller plus loin, es-tu certain des cellules que tu sélectionnes ? Tu sélectionnes B1, B2 et D1 de Feuil1 Puis ensuite, B2, D1 et D2 de Feuil2
Ce ne serait pas plutôt B1, B2 et B3 de chaque feuille du classeur 2 ? ou encore A2, B2 et C2 ???
1- Si les cellules dans lesquelles tu veux copier ne suivent aucun ordre précis (ou identique), tu ne pourras pas utiliser de boucles. 2- Est-ce important de mettre des formules plutôt que des valeurs ? 3- Est-ce important de faire ça en VBA ? si oui, c'est seulement pour apprendre ?
MPi
|
|
|
|
dimanche 17 juin 2007 à 20:56:32 |
Re : lier des fichiers excel

boubou_7711
|
Merci, effectivement il y a une erreur! Dans la feuil2 j'aurais du selectionner B1 B2 ET D1 comme dans la feuil1
J'ai 3 colonnes A B C, je veux pour chaque ligne des 3 colonnes A,B,C les recopier dans mon 2e classeur avec une ligne correspondant à une feuille de mon 2e classeur.
Ex : Classeur 1 : A B C 1 2 bonjour 3 4 au revoir
Classeur 2 feuil1 je voudrais avoir B1 : 1 D1 bonjour B2: 2
Classeur 2 feuil 2 je voudrais avoir en gardant la même mise en page que dans ma feuil 1 B1: 3 D1: au revoir B2: 4
Je ne sais pas vraiment comment je dois m'y prendre car : mon classeur 1 comporte plus de 100 lignes il bouge régulièrement et je voudrais donc qu'il se mette à jour par la suite dans le classeur 2 en fonction des changements du classeur 1
Merci encore MPi pour tes réponses, et oui je veux bien apprendre, car je n'y connais pas gd chose :s
|
|
|
|
dimanche 17 juin 2007 à 22:38:55 |
Re : lier des fichiers excel

MPi
|
Pour faire au plus simple, disons que tu as un classeur qui se nomme Classeur2 et qui contient les feuilles "Feuil1" à "Feuil3" (par défaut...) On peut donc se fier aux numéros de feuilles pour copier les données et créer de nouvelles feuilles en conservant le même genre de nom... "Feuil" + un index
Pour que tout fonctionne bien, il est préférable d'ouvrir ce Classeur2 au préalable. On pourrait procéder autrement, mais pour un début, tu en auras assez de ceci, je pense...
Copie ce code dans la partie de code de ta feuille où les données se trouvent
Option Explicit
Sub Copie() ' Procédure de départ Dim I As Long, nbLignes As Long Dim CurSheet As Worksheet, DestBook As Workbook, Fenetre As Window Dim Trouvé As Boolean Set CurSheet = ActiveSheet 'feuille de départ (current sheet) 'Vérifier si le Classeur2 est déjà ouvert For Each Fenetre In Windows If Fenetre.Caption = "Classeur2" Then Trouvé = True Fenetre.Activate Set DestBook = ActiveWorkbook 'classeur de destination Exit For End If Next ' Si le classeur n'est pas ouvert, quitter la procédure If Not Trouvé Then MsgBox "Ouvrir le Classeur2" Exit Sub End If 'retourner dans le classeur de départ et compter le nombre de lignes CurSheet.Activate nbLignes = Cells(Rows.Count, "A").End(xlUp).Row 'Boucler chaque ligne For I = 1 To nbLignes ' 1 ou 2 selon qu'il y a des entêtes... 'si la feuille n'existe pas, la créer If Not FeuilleExist(DestBook, I) Then CreerFeuille DestBook, I 'Copier les données DestBook.Sheets("Feuil" & I).Range("B1") = Range("A" & I) DestBook.Sheets("Feuil" & I).Range("B2") = Range("B" & I) DestBook.Sheets("Feuil" & I).Range("D1") = Range("C" & I) Next MsgBox "Terminé" End Sub
Function FeuilleExist(Classeur As Workbook, Numéro As Long) As Boolean Dim WkSh As Worksheet 'Boucler toutes les feuilles pour voir si la feuille à inscrire existe For Each WkSh In Classeur.Worksheets If WkSh.Name = "Feuil" & Numéro Then FeuilleExist = True Exit For End If Next End Function
Sub CreerFeuille(Classeur As Workbook, Numéro As Long) 'Ajouter une feuille et la renommer si elle n'existait pas Classeur.Worksheets.Add Classeur.ActiveSheet.Name = "Feuil" & Numéro End Sub
MPi
|
|
|
|
lundi 18 juin 2007 à 22:17:18 |
Re : lier des fichiers excel

boubou_7711
|
Merci MPi pour ton code. J'ai testé et hélàs je n'y suis arrivé. A chaque fois, j'ai une pop-up qui me dit ouvrir le classeur 2 mais celui-ci est déjà ouvert. Qu'est-ce que j'ai mal fait, ou aurais-je du faire à la place?
Par avance, merci
|
|
|
|
lundi 18 juin 2007 à 23:58:07 |
Re : lier des fichiers excel

MPi
|
Peut-être est-ce à cause de la version sous laquelle tu travauilles (?)
Change le bout de code au début de la procédure pour 'Vérifier si le Classeur2 est déjà ouvert For Each Fenetre In Windows Msgbox Fenetre.Caption ' pour vérifier comment ta version affiche les Caption If Fenetre.Caption = "Classeur2" Then
Si le message affiche "Classeur2.xls" il faudrait alors ajouter cette extension, ce qui donnerait For Each Fenetre In Windows If Fenetre.Caption = "Classeur2.xls" Then
Si tu n'y arrives pas, dis-moi exactement ce qu'affiche le MsgBox que je t'ai demandé d'ajouter.
MPi
|
|
|
|
mardi 19 juin 2007 à 18:54:23 |
Re : lier des fichiers excel

boubou_7711
|
Encore merci pour les indications.
J'ai modifié le code et j'ai toujours dans les MsgBox le message suivant classeur2.xls puis classeur1.xls puis ouvrir le classeur2 alors qu'il est ouvert:-(
|
|
|
|
mardi 19 juin 2007 à 21:52:07 |
Re : lier des fichiers excel

boubou_7711
|
ah non mea culpa! ca fonctionne MPi :-)
Est-ce que tu sais comment faire pour faire en sorte que lorsque les onglets se copie on garde la même mise en page de l'ensemble de l'onglet (par exemple :une bordure, image, ou peu importe vu que je voudrais garder la même mise en page)
Est ce que tu penses que dans cette partie :
Sub CreerFeuille(Classeur As Workbook, Numéro As Long) 'Ajouter une feuille et la renommer si elle n'existait pas Classeur.Worksheets.Add Classeur.ActiveSheet.Name = "Feuil" & Numéro End Sub
on puisse renommer les onglets autre que "Feuil"& Numéro et de prendre en considération pour chaque onglet une case précise du classeur 1. Par exemple : pour l'onglet 1 : la valeur de la case A2 pour l'onglet 2 : la valeur de la case A3
j'ai composé ça : On Error Resume Next For I = 1 To n Sheets(sht.Name).Name = Sheets(sht.Name).[A1] Next Il ne me renomme pas les feuilles du classeur 2 mais la feuille du classeur 1 et ne me prend en considération que la case A1( normal c'est ce que je lui demande... mais je sais pas faire pour lui dire de renommer l'ensemble de Ai to An). J'ai encore du faire une bêtise, pour changer..
Par avance, merci
|
|
|
Cette discussion est classé dans : fichier, excel, fichiers, lier, classeur
Répondre à ce message
Sujets en rapport avec ce message
Lier des fichiers excel et des feuilles excel [ par Mesacraft ]
Bonjour, tjs dans la construction de mes macros je viens de rencontre un prob pas vraiment sympa.Dans ma première feuille j'historise des données sur
Ouvrir un classeur excel sous vb, pour ensuite être affiché dans une texte box [ par JONJON91 ]
J'aimerai ouvrir un classeur excel à partir d'une boite de dialogue "ouvir", car pour l'instant je dois rentrer le chemin d'acces dans mon code. J'ai
drag&drop d'un fichier sur un classeur excel [ par cesdejong ]
bonjour,j'ai un classeur excel et une macro qui demandent un fichier d'entrée. Je souhaiterais pouvoir faire un drag&drop du fichier d'entrée directem
compteur sur plusieurs fichier et plusieurs onglets [ par funkay91 ]
Et oui encore moiJe cherche des commandes qui pourront me permettre de lancé une recherche. Sur plusieurs fichiers et sous plusieurs onglet de excel.
macro sur un dossier de fichier excel [ par funkay91 ]
je souhaite appliquer ma macro sur l'ensemble des fichiers .xls de mon dossier C'est dire j'ai un fichier exel dans lequel j'aurai ma macro qui une fo
Urgent !!! Mon classeur ne s'ouvre plus après avoir éxécuté mon projet ! [ par IUP1 ]
Voila j'ai un projet et un fichier excel déja créé dans mon dossier Au cours de mon projet je récupère et envoie des données sur ce fichier excel. Je
VBA Excel - Recherche de fichiers [ par econs ]
Bonjour à toutes et tous. Je possède un dossier contenant un certain nombre de fichiers : - Un fichier Visio (*.vsd) - Un fichier Excel
!! URGENT !! Copie de fichier texte à la suite dans excel [ par xpmich ]
Bonjour,Je programme sous Microsof visual Basic.Je voudrais grâce à un macro ouvrir dans l'ordre des fichiers textes (de même forme) et les copier à l
Vieux fichiers Excel [ par ptigars67 ]
Bonjour,Je suis ennuyé avec un fichier qui avait été réalisé avec excel95 et qui ne fonctionne plus avec les versions de excel actuel.Je ne connais ab
deverouiller protection classeur excel [ par mhborot ]
bonjour à tous,tout d'abord, merci à tous ceux qui répondent à nos questions, c'est super de votre part.en ce qui me concerne, j'ai un souci avec un f
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|