Copier les données de plusieurs onglets dans une base de données

Driff042

XLDnaute Nouveau
Bonjour à tous,

Ce code est très intéressant, je vous remercie de l'avoir écrit, je l'ai d'ailleurs utilisé et adapté à un besoin récent.
Depuis j'ai un nouveau besoin, j'ai donc personnalisé la macro et la macro me renvoie inlassablement les informations de mon premier besoin, j'ai beau tout reprendre depuis le début, rien n'y fait ! pouvez-vous m'aider ?

En résumé:
"General" de "classeur1.xlm" me renvoie les données de "classeur1.xlm"
"General de "classeur2.xlm" me renvoie les données de "classeur1.xlm"

même en changeant le nom de la macro !

upload_2018-11-8_12-14-34.png
 

Driff042

XLDnaute Nouveau
Bonjour.
Ça prend la feuille "General" du classeur actif, si vous ne mettez pas devant une expression Workbook qui en désigne un autre.
Bonjour et merci de votre réponse,
J'ai bien insérée une feuille "General" dans le classeur actif, que j'ai même tenté de renommer en modifiant la macro... Rien n'y fait.
Faut-il activer le calcul automatique dans les options ?
 

Dranreb

XLDnaute Barbatruc
Non. Il faut juste veillez à prendre la feuille du classeur qu'il faut, si ce n'est pas le classeur actif.
Dim Rng As Range
Set Rng = Workbooks("Classeur2.xlsm").Worksheets("General").Cells
Et puis ensuite vous ne travaillez qu'avec Rng, comme ça vous ne serez pas obligé de répéter chaque fois tout ça.
 

Driff042

XLDnaute Nouveau
Non. Il faut juste veillez à prendre la feuille du classeur qu'il faut, si ce n'est pas le classeur actif.
Dim Rng As Range
Set Rng = Workbooks("Classeur2.xlsm").Worksheets("General").Cells
Et puis ensuite vous ne travaillez qu'avec Rng, comme ça vous ne serez pas obligé de répéter chaque fois tout ça.
ce que j'ai besoin de faire, c'est bien de reprendre les données du classeur actif dans la feuille "General" de ce même classeur, sauf que la macro me renvoie les données de mon premier classeur.
merci pour votre aide.
 

Dranreb

XLDnaute Barbatruc
Tous ce que vous ne précisez pas avec une expression Workbook devant se réfère au classeur actif. Donc aussi Sheets.
Pour reprendre les données d'un autre classeur :
Dim WSh As Worksheet
For Each Wsh In Workbooks("Classeur2.xlsm").Worksheets

Next Wsh
Si tout doit se passer seulement dans le classeur actif, ce que vous décrivez est impossible. Je ne vous crois pas.
Joignez enfin votre classeur.

Ou mettez, pour vous en convaincre, en tête de votre macro :
VB:
MsgBox "Classeur actif :  " & ActiveWorkbook.Name & vbLF & "Classeur portant la macro :  " & ThisWorkbook.Name, vbInformation, "Test"
 
Dernière édition:

Driff042

XLDnaute Nouveau
Tous ce que vous ne précisez pas avec une expression Workbook devant se réfère au classeur actif. Donc aussi Sheets.
Pour reprendre les données d'un autre classeur :
Dim WSh As Worksheet
For Each Wsh In Workbooks("Classeur2.xlsm").Worksheets

Next Wsh
Si tout doit se passer seulement dans le classeur actif, ce que vous décrivez est impossible. Je ne vous crois pas.
Joignez enfin votre classeur.

Ou mettez, pour vous en convaincre, en tête de votre macro :
VB:
MsgBox "Classeur actif :  " & ActiveWorkbook.Name & vbLF & "Classeur portant la macro :  " & ThisWorkbook.Name, vbInformation, "Test"
J'vous l'jure Mr !;)
je vous ai extrait l'onglet "General" avec 4 feuilles à compiler et là, je vous le donne en mille, ça marche... :mad:
quand je creuse un peu plus je retrouve mes données mélangées à mon premier fichier...o_O
je peux vous joindre mon fichier en MP ?
 

Driff042

XLDnaute Nouveau
Faites en plutôt une version anonymisée et joignez la ici.
Bon je viens de comprendre à force de chercher...o_Oo_Oo_O
le fichier contient des onglets masqués, (ceux qui me laisse croire un lien avec mon "classeur 1.xlm")
du coup la macro va chercher toutes les données y compris celles des onglets qui sont masqués.:oops:
Encore merci pour votre patience, je vais donc pouvoir avancer.
Bien cordialement,
 

Discussions similaires

Statistiques des forums

Discussions
311 724
Messages
2 081 936
Membres
101 844
dernier inscrit
pktla