Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

code a modifier

14 réponses
Avatar
Cyr73
Bonjour,

voilà j'ai essayer dans tout les sens mais sans resultat,je voudrais
recherche dans c\Budgets tous les fichiers commencant par les BUD_
et effectuer une macro identique sur tout les fichiers (pour la macro je
sais faire
via l'editeur de macro)
je me suis servis du code de MichDenis comme base

Sub Test()
Dim Rg as range,Fichier as string, C as range

With Worksheets("Feuil1")
set Rg = .range("A1:A" & .Range("A65536").end(xlup).row)
End with

For each c in Rg
if c<>"" then
Fichier = dir(c & "*.*")
do while fichier <> ""
'Fichier = "Nom du fichier seulement"
"C = Chemin du fichier inscrit dans la cellule"
'le traitement de ton fichier

fichier = dir()
loop
end if
next
end sub

--
Cordialement

et avec tout mes remerciements..

10 réponses

1 2
Avatar
MichDenis
Bonjour Cyr,

Ce n'est pas clair ce que tu attends,

Pour ne t'occuper que des fichiers débutant par Fichier "BUD_"
tu n'a qu'à modifier la ligne de code suivante :

Fichier = dir(c & "BUD_*.*")

C'est tout ! ?




"Cyr73" a écrit dans le message de groupe de discussion
:
Bonjour,

voilà j'ai essayer dans tout les sens mais sans resultat,je voudrais
recherche dans cBudgets tous les fichiers commencant par les BUD_
et effectuer une macro identique sur tout les fichiers (pour la macro je
sais faire
via l'editeur de macro)
je me suis servis du code de MichDenis comme base

Sub Test()
Dim Rg as range,Fichier as string, C as range

With Worksheets("Feuil1")
set Rg = .range("A1:A" & .Range("A65536").end(xlup).row)
End with

For each c in Rg
if c<>"" then
Fichier = dir(c & "*.*")
do while fichier <> ""
'Fichier = "Nom du fichier seulement"
"C = Chemin du fichier inscrit dans la cellule"
'le traitement de ton fichier

fichier = dir()
loop
end if
next
end sub

--
Cordialement

et avec tout mes remerciements..
Avatar
Daniel.C
Bonjour.
Essaie :

Sub test()
Dim Fich As String, ctr As Integer
Application.ScreenUpdating = False
Fich = Dir("c:BudgetsBUD_*.xls")
With ThisWorkbook.Sheets("synthese")
Fich = Dir("c:BudgetsBUD_*.xls")
Do While Fich <> ""
Sheets.Add.Name = Fich
Workbooks.Open "c:Budgets" & Fich
[Feuil1!A1:A6].Copy
ThisWorkbook.ActiveSheet.[A1].PasteSpecial xlPasteValues
ActiveWorkbook.Close False
ctr = ctr + 1
.Cells(ctr, 1) = Fich
.Cells(ctr, 2) = [A1]
.Cells(ctr, 3) = [A2]
Fich = Dir
Loop
End With
End Sub

Cordialement.
Daniel

Bonjour,
je reprend depuis le début.
j'ai placé un dossier nommé Budgets à la racine de C
puis je place tous mes fichier excel nommés BUD_......... dedans
je souhaite recupérer ex: A1:A6 dans chaque fichier nommé
BUD_.... et les coller dans un fichier nommé synthese (qui existe déjà)et un
onglet par fichier BUD_... trouvé.
et si j'abuse des bonne choses serait il possible d'en faire un synthese sur
un onglet nommé synthese avec en colonne A le nom des fichier Bud_.....
touvés,en colonne B la valeur de la cellule A1 en colonne C la valeur de
cellule A2 pour chaque onglet crée.
merci
Cordialement

et avec tout mes remerciements..










Avatar
FFO
Salut à toi

Les données de chaque fichier BU_ sont en Feuil1

Ce code devrait faire :

Chemin = "C:Budgets"
Fichier = Dir(Chemin & "BU_*.*")
Do While Fichier <> ""
Workbooks.Open Filename:=Chemin & Fichier
Workbooks(Fichier).Sheets("Feuil1").Range("A1", "A6").Copy
Workbooks("synthese.xls").Sheets.Add.Range("A1")
Workbooks("synthese.xls").ActiveSheet.Name = Fichier
Ligne =
Workbooks("synthese.xls").Sheets("synthese").Range("A65530").End(xlUp).Row + 1
Workbooks("synthese.xls").Sheets("synthese").Range("A" & Ligne).Value =
Fichier
Workbooks("synthese.xls").Sheets("synthese").Range("B" & Ligne).Value =
Workbooks(Fichier).Sheets("Feuil1").Range("A1").Value
Workbooks("synthese.xls").Sheets("synthese").Range("C" & Ligne).Value =
Workbooks(Fichier).Sheets("Feuil1").Range("A2").Value
Workbooks(Fichier).Close SaveChanges:úlse
Fichier = Dir
Loop

Modifies le nom "Feuil1" dans le code en fonction du nom de l'onglet de
chaque fichier BU_


Dis moi !!!!
Avatar
Cyr73
Bonjour, et Merci à vous
voici le code adapté, mais a la 1 ère recup ça coince avec "proprieté ou
methode non gérer par cet objet" ??

Sub Recup_Auto()

Chemin = "C:Budgets"
Fichier = Dir(Chemin & "BUD_*.*")
Do While Fichier <> ""
Workbooks.Open Filename:=Chemin & Fichier
Workbooks(Fichier).Sheets("Saisie").Range("AE5", "AE10").Copy
Workbooks("synthese.xls").Sheets.Add.Range ("A4")
Workbooks("synthese.xls").ActiveSheet.Name = Fichier
Ligne =
Workbooks("synthese.xls").Sheets("synthese").Range("A65530").End(xlUp).Row + 1
Workbooks("synthese.xls").Sheets("synthese").Range("A" & Ligne).Value =
Fichier
Workbooks("synthese.xls").Sheets("synthese").Range("B" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE5").Value
Workbooks("synthese.xls").Sheets("synthese").Range("C" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE6").Value
Workbooks("synthese.xls").Sheets("synthese").Range("D" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE7").Value
Workbooks("synthese.xls").Sheets("synthese").Range("E" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE8").Value
Workbooks("synthese.xls").Sheets("synthese").Range("F" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE9").Value
Workbooks("synthese.xls").Sheets("synthese").Range("G" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE10").Value
Workbooks(Fichier).Close SaveChanges:úlse
Fichier = Dir
Loop

End Sub

et encore merci pour le temps que vous me consacrés


Avatar
Daniel.C
Sur quelle ligne ?
Daniel

Bonjour, et Merci à vous
voici le code adapté, mais a la 1 ère recup ça coince avec "proprieté ou
methode non gérer par cet objet" ??

Sub Recup_Auto()

Chemin = "C:Budgets"
Fichier = Dir(Chemin & "BUD_*.*")
Do While Fichier <> ""
Workbooks.Open Filename:=Chemin & Fichier
Workbooks(Fichier).Sheets("Saisie").Range("AE5", "AE10").Copy
Workbooks("synthese.xls").Sheets.Add.Range ("A4")
Workbooks("synthese.xls").ActiveSheet.Name = Fichier
Ligne =
Workbooks("synthese.xls").Sheets("synthese").Range("A65530").End(xlUp).Row +
1 Workbooks("synthese.xls").Sheets("synthese").Range("A" & Ligne).Value =
Fichier
Workbooks("synthese.xls").Sheets("synthese").Range("B" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE5").Value
Workbooks("synthese.xls").Sheets("synthese").Range("C" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE6").Value
Workbooks("synthese.xls").Sheets("synthese").Range("D" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE7").Value
Workbooks("synthese.xls").Sheets("synthese").Range("E" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE8").Value
Workbooks("synthese.xls").Sheets("synthese").Range("F" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE9").Value
Workbooks("synthese.xls").Sheets("synthese").Range("G" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE10").Value
Workbooks(Fichier).Close SaveChanges:úlse
Fichier = Dir
Loop

End Sub

et encore merci pour le temps que vous me consacrés




Avatar
Cyr73
sur celle-ci je pense car la macro ouvre bien le premier fichier
copie les cellules retour sous le fichier synthese et la "proprieté ou
methode non gérees par cet objet"
Workbooks(Fichier).Sheets("Saisie").Range("AE5", "AE10").Copy

--
Cordialement

et avec tout mes remerciements..


"Daniel.C" a écrit :

Sur quelle ligne ?
Daniel

> Bonjour, et Merci à vous
> voici le code adapté, mais a la 1 ère recup ça coince avec "proprieté ou
> methode non gérer par cet objet" ??
>
> Sub Recup_Auto()
>
> Chemin = "C:Budgets"
> Fichier = Dir(Chemin & "BUD_*.*")
> Do While Fichier <> ""
> Workbooks.Open Filename:=Chemin & Fichier
> Workbooks(Fichier).Sheets("Saisie").Range("AE5", "AE10").Copy
> Workbooks("synthese.xls").Sheets.Add.Range ("A4")
> Workbooks("synthese.xls").ActiveSheet.Name = Fichier
> Ligne =
> Workbooks("synthese.xls").Sheets("synthese").Range("A65530").End(xlUp).Row +
> 1 Workbooks("synthese.xls").Sheets("synthese").Range("A" & Ligne).Value =
> Fichier
> Workbooks("synthese.xls").Sheets("synthese").Range("B" & Ligne).Value =
> Workbooks(Fichier).Sheets("Saisie").Range("AE5").Value
> Workbooks("synthese.xls").Sheets("synthese").Range("C" & Ligne).Value =
> Workbooks(Fichier).Sheets("Saisie").Range("AE6").Value
> Workbooks("synthese.xls").Sheets("synthese").Range("D" & Ligne).Value =
> Workbooks(Fichier).Sheets("Saisie").Range("AE7").Value
> Workbooks("synthese.xls").Sheets("synthese").Range("E" & Ligne).Value =
> Workbooks(Fichier).Sheets("Saisie").Range("AE8").Value
> Workbooks("synthese.xls").Sheets("synthese").Range("F" & Ligne).Value =
> Workbooks(Fichier).Sheets("Saisie").Range("AE9").Value
> Workbooks("synthese.xls").Sheets("synthese").Range("G" & Ligne).Value =
> Workbooks(Fichier).Sheets("Saisie").Range("AE10").Value
> Workbooks(Fichier).Close SaveChanges:úlse
> Fichier = Dir
> Loop
>
> End Sub
>
>> et encore merci pour le temps que vous me consacrés





Avatar
Daniel.C
Remplace :
Workbooks("synthese.xls").Sheets.Add.Range("A4")
par :
Var = Range("A4").Value
ActiveWorkbook.Sheets.Add.Name = Var
daniel


sur celle-ci je pense car la macro ouvre bien le premier fichier
copie les cellules retour sous le fichier synthese et la "proprieté ou
methode non gérees par cet objet"
Workbooks(Fichier).Sheets("Saisie").Range("AE5", "AE10").Copy

--
Cordialement

et avec tout mes remerciements..


"Daniel.C" a écrit :

Sur quelle ligne ?
Daniel

Bonjour, et Merci à vous
voici le code adapté, mais a la 1 ère recup ça coince avec "proprieté ou
methode non gérer par cet objet" ??

Sub Recup_Auto()

Chemin = "C:Budgets"
Fichier = Dir(Chemin & "BUD_*.*")
Do While Fichier <> ""
Workbooks.Open Filename:=Chemin & Fichier
Workbooks(Fichier).Sheets("Saisie").Range("AE5", "AE10").Copy
Workbooks("synthese.xls").Sheets.Add.Range ("A4")
Workbooks("synthese.xls").ActiveSheet.Name = Fichier
Ligne =
Workbooks("synthese.xls").Sheets("synthese").Range("A65530").End(xlUp).Row
+ 1 Workbooks("synthese.xls").Sheets("synthese").Range("A" & Ligne).Value
= Fichier
Workbooks("synthese.xls").Sheets("synthese").Range("B" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE5").Value
Workbooks("synthese.xls").Sheets("synthese").Range("C" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE6").Value
Workbooks("synthese.xls").Sheets("synthese").Range("D" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE7").Value
Workbooks("synthese.xls").Sheets("synthese").Range("E" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE8").Value
Workbooks("synthese.xls").Sheets("synthese").Range("F" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE9").Value
Workbooks("synthese.xls").Sheets("synthese").Range("G" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE10").Value
Workbooks(Fichier).Close SaveChanges:úlse
Fichier = Dir
Loop

End Sub

et encore merci pour le temps que vous me consacrés











Avatar
Cyr73
tout d'abord merci de prend du temps pour moi.
je suis désolé, mais j'ai changer d'approche.
je souhaiterais recuperer toutes les infos sur la feuille synthese
cela marche avec le code si dessous sauf que les nom de fichiers
sont bien present mais la macro ne copie que les données du premiers fichier
et pas celle des autres.

Sub Recup_Auto()

'Var = Range("B4").Value
Chemin = "C:Budgets"
Fichier = Dir(Chemin & "BUD_*.*")
Do While Fichier <> ""
Workbooks.Open Filename:=Chemin & Fichier
'ActiveWorkbook.Sheets.Add.Name = Var
'Workbooks("synthese.xls").Sheets.Add.Range ("B4")
'Workbooks("synthese.xls").ActiveSheet.Name = Fichier
Ligne =
Workbooks("synthese.xls").Sheets("synthese").Range("B65530").End(xlUp).Row + 1
Workbooks("synthese.xls").Sheets("synthese").Range("B" & Ligne).Value =
Fichier
Workbooks("synthese.xls").Sheets("synthese").Range("C" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE5").Value
Workbooks("synthese.xls").Sheets("synthese").Range("D" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE6").Value
Workbooks("synthese.xls").Sheets("synthese").Range("E" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE7").Value
Workbooks("synthese.xls").Sheets("synthese").Range("F" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE8").Value
Workbooks("synthese.xls").Sheets("synthese").Range("G" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE9").Value
Workbooks("synthese.xls").Sheets("synthese").Range("H" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE10").Value
Workbooks(Fichier).Close SaveChanges:úlse
Fichier = Dir
Loop

End Sub
Avatar
Daniel.C
Peux-tu mettre la feuille synthese dans un classeur et mettre ce
dernier sur www.cijoint.fr.
Poste ensuite ici l'adresse générée.
Daniel

tout d'abord merci de prend du temps pour moi.
je suis désolé, mais j'ai changer d'approche.
je souhaiterais recuperer toutes les infos sur la feuille synthese
cela marche avec le code si dessous sauf que les nom de fichiers
sont bien present mais la macro ne copie que les données du premiers fichier
et pas celle des autres.

Sub Recup_Auto()

'Var = Range("B4").Value
Chemin = "C:Budgets"
Fichier = Dir(Chemin & "BUD_*.*")
Do While Fichier <> ""
Workbooks.Open Filename:=Chemin & Fichier
'ActiveWorkbook.Sheets.Add.Name = Var
'Workbooks("synthese.xls").Sheets.Add.Range ("B4")
'Workbooks("synthese.xls").ActiveSheet.Name = Fichier
Ligne =
Workbooks("synthese.xls").Sheets("synthese").Range("B65530").End(xlUp).Row +
1 Workbooks("synthese.xls").Sheets("synthese").Range("B" & Ligne).Value =
Fichier
Workbooks("synthese.xls").Sheets("synthese").Range("C" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE5").Value
Workbooks("synthese.xls").Sheets("synthese").Range("D" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE6").Value
Workbooks("synthese.xls").Sheets("synthese").Range("E" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE7").Value
Workbooks("synthese.xls").Sheets("synthese").Range("F" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE8").Value
Workbooks("synthese.xls").Sheets("synthese").Range("G" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE9").Value
Workbooks("synthese.xls").Sheets("synthese").Range("H" & Ligne).Value =
Workbooks(Fichier).Sheets("Saisie").Range("AE10").Value
Workbooks(Fichier).Close SaveChanges:úlse
Fichier = Dir
Loop

End Sub


Avatar
Cyr73
Voici..

http://www.cijoint.fr/cjlink.php?file=cj200906/cijhdP5zvf.xls

Merci
1 2