copier cellules classeur vers 1 classeur

K

kciop

Guest
je n arrive pas a copier les valeur que je veux de plusieur classeur type dans un classeur confere piece jointe.

si quelqu un pouvais m aider parce que la je n y arrive vraiment pas.
et je commence a desseperer

merci d avance
 

Pièces jointes

  • code.zip
    46.6 KB · Affichages: 18
  • code.zip
    46.6 KB · Affichages: 17
  • code.zip
    46.6 KB · Affichages: 23
Z

Zon

Guest
Salut,

Mettre un fichier Word avec du code, c'est pas terrible pour avoir des réponses.

Pourquoi tu utilises Formulaarray ? tu es sûr que tes fichiers sont dans le même répertoire que ton classeur où tu récupères tes données =>Thisworkbook.path ?


A+++
 
K

kciop

Guest
ben meme quand mes fichier son ds le meme rep il me met false

maintenant j y connais pas grand chose en vba. formulearray c le seul truc que j ai trouvé
mais c sur qu un vba plus simple serai mieux qui peut m aider

le but est de pouvoir recuperrer les données de plein feuilles excels type.chaque feuille correspondant a un numero de lot (ex:fichier c:\multi\2004\3 avril\F4DN04088.xls correspond au numero de lot F4DN04088)
dans ces feuilles on saisie des valeurs (ex: taux rebuts sur le lot)
maintenant pour exploiter ces valeur il faut ouvrir chaque classeur et copier quelque cellule clé(comme le taux rebus)dans un classeur dont le chemin n'est pas forcement ds le repertoire des fichiers sources.

donc j avais commencé a faire un vba qui liste les fichiers a traiter ds la 1 er colonne A10 à nbre de fichier trouvé

mais ensuite je n y arrive plus et je bloque depuis 1 semaine

rq: certaines cellule a copier sont en realité plusieur cellule fusionner

ex:E42=E42+E43+F42+F43

merci pour le coup de main

je n ai pas trouver d ex vba simple permettant de faire cela
 

Pièces jointes

  • rebus.zip
    20.2 KB · Affichages: 21
A

Andry

Guest
Ce sujet m'interresse.
Mais mon problème est quelque peu différente.
Voilà : tous les mois, je dois faire un tableau previsionnel des achats à effectuer dependant de mon stock final du mois dernier.
Donc pour cela, j'ai un classeur contenant 18 (18 agence) par mois.
dans chaque classeur, il a une colonnes(A1:A12) pour les stock du mois dernier pour chaque produit une plage de colonne pour les appros et vente rélisés et la dernière colonne est le stock final(M1:M12).
J'aimerais creer un module qui va me lister les classeurs des dernier mois (qui sont dans un dossier bien defini) dans un combo(ex Mars.xls) puis cree un nouveau fichier(Avril.xls) dont le contenu est le même que celui du fichier selectionnée dans le combo;ensuite, le module va recuperer la dernière colonne(ex M1:M12) de chaque classeur de Mars.xls et le recopier dans les colonnes A1:A12.

j'espère être assez clair

Merci de votre aide
 
M

michel

Guest
bonjour Kciop , Zon et Andry

Lien supprimé

Lien supprimé


Kciop , il y a une erreur de saisie dans la macro

With ActiveSheet.Cells(Cell.Row, Y)
.FormulaArray = "='" & ThisWorkbook.Path = ActiveCell.Value & "\[" & Cell & "]" & "sheet1" & "'!" & Cells(44, Y + 1).Address(0, 0

de plus , comme te le fait remarquer Zon et comme je te l'avais déja precisé dans un autre fil cité plus haut , si tes fichiers sont dans un autre repertoire il ne faut pas utiliser ThisWorkbook dans la procedure , mais par exemple "C\Mes documents".....

en attendant tu peux essayer ( je n'ai pas testé )

For Each Cell In Range("A10:A67")
For Y = 3 To 9
With ActiveSheet.Cells(Cell.Row, Y)
.FormulaArray = "='" & ThisWorkbook.Path & "\[" & Cell & "]" & "sheet1" & "'!" & Cells(44, Y + 1).Address(0, 0)
.Value = .Value
End With
Next Y
Next Cell

ou , si tu veux conserver les liaisons

For Each Cell In Range("A10:A67")
For Y = 3 To 9
With ActiveSheet.Cells(Cell.Row, Y)
.Formula = "='" & ThisWorkbook.Path & "\[" & Cell & "]" & "sheet1" & "'!" & Cells(44, Y + 1).Address(0, 0)
End With
Next Y
Next Cell


bonne soiree
michel
 
Z

Zon

Guest
Re,

Merci Michel d'être passé par là. Je trouve que c'est pas terrible de travailler avec des liaisons,

Une autre façon de faire plus simple pour commencer, on ouvre les classeurs. Il y a l'ADO aussi mais pour l'avoir expérimenter ça plante pas mal...

Pour Andry: le chemin est en B2 et l'extension en B3, on recherche dans les sous répertoire. tu peux l'adapter bien entendu dans un userform avec 2 texbox.


Sub Princ()
Dim T, I&, Plage As Range
Dim WB1 As Workbook, WB2 As Workbook
Application.ScreenUpdating = False
T = ChercheFichier([B3].Text, [B2].Text, True)
If IsArray(T) Then
Set WB1 = ThisWorkbook
For I = 1 To UBound(T, 1)
Set WB2 = Workbooks.Open(T(I, 1))
Set Plage = WB2.Sheets(1).Range("A1:M12") '
With WB1.Sheets(1)
.Range("A65536").end(xlup)(2) = T(I, 1)
.Range("D65536").end(xlup)(2).Resize(Plage.Rows.Count, Plage.Columns.Count) = Plage.Value
End With
WB2.Close 0
Next I
End If
End Sub

'Cherchefichier renvoie un tableau avec tous les nom de fichirs présent dans un répertoire suivant son nom ou son extension mettre true pour sourep pour rechercher dans les sous repertoire.

Function ChercheFichier(Extension$, Rep$, Optional Sourep As Boolean)
Dim I As Long, Tablo
If Not Right(Rep, 1) = "\" Then Rep = Rep & "\"
On Error Resume Next
With Application.FileSearch
.NewSearch
.LookIn = Rep
.Filename = Extension
.SearchSubFolders = Sourep
.Execute
ReDim Tablo(1 To .FoundFiles.Count, 1 To 1)
For I = 1 To .FoundFiles.Count
Tablo(I, 1) = .FoundFiles(I)
Next I
End With
On Error GoTo 0
ChercheFichier = Tablo
End Function

A+++
 

Discussions similaires

Réponses
20
Affichages
369
Réponses
9
Affichages
116
Réponses
0
Affichages
266
Réponses
56
Affichages
2 K

Statistiques des forums

Discussions
312 843
Messages
2 092 758
Membres
105 526
dernier inscrit
Hiro