XL 2010 Remplacer un tableau par un autre dans plusieurs fichiers

olfal

XLDnaute Nouveau
Bonjour à tous et pardon d'avance si la question a déjà été posée. Après assez longue recherche, je n'ai pas trouvé mon bonheur.

Je dispose de plus de 50 fichiers de structure identique :
- un onglet "tableau" : société, compte, montants pour l'année N
- un onglet "résultat" avec une recherchev qui vient chercher dans l'onglet tableau tous les montants de d'une seule société (j'ai évidemment un fichier par société)

Je veux actualiser l'ensemble de mes fichier pour l'année N+1 en remplaçant le tableau avec les montant de l'année N par le tableau avec les montants de l'année N+1.

Je n'ai trouvé aucune macro qui remplace en masse une feuille ou l'ensemble des cellules de la feuille ou le tableau nommé de manière identique dans tous les fichiers.

Par ailleurs,
- je ne dois pas casser (ou je dois reconstituer) la fonction "recherchev" de l'onglet résultat
- je dispose d'un fichier dans lequel j'ai une feuille "liste des fichiers à modifier" et une autre feuille "tableau" avec le nouveau tableau N+1 qui doit remplacer l'ancien

Je souhaite donc disposer d'une macro qui va opérer le remplacement de toutes les valeurs de "tableau" N par celles de "tableau" N+1.

Je vous remercie par avance pour votre aide
 

olfal

XLDnaute Nouveau
Re : Remplacer un tableau par un autre dans plusieurs fichiers

Bonjour,

Je pensais avoir suffisamment détaillé ma demande. Mais ci-joint un fichier d'exemple. Dans la vraie vie, mon tableau contient plusieurs milliers de ligne, les critères sont beaucoup plus nombreux, et le nombre de sociétés et donc de fichiers individuels beaucoup plus important... d'où ma demande de macro.

A nouveau merci pour votre aide
 

Pièces jointes

  • Resultat Société 1.xlsx
    18.9 KB · Affichages: 31

olfal

XLDnaute Nouveau
Re : Remplacer un tableau par un autre dans plusieurs fichiers

Après de nombreuses recherches, je ne trouve rien de comparable. Beaucoup de posts concernent le contraire : copier/coller une plage de plusieurs fichiers de structure identique vers un seul. Je cherche a faire exactement le contraire : copier une plage vers plusieurs fichiers de structure identique.

A l'aide !
 

néné06

XLDnaute Accro
Re : Remplacer un tableau par un autre dans plusieurs fichiers

Bonjour M12,olfal et le forum,

les critères sont beaucoup plus nombreux

-Quels sont les critères !
noms des colonnes etc....

mon tableau contient plusieurs milliers de ligne

-Un nombre approximatif !

le nombre de sociétés et donc de fichiers individuels beaucoup plus important...

-Plus de détails !
Pourquoi faire un classeur par société et copier dans ce classeur la feuille "tableau" à chaque classeur ?

- je dispose d'un fichier dans lequel j'ai une feuille "liste des fichiers à modifier" et une autre feuille "tableau" avec le nouveau tableau N+1

-"liste des fichiers à modifier"?
Il serait bon de voir l'architecture complète de cette feuille!
les actions à effectuer dessus?

Le mieux serait de nous faire parvenir un fichier complet en colonnes, mais avec une vingtaine de lignes et pareil pour le fichier qui contient la feuille "liste des fichiers à modifier" et le nouveau tableau N+1 qui doit remplacer l'ancien.

Perso, d'après ce que j'ai compris, je ferais un seul fichier,sur lequel je chargerais en "tableau" la base de données ancienne dans une feuille, je chargerais en "tableau N1" la base de données nouvelle dans une autre feuille,je placerais une combobox qui me permettrait de choisir la société voulue, une feuille avec les résultats en fonction du choix de société.

En bref, tes explications sont insuffisantes pour comprendre l'analyse du programme.

à te relire

Bien cordialement

René
 

olfal

XLDnaute Nouveau
Re : Remplacer un tableau par un autre dans plusieurs fichiers

Bonjour néné06,

J'indiquais simplement qu'il y avait plus de critères et de fichiers pour expliquer mon besoin de macro. Pour ce que je cherche à faire, le fichier d'exemple que j'ai posé est le reflet exact de mon besoin. J'ai essayé d'être encore plus complet avec les 3 fichiers joints :

Je cherche une macro qui remplace le tableau des feuilles "tableau" des fichiers "Resultat Société 1.xlsx" et "Résultat Société 2.xlsx" par la le tableau de la feuille "tableau" du fichier "Tableau 2015.xlsx". Cette macro doit chercher les adresses des fichiers à modifier dans l'onglet "Sociétés" du fichier "Tableau 2015.xlsx".

L'ensemble de mon besoin est décrit, et tous les fichiers à traiter sont joints.

Dans l'espoir que cela clarifie la situation et vous aide à répondre.

Merci à nouveau
 

Pièces jointes

  • Resultat Société 1.xlsx
    18.9 KB · Affichages: 34
  • Resultat Société 2.xlsx
    18.9 KB · Affichages: 37
  • Tableau 2015.xlsx
    17.8 KB · Affichages: 27

olfal

XLDnaute Nouveau
Re : Remplacer un tableau par un autre dans plusieurs fichiers

Bonjour,

J'avoue être un peu déçu d'avoir reçu des recommandations sur la façon de poser ma question... mais aucune réponse après m'être conformé à vos demandes.

Un peu d'aide ?

Merci
 

thebenoit59

XLDnaute Accro
Re : Remplacer un tableau par un autre dans plusieurs fichiers

Bonjour olfal, M12 et néné06.

Etre déçu de ne pas obtenir une solution aussi rapidement que tu le souhaites ? N'oublie pas que nous faisons tous ça bénévolement, et nous ne sommes tenus à aucune obligation de résultats. Surtout que les remarques réalisées étaient pertinentes, car cela peut influer sur la méthode à utiliser ...

Je te propose par ailleurs une solution :
Code:
Sub Remplacement_Tableau()
Dim Tabl(), i$, f As Workbook
    Tabl = Range("Tableau")

With Sheets("Sociétés")
    i = 39
    Do While .Cells(i, "A").Value <> ""
        Set f = Workbooks.Open(.Cells(i, "A").Value)
        f.Sheets("Tableau").Range("Tableau") = Tabl
        f.Close True
    i = i + 1
    Loop
End With
End Sub

A utiliser dans un module du classeur Tableau 2015.
 

olfal

XLDnaute Nouveau
Re : Remplacer un tableau par un autre dans plusieurs fichiers

Bonjour thebenoit59 et merci pour ta réponse rapide.

Malheureusement, cette macro ne fonctionne pas car les tableaux à remplacer sont dans des fichiers séparés dont l'adresse figure dans le premier onglet du fichier "Tableau 2015.xlsx" : "C:\Resultat Société 1.xlsx" et "C:\Resultat Société 2.xlsx"

Il me semble que la macro est faite comme si les tableaux à remplacer étaient dans d'autres onglets d'un fichier unique.

Ma compétence VBA ne me permet pas du tout de corriger en conséquence... :-(

Auriez-vous le petit bout de code supplémentaire pour aller faire le remplacement dans les fichiers désignés ?

Merci beaucoup !
 

olfal

XLDnaute Nouveau
Re : Remplacer un tableau par un autre dans plusieurs fichiers

Re-bonjour thebenoit59,

tu as raison, c'était mon adresse de fichier qui était pas bonne. Ta macro fonctionne super bien ! Il reste un micro détail (pas primordial) : elle ajoute aussi dans mon fichier source (Tableau 2015) un nouvel onglet avec une copie du tableau. Je voudrais éviter ça si possible. As-tu la solution ?

Ensuite, une question pour apprendre quelque chose : je pensais qu'il fallait remplacer des cellules et pas le tableau complet pour pouvoir garder les liens vers les "somme.si" de l'onglet "Résultat". Or il me semble que tu remplaces bien tout le tableau, et malgré tout les liens sont préservés. Comment opères-tu se miracle ?

Merci beaucoup pour ta solution, et d'avance si tu as réponse à mon petit problème d'onglet.
 

thebenoit59

XLDnaute Accro
Re : Remplacer un tableau par un autre dans plusieurs fichiers

Il n'est pas normal qu'un nouvel onglet soit créé, surtout que je n'ai rien demandé de tel dans la procédure.
Le code fourni est-il lié avec un autre code ?
Je viens de tester, et ça n'ajoute aucun onglet supplémentaire.

Je remplace les valeurs du tableau, c'est pour cette raison que les formules ne sont pas affectées.
En premier lieu j'enregistre le Tableau originel dans une variable, et je le replace dans chaque Tableau des fichiers listés.

Tu peux envoyer ton fichier original si tu souhaites que je regarde ce problème de nouvel onglet.
Le code n'est pas optimisé pour vérifier si le fichier existe ou pas, imaginons dans la liste, un des liens est HS, le code plantera.
 

olfal

XLDnaute Nouveau
Re : Remplacer un tableau par un autre dans plusieurs fichiers

thebenoit59, merci pour ton aide et ta patience... je ne peux vraiment pas t'envoyer les fichiers originaux, qui font 12 Mega chacun avec des données de ma boite partout.

Je n'ai plus le bug concernant l'onglet supplémentaire. Je bloque encore sur un dernier point : je suis obligé de baptiser le dossier des fichiers à modifier "Sociétés", comme dans mon exemple, sinon ça buggue. Où et quoi dois-je renommer pour que cela fonctionne avec le nom du vrai dossier cible sur mon disque, sans avoir à le renommer "Sociétés". j'ai essayé dans la ligne :

With Sheets("Sociétés")

mais cela n'a pas fonctionné... Une indication à me donner ?

merci à nouveau
 

thebenoit59

XLDnaute Accro
Re : Remplacer un tableau par un autre dans plusieurs fichiers

Code:
With Sheets("Sociétés")

correspond à la feuille Sociétés de ton classeur Tableau 2015.
Je récupère le fichier à modifier directement avec l'adresse notée à partir de [A39].

Si dans ton fichier original ce n'est pas le cas, je ne peux pas le deviner et il faudra signaler comment tu souhaites définir le chemin d'accès des fichiers etc, en donnant un exemple concret correspondant à la réalité.
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 848
Membres
103 972
dernier inscrit
steeter