Copie de feuille excel

  • Initiateur de la discussion Nicolas Voleau
  • Date de début
N

Nicolas Voleau

Guest
Bonjour,

Je m'explique : je dois créer une application excel qui a pour but d'ouvrir 5 dfichier excel différent et de mettres les différentes données dans une autre feuille excel. Seulement voila je ne sais pas le faire.

-Je récupére les différents fichiers excel, ensuite dois-je les ouvrir ?
Ensuite je vais prendre par exemple la donnée de la feuille 1 (la case a1) et la copié dans la feuille 5.....

J'espere que c'est compréhensible et que vous pourrez m'aider .......

Merci d'avance
 
J

JF

Guest
Bonjour,

Une manière de faire assez simple si les données sont toujours au même endroit sur tes feuilles. Ouvres la feuille dans laquelle tu veux avoir le résultat de tes 5 fichiers, ensuite crée toi une macro et fait ce que tu veux dans ton application pour obtenir le résultat voulu. C'est à dire ouvrir tes fichiers et copier ce que tu as besoin. A la fin enregistre ta macro et le tour est pratiquement joué. Alors tu n'as qu'à exécuter ta macro pour faire une mise à jour.

N.B. tes fichiers doivent toujours être au même endroit et avoir toujours le même nom.

J'espère que cela peut-être utile
 
N

Nicolas Voleau

Guest
Merci pour la réponse mais ce n'est pas aussi simple.
En effet, la feuille 1 représente les Postes (avec plusieurs données) les autres feuilles sont de taille diverses. Il y a par exemple un tableau avec tout les candidat ayant répondu à un poste.

Il faut donc que je prenne le poste du premier tableau, ensuite il va falloir que je parse le second tableau et que je prenne tout les candidat du deuxième tableau et que je mette tout sa dans mon dernier tableau.

Ce que je veux savoir c'est donc :
- comment ouvrir les différentes tableaux
- Comment dois je faire pour avoir toujours une référence sur ce tableau

et une question subsidiaires : puis utilisé un template de tableaux et si oui comment le multiplié sur une même feuille....

Merci
 
@

@+Thierry

Guest
Salut Nicolas, JF, le Forum

Ton problème peut-être surmontable, mais pour celà il faut tout de même avec plus d'information que ce que tu nous expliques.

Comme te l'a dit JF, l'enregistreur de Macro peut déjà pas mal t'avancer, mais à ce stade il est impossible de t'aider d'avantage sans connaitre :


1) La structure des 5 fichiers (Emplacement/Nombre de Feuilles/Nom des Feuilles/Dimension des base de données,Etc)

2) La Structure des Tableaux...Est elle toujours la même sur les 5 classeurs... Ces tableaus se trouvent-ils dans la même réference de feuille (nom d'onglet, ou position de feuille "Index")

3) Sur le fichier "Cible", celui qui recevra les données, que veux-tu au juste ? que les données se liste à la suite, ou bien c'est à nouveau une feuille structurée ou certaines cellules précises devront recevoir des condensés d'information émanants des 5 classeurs sources...

Enfin tout ceci pour te dire que ce genre de demande est pratiquement impossible à résoudre par une solution "clef en main" au travers d'un forum. Tu auras pas mal d'adaptations à mettre au point et ne connaissant pas tes aptitudes en programmation, il est très difficile d'avancer.

Voici une méthode pour ouvrir et copier des données provenant de trois différents classeurs... Structurés identiquement !

Cette méthode implique que les trois classeurs "Source" soient placés dans un seul et même répertoire "C:\Mes Documents\Test XLD\" (changer le code comme nécessaire), que tous les trois classeurs "Source" aient 4 colonnes (A:D) qui contiennent les données à reporter en Classeur Cible, que ces données soient sur le premier index de feuille (premier onglet à partir de la gauche = Sheets(1))... Et donc, toutes les lignes de A à D seront reportées à la fin de l'execution du code, ligne par ligne à la suite, dans la Sheets(1) du classeur "Cible"...

Voici un exemple de code à recopier dans un module standard du classeur "Cible"

Option Explicit

Sub OuvrirReportFichiers()
Dim WBBase As Workbook
Dim WB1 As Workbook, WB2 As Workbook, WB3 As Workbook
Dim Chemin As String
Dim Lbase As Integer, Lsource As Integer, X As Integer

Chemin = "C:\Mes Documents\Test XLD\"

Set WBBase = ThisWorkbook

With Workbooks
.Open Chemin & "Classeur1.xls"
.Open Chemin & "Classeur2.xls"
.Open Chemin & "Classeur3.xls"
End With

Set WB1 = Workbooks("Classeur1.xls")
Set WB2 = Workbooks("Classeur2.xls")
Set WB3 = Workbooks("Classeur3.xls")

Lbase = WBBase.Sheets(1).Range("A65536").End(xlUp).Row + 1
Lsource = WB1.Sheets(1).Range("A65536").End(xlUp).Row

For X = 1 To Lsource
WBBase.Sheets(1).Range("A" & Lbase & ":D" & Lbase) = _
WB1.Sheets(1).Range("A" & X & ":D" & X).Value
Lbase = Lbase + 1
Next X

Lsource = WB2.Sheets(1).Range("A65536").End(xlUp).Row
For X = 1 To Lsource
WBBase.Sheets(1).Range("A" & Lbase & ":D" & Lbase) = _
WB2.Sheets(1).Range("A" & X & ":D" & X).Value
Lbase = Lbase + 1
Next X

Lsource = WB3.Sheets(1).Range("A65536").End(xlUp).Row
For X = 1 To Lsource
WBBase.Sheets(1).Range("A" & Lbase & ":D" & Lbase) = _
WB3.Sheets(1).Range("A" & X & ":D" & X).Value
Lbase = Lbase + 1
Next X

WB1.Close 0
WB2.Close 0
WB3.Close 0

End Sub


Voilà Nicolas pour une première approche, qui ne fera probablement pas ton affaire, mais qui aura au moins l'avantage de te montrer comment il est important de connaitre parfaitement la structure des fichiers sur lesquels on doit travailler... Tu noteras aussi qu'il est primordial que les fichiers aient une certaine homogénéité.

Bonne Journée
@+Thierry
 

Discussions similaires

Réponses
3
Affichages
158

Statistiques des forums

Discussions
313 091
Messages
2 095 190
Membres
106 212
dernier inscrit
reltih