Copy avec répertoire à taille variable

Résolu
Philippe-thuin Messages postés 27 Date d'inscription samedi 30 novembre 2013 Statut Membre Dernière intervention 10 décembre 2013 - 3 déc. 2013 à 13:06
Philippe-thuin Messages postés 27 Date d'inscription samedi 30 novembre 2013 Statut Membre Dernière intervention 10 décembre 2013 - 6 déc. 2013 à 19:32
Bonjour,

Je dois me déplacer de classeur Gab1 en classeur Gab2, etc..., sans en connaître le nombre, et inscrire les copies G6, I33, etc...dans le classeur Synth (tableau, "B12:E12"), ligne après ligne.
Dois-je utiliser une fonction du genre "UserRange.Rows.Count" ??
Désolé de t'embêter avec si peu, mais je suis vraiment perdu!
Encore merci de ton aide.

10 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 3/12/2013 à 13:24
Bonjour,
Il me semble que :
1) - cette question est (semble-t-il) : comment ouvrir, un derrière l'autre, plusieurs classeurs nommés "Gab" & n (où n est un nombre) présents dans un dossiers. Au fait : avec quelle extension (tu n'en parles pas) ?

Réponds d'abord à cette remarque. Ta réponse va en effet conditionner une modification du titre que tu as donné à la présente discussion ...

2) - et de les traiter un après l'autre pour tes copies (et cet aspect-là a déjà été traité dans ton autre discussion ! A toi de savoir ensuite "assembler" convenablement).
3) "et inscrire les copies G6, I33, etc...dans le classeur Synth (tableau, "B12:E12"), ligne après ligne" est à la fois incompréhensible et irréalisable, sauf à y inscrire sur des feuilles différentes dont tu ne parles pas.
4) UserRange est un objet totalement inconnu de VBA/Excel. Que serait-il, dans ton esprit, donc ?


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
Philippe-thuin Messages postés 27 Date d'inscription samedi 30 novembre 2013 Statut Membre Dernière intervention 10 décembre 2013
3 déc. 2013 à 13:55
Précisions:
Les classeurs "Gab" & n sont en .xlsx
Le classeur "Synth" est en .xlsm.
Voilà ce que j'essaye de faire:
Dans 1 répertoire M:\Test j'ai une succession de classeur "Gab(n).xlsx" tous de même structure dont la quantité sera variable.
il faudrait récuperer les valeurs des cellules G6, H33,I34 et J35 de chaque fichier Gab(n).xlsx et les coller dans le classeur Synth.xlsm à partir de "B12" pour Gab1, "B13" pour Gab2, et ainsi de suite pour tous les classeurs Gab(n).xlsx.
Je me suis trompé, ce n'est pas UserRange, mais UsedRange.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
3 déc. 2013 à 15:37
Vu ta réponse/commentaire ...
Et maintyenant : que ne sais-tu faire ?

1) - Parcourir en boucle le dossier ?
2) - ouvrir et traiter chaque classeur ainsi "retenu" ?
3) - savoir à quelle ligne du classeur "Synth.xlsm" tu fais tes ajouts ?

Car pour le reste (lire dans un classeur , copier et coller dans u n autre ordre sur l'autre) , la réponse r'a déjà été données dans une autre discussion.

Comme tu le sais (lecture du règlementt), on ne traite pas ici un ensemble de difficultés, mais une difficulté spécifique et parfaitement isolée.
Laquelle choisi(tu donc de traiter dans cette discussion parmi les 3 dont il s'agit ?
0
Philippe-thuin Messages postés 27 Date d'inscription samedi 30 novembre 2013 Statut Membre Dernière intervention 10 décembre 2013
3 déc. 2013 à 15:46
c'est sympa de me suivre.Merci.
Précédemment, j'essayai d'expliquer ce que je cherche à faire.
Pour l'instant j'ai des difficultés avec ton n°2.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 3/12/2013 à 18:40
" c'est sympa de me suivre.Merci.
Précédemment, j'essayai d'expliquer ce que je cherche à faire.
Pour l'instant j'ai des difficultés avec ton n°2.

"
Essaye s'il te plait de répondre en utilisant le bouton "Répondre au sujet" et non en commentant tes propres messages, car on ne s'y retrouve plus !
Nous n'allons donc que traiter le point 2 (ce qui veut dire que tu sais résoudre le point 1, qui est le parcours en boucle des fichiers qui t'intéresse dans ton dossier)
Le problème est alors simple :
Pour chaque fichier trouvé dans cette boucle et à traiter :
- tu l'ouvres avec Workbooks.Open ouvre ton aide VBA sur ce mot. Et lis la rubrique relative à cette méthode.
- tu le traites dans la foulée (comme je te l'ai montré dans ton autre discussion)
- tu le fermes


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
Philippe-thuin Messages postés 27 Date d'inscription samedi 30 novembre 2013 Statut Membre Dernière intervention 10 décembre 2013
6 déc. 2013 à 14:02
ma boucle a bien l'air de fonctionner et les infos s'écrivent ligne après ligne, cependant, ce sont toujours celles du premier fichier et je n'arrive pas à lire les infos du deuxième, troisième, ect...!!
Quelqu'un aurait-il une solution?
Merci.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
6 déc. 2013 à 14:37
Montre le code que tu as écrit
0
Philippe-thuin Messages postés 27 Date d'inscription samedi 30 novembre 2013 Statut Membre Dernière intervention 10 décembre 2013
6 déc. 2013 à 15:54
Merci de ton aide.
Voici le code:

Sub EssaiSynth()
ChDir "M:\MARC\Facture-Gab\Fact-Synth\"
DossierFactures = Dir("M:\MARC\Facture-Gab\Fact-Synth\*.xlsx")
'ouverture dossier facture
Workbooks.Open "M:\MARC\Facture-Gab\Fact-Synth\" & DossierFactures
'Début boucle
Dim j As Integer
j = 12
Do While Len(DossierFactures) > 0

'traitement data
Dim plage As Range, desti As Range, i As Integer
Set desti = Workbooks("Synth-Test.xlsm").Worksheets("Feuil1").Range("B" & j)
Set plage = Range("G6, H33,I34, J35")
For i = 1 To plage.Areas.Count
desti.Offset(0, i - 1).Value = plage.Areas(i).Value
Next
DossierFactures = Dir
j = j + 1
Loop

End Sub
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 6/12/2013 à 17:51
Ben !!! C'est une plaisanterie ?
Tu n'ouvres qu'un seul classeur (le tout premier trouvé), puisque ta ligne :
Workbooks.Open "M:\MARC\Facture-Gab\Fact-Synth\" & DossierFactures 
est écrite avant la boucle de parcours des fichiers de ton dossier !
C'est chaque fichier trouvé dans ta boucle, que tu dois ouvrir par WorkBooks.Open et traiter !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
Philippe-thuin Messages postés 27 Date d'inscription samedi 30 novembre 2013 Statut Membre Dernière intervention 10 décembre 2013
6 déc. 2013 à 19:32
Merci.
je suis désolé de la question.....! Mais c'est la chose que je ne voyais pas. le reste me semblais correct.
Comme quoi, un oeil neuf!!!!!

en tout cas encore merci.
0
Rejoignez-nous