Résultats pour "macro ouvrir fichiers"

10'012 résultats pour cette recherche

Bonjour je suis nouveau sur le forum et je souhaiterai obtenir de l'aide pour la réalisation d'une marco.

Le but de celle-ci est:

  • d'ouvrir successivement des fichiers excel contenu dans un même répertoire
  • faire quelques modifications automatisées dans chacun de ces fichiers
  • d’exécuter une seconde macro contenu dans ces fichiers

j'ai un problème sur l'ouverture de ces fichiers

avec ce code :

Sub Fichiers()

Application.ScreenUpdating = True

Dim myPath As String, myFile As Variant

myPath = "D:\test\"

myFile = Dir(myPath & "\*.xls*")

c = 1

Do While myFile <> ""

Cells(c, 1) = myFile

Dim wb As Workbook

Set wb = Workbooks.Open(myPath & myFile)

wb.Activate

ActiveWorkbook.Close

myFile = Dir()

c = c + 1

Loop

End Sub

j'ouvre le premier fichier de mon répertoire mais j'obtiens un run-time 1004 lorsque la macro essaye d'ouvrir le second fichier.

j'ai testé avec des fichiers excel ne contenant pas de macro et tous les fichier s'ouvre nickel....

quelqu'un peut-il m'indiquer ou est mon erreur...

merci d'avance

Bonjour, je suis débutant en VBA et pour mon stage je dois ouvrir plusieurs fichiers Excel à l'aide d'une macro. Ces fichiers se trouvent dans le même dossier. Malgré toutes mes recherches sur différents post n'y arrive pas. Pouvez-vous m'aider svp

Voila le programme

Sub Fichiers()

Application.ScreenUpdating = True

Dim myPath As String, myFile As Variant

myPath = "/Users/raphael-guillaume/Desktop/Essai/"

myFile = Dir(myPath & 1"\*.xlsx*")

c = 1

Do While myFile <> ""

Cells(c, 1) = myFile

Dim wb As Workbook

Set wb = Workbooks.Open(myPath & myFile)

wb.Activate

ActiveWorkbook.Close

myFile = Dir()

c = c + 1

Loop

Bonjour à tous,

Je me permets de faire appel à vous car j'aimerais savoir s'il était possible de créer une macro sur un fichier qui ouvrirait un autre fichier quelque soit le dossier dans lequel ils sera (l'autre fichier).

Pour être donner un exemple, j'ai réalisé cette macro :

On Error Resume Next
    Workbooks("Dashboard Workstream.xls").Activate
    If Err = 0 Then
    ActiveWorkbook.Saved = True
    ActiveWorkbook.Close
    Else
    Windows("Outil équipe.xls").Activate
    ActiveWindow.SmallScroll Down:=-15
    Range("J2:L33").Select
    Selection.Copy
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Selection.Copy
    ActiveWindow.SmallScroll Down:=-12
    [b]Workbooks.Open Filename:="C:\budget\Dashboard Workstream.xls" [/b]   
    Windows("Dashboard Workstream.xls").Activate
    Sheets("Valeurs Dashboard").Select
    Range("B2").Select
    ActiveSheet.Paste
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Dashboard").Select
    End If
End Sub

Sur mon ordinateur, le fichier Dashboard Workstream est bien dans le dossier budget dans C:, mais si quelqu'un enregistre le fichier dans un autre dossier, la macro ne s'exécutera pas. Or j'aimerais que l'on puisse l'ouvrir quelque soit le dossier dans lequel les gens de mon équipe l'enregistre.

Merci d'avance pour votre aide!

Bonjour,

J'ai besoin de votre aide pour trouver le code d'une macro que je souhaite faire.

Dans un fichier central, j'ai saisi dans une plage de données (par exemple la plage A1:B20) le nom de plusieurs fichiers Excel et leurs liens hypertexte pouvant les ouvrir lorsque l'on clique dessus.

Je souhaite développer une macro qui pourra faire les actions suivantes pour chaque lien hypertexte contenu dans la plage B1:B20 :

  • Ouvrir le fichier en question via le lien hypertexte
  • Copier une feuille de ce fichier
  • La coller (collage spécial, valeur et format) dans le fichier central
  • Fermer le fichier d'où a été copiée la feuille en question
  • Passer au fichier suivant contenu dans la plage de données B1:B20 du fichier central (une boucle devrait théoriquement faire l'affaire).
J'ai des connaissances très limitées en vba et n'ai pas réussi à trouver la solution à mon problème sur les forums d'aide.

Vous serait-il possible de m'aider à ce sujet ?

Merci d'avance

Bonjours tout le monde

J'ai fait une macro qui permet de lister des fichiers d'un dossier avec liens hypertexte et à coté la liste des onglets présent dans chaque fichier, voici le code :

Sub test_import_noms_dossiers()
Dim i, j, k As Integer
Dim A As String

A = ActiveWorkbook.Name

With Application.FileSearch
' adresse du répertoire
.LookIn = "G:\DT"
' type ou nom du fichier
.Filename = "*.xls"
' recherche dans les sous-dossiers
.SearchSubFolders = True
' executer la recherche
.Execute
' insertion dans le classeur excel
j = Range("r_deb_tab").Row
For i = 1 To .FoundFiles.Count
    Cells(j, 1) = .FoundFiles(i)
        With ActiveSheet
            .Hyperlinks.Add Anchor:=.Cells(j, 1), _
            Address:=.Cells(j, 1), _
            TextToDisplay:=.Cells(j, 1).Value
            .Hyperlinks(i).ScreenTip = " VERS:" & .Cells(i + 5, 1).Value
        End With
    Workbooks.Open Cells(j, 1).Value, , True
    For k = 1 To Sheets.Count
        Workbooks(A).Sheets(1).Cells(j, 2).Value = Sheets(k).Name
        j = j + 1
    Next k
    ActiveWorkbook.Close
Next i
End With
End Sub

est-ce que ca serait possible de faire la meme chose mais sans que ca ouvre chaque fichier pour trouver les onglets ?

parce que c'est des fichiers compliqué qui necessite une mise a jour à chaque foi qu'on les ouvre, donc si on peut éviter de les ouvrir ca serait quand meme beacoup mieux !!

vous en pensez quoi ? c'est faisable ?

Merci d'avance

Bonjour,

Je rencontre un probleme, j'ai fait un fichier avec des liaisons avec différent classeur et avec un classeur je suis obliger d'ouvrir le fichier pour faire la liaison.

Quel est la manip a faire pour evité d'ouvrir la classeur?

bonjour,

Je cherche à optimiser un fichier excel dans lequel, il faudrait que je puisse lister l'ensemble des fichiers se trouvant dans un dossier, puis d'ouvrir un à un ces fichiers pour copier coller les informations de la plage A1 à J600 sur un onglet bien définit. Après fermer ce classeur et refaire la meme chose avec tout les autres classeurs en copiant en dessous des premières infos

Mon début de code le voici

Sub ListingFichiers()

Dim Rep As String, Fichier As String Dim i As Integer

Rep = "C:\Users\l.guyonnet\Desktop\Perso\COMMANDE\Commandes\"

Fichier = Dir(Rep)

Do While Fichier <> ""

i = i + 1

Sheets("Liste_fichier").Range("A" & i) = Fichier

Fichier = Dir

Loop

End Sub

D'avance merci pour votre aide

Bonjour à tous,

Je voudrai créer une liste déroulante me permettant d'ouvrir un fichier PDF,

sur le modèle 'ouverture de fichier joint

Merci beaucoup

Djodjo

Private Sub CommandButton6_Click()

'par Excel-Malin.com ( https://excel-malin.com )

On Error GoTo OuvertureFichierErreur
   Dim MonApplication As Object
   Dim MonFichier As String
   Set MonApplication = CreateObject("Shell.Application")

   MonFichier = "C:\Users\djodj\Documents\MEGA\Mycologie\Cours Rouen\Cours\" 'à remplacer par votre fichier
   MonApplication.Open (MonFichier)

   Set MonApplication = Nothing
Exit Sub

OuvertureFichierErreur:
   Set MonApplication = Nothing
    MsgBox "Erreur lors de l'ouverture de fichier..."
End Sub

Bonjour à tous,

J’essaye de créer une macro dont l’objet est d’ouvrir les 4 fichiers Excel situés dans ce dossier « D:\paczinya\Documents\w inv » ; (qui est mon dossier de travail pour l’instant), puis de copier-coller les données sur un autre fichiers Excel.

La particularité c’est que chaque fichier Excel source dispose de deux onglets.

Sur chacun des fichiers le premier onglet s’appelle « engagement » et le second « facturation ».

J’aimerais donc conserver les deux onglets sur le fichier de rendu.

Mes quatre fichiers sources se nomment respectivement :

- Suivi_92

- Suivi_ 75

- Suivi_ 94

- Suivi_78

Avez-vous une idée du code que je pourrai mettre en place svp ?

Merci et bonne journée

Bonjour ,

J'ai trouvé pas mal de code mais je n'arrive pas à adapter.

Je voudrais dans un premier temps parvenir à ouvrir exclusivement des fichiers xlsx, dont le nom contient le mot "moi", et ce trouvant dans le dossier "Details". Et ce, à partir du fichier "Production.xlsm".

Je voudrais en gros ouvrir ces fichiers l'un après l'autre, extraire des données et ensuite refermer pour passer au suivant.

Sub Boucle_Fichiers_Dossier()
'ouvrir à partir de ce fichier tous les fichiers excel se trouvant dans le même répertoire
    Dim Fichier As String, Chemin As String, Wb As Workbook
    Chemin = ThisWorkbook.Path
    Fichier = Dir(Chemin & "\*.xlsx*")
    'boucle pour ouvrir les fichiers excel uniquement
    Do
        If Fichier = "" Then Exit Do
        If Fichier <> "MonFichier.xlsm" Then
            Set Wb = Workbooks.Open(Chemin & "\" & Fichier)
            'suite de la procedure
            MsgBox Fichier & " est ouvert"
            Application.DisplayAlerts = False
            Wb.Close True
            Application.DisplayAlerts = True
            Set Wb = Nothing
        End If
        Fichier = Dir()
    Loop
End Sub

Merci beaucoup.

3testprod.zip (19.00 Ko)

Bonjour à toutes et tous,

Le code ci après me permet de copier toutes les feuilles des classeurs ouverts après la feuille 1 du classeur lançant la macro

Sub Fusion()
For Each Sheet In ActiveWorkbook.Sheets
     Sheet.Copy After:=ThisWorkbook.Sheets(1)
Next Sheet
  End Sub

Serait il possible de faire la même chose mais sans ouvrir les fichiers qui sont tous contenus dans un même répertoire ?

Merci

Cordialement

Hugues

Bonjour à tous,

Je viens vers vous avec une petite question :

J'ai plusieurs fichiers au formats texte qui ont tous la même forme. Ils ont 3 colonnes, la première est nombre, la deuxième une date et la troisième un nombre. J'ai environ une cinquantaine de fichiers, du coup, c'est juste trop long à faire manuellement...

Mon but est de faire une macro me permettant d'ouvrir ces fichiers, de copier les données et de les coller dans un classeur Excel les uns à la suite des autres. Et donc d'avoir en sortie un beau fichier excel où tout les fichiers texte sont compilés dans une feuille.

J'ai écrit ce programme :

Sub compilation()

Dim Chemin As String, Fichier As String

 Chemin = "C:\dossier"

    Fichier = Dir(Chemin & "*.SM3*")

    Do While Fichier <> ""

     Workbooks.OpenText Filename:=Fichier, DataType:=xlDelimited, _
     semicolon:=False, Space:=True, DecimalSeparator:="."

    Loop

End Sub

Mon problème est que rien ne se passe, le programme à l'air de tourner dans le vide. De plus, je sais comment faire un copier, coller mais je ne sais pas comment dire au programme de coller à la suite du reste.

Merci d'avance pour votre aide,

Sankreet.

Bonjour à tous,

J'ai besoin d'aide dans un code VBA.

Mon code va me permettre d'ouvrir plusieurs fichiers dans un même répertoire, tous les fichiers ont l'extension acsup.

J'arrive via la fonction shell.application à ouvrir un fichier acsup mais la ou je coince c'est que je suis obligé d'indiquer le chemin ou se trouve le fichier. J'aimerai juste indiquer le chemin du répertoire et la macro ouvre 1 à 1 les fichiers.

Voici le code qui me permet d'ouvrier l'ensemble des fichiers d'un répertoire, je bloque à l'étape ProcessFiles2 où je n'arrive pas à utiliser la commande shell.application, je la remplacer par exemple par Workbooks.Open FileName, cela m'ouvre bien l'ensemble des fichiers sous excel pour vérifier que l'ensemble de la macro marche.

Sub Repertoire()

'Choix du répertoire pour travailler

Dim Repertoire As FileDialog
Set Repertoire = Application.FileDialog(msoFileDialogFolderPicker)
Repertoire.Show

If Repertoire.SelectedItems.Count > 0 Then
    Rep_Traitement = Repertoire.SelectedItems(1)
    Call BatchProcess2 '---------------Macro ProcessFiles2 Traitement des feuilles une à une en fonction de la liste des agents
Else
    MsgBox "Aucun Répertoire Sélectionné. Relancez la macro"
    Exit Sub
End If

End Sub
Sub BatchProcess2()
    Dim Files() As String
    Dim FileSpec As String

'   Get file spec
    'DefaultPath = ThisWorkbook.Path & "\*.xlsm"
    FileSpec = Rep_Traitement & "\*.acsup"

'   See if any files exist
    FoundFile = Dir(FileSpec)
    If FoundFile = "" Then
        MsgBox "Cannot find file:" & vbCrLf & Rep_Traitement
        Exit Sub
    End If

'   Get first file name
    FileCount = 1
    ReDim Preserve Files(FileCount)
    Files(FileCount) = FoundFile

'   Get other file names, if any
    Do While FoundFile <> ""
        FoundFile = Dir()
        If FoundFile <> "" Then
            FileCount = FileCount + 1
            ReDim Preserve Files(FileCount)
            Files(FileCount) = FoundFile
        End If
    Loop

'   Loop through all files and process them
    For i = 1 To FileCount
        Application.StatusBar = "Processing " & Files(i)
        Call ProcessFiles2(Files(i))
    Next i
    Application.StatusBar = False

End Sub

Sub ProcessFiles2(FileName As String)

'   Import the file

    CreateObject("Shell.Application").Open Rep_Traitement & " \ " & FileName

    'Workbooks.Open FileName:=Rep_Traitement & " \ " & FileName
    traitement_feuille = ""
    agjr = 1

    'ActiveWorkbook.Close savechanges:=True

End Sub

Auriez-vous une idée svp ?

Bonjour,

Lorsque j'ouvre mes deux fichiers au format ". Csv" dans une cession Excel les données se trouvent bien rangées dans chaque colonne.

Dans mon code ci dessous, la macro ouvre les deux fichiers et fait un copier coller. Cependant lorsque qu'elle colle les données, celle ci sont rassemblées en une ou plusieurs colonnes séparées par un point virgule.

Sub test()

Dim SourceFile As String, ThisFile As String, ShtToCopy As String, SourceFile2 As String
Dim Ws As Workbook, wf As Workbook
 Dim sht As Worksheet

    SourceFile = Dir("/Users/raphael-guillaume/Desktop/Essai/032018.CSV")
    ThisFile = Dir("/Users/raphael-guillaume/Desktop/Essai/Classeur4.xlsx")
    ShtToCopy = "032018"
    ShtToCopy2 = "042018"

    SourceFile2 = Dir("/Users/raphael-guillaume/Desktop/Essai/042018.CSV")

    On Error Resume Next
Workbooks.Open ("/Users/raphael-guillaume/Desktop/Essai/042018.CSV")
    On Error GoTo 0

    Workbooks(SourceFile).Worksheets(ShtToCopy).Activate
    Cells.Copy
    Workbooks(ThisFile).Worksheets("Janvier").Activate
    Range("A1").Select: ActiveSheet.Paste: Range("A1").Select
    Application.CutCopyMode = False
    Range("A1").Select
Workbooks("032018.CSV").Close False
On Error Resume Next
    Set Ws = Workbooks(SourceFile2)
    If Ws Is Nothing Then Workbooks.Open SourceFile2

    Set wf = Workbooks(ThisFile)
    If wf Is Nothing Then Workbooks.Open ThisFile
    On Error GoTo 0

    Workbooks(SourceFile2).Worksheets(ShtToCopy2).Activate
    Cells.Copy
    Workbooks(ThisFile).Worksheets("Fevrier").Activate
    Range("A1").Select: ActiveSheet.Paste: Range("A1").Select
    Application.CutCopyMode = False
    Range("A1").Select
    Workbooks("042018.CSV").Close False
    end Sub

Pouvez vous m'aider s'il vous plaît

Bonjour le forum,

Etant à l'origine d'un fichier de trésorerie pour une association, élaboré grâce au forum par Claude Dubois en 2008, certains sections départementales m'adressent leurs comptas pour correction.

Mais certains fichiers ne s'ouvrent pas, le message suivant apparait:

erreur

Ci_joint un fichier qui me pose problème.

J'ai excel 2010.

Merci de vos conseils.

cdt

Henri

Bonsoir,

Je voudrais à partir de mon fichier ouvrir uniquement des fichiers excel se trouvant dans le même dossier que mon fichier.

J'ai bien trouvé une solution mais ne fait pas exactement ce que je voudrais obtenir. En exécutant la macro, seul un fichier excel s'ouvre alors qu'il y en a 2 (classeur1.xlsx et test.xls).

En vous remerciant par avance.

ps: ci-joint dossier zipper contenant quelques fichiers légers pour test.

9test.zip (27.00 Ko)

Bonjour à tous,

Je bute sur un morceau de code que j'ai déjà mis en œuvre des dizaines de fois mais qui dans ce cas particulier ne tourne pas ...

Voici le problème :

j'ai un classeur à partir duquel, en appuyant sur un bouton que j'ai créé, je souhaite ouvrir certains classeurs d'un dossier identifié (et pas tous les fichiers de ce dossier). Ces classeurs sont tous nommés "Prénom Nom.xlsx", et la liste des Prénom Nom est contenue dans l'onglet "données", A2 à Al, où l est la dernière ligne non vide.

Voici donc le code :

Dim operateur As String
Dim l As Integer
Dim o As Integer

l = Sheets("données").Range("A" & Rows.Count).End(xlUp).Row

For o = 2 To l
    operateur = Sheets("données").Cells(o, 1).Value
    Workbooks.Open "H:\ATELIER\ÉCRAN ATELIER\Pointage\" & operateur & ".xlsx", ReadOnly:=True
Next

Mon problème est que la boucle ne tourne qu'une fois, ouvrant le premier fichier, puis m'affiche une "erreur d'exécution 9 : l'indice n'appartient pas à la sélection". Par contre si j'initialise ma boucle à 3 ou 4 ou ... le fichier concerné s'ouvre bien ...

Quelqu'un aurait une piste ? ça m'étonne car j'utilise cette même liste A2 à Al dans d'autres macros sur la même feuille sans problème ...

Merci d'avance !

AMOP

Bonjour,

J'ai créé un userform afin d'ouvrir soit des dossiers (dans une fenêtre de l'explorateur windows), soit des fichiers en cliquant sur les boutons!

Après quelques recherches, je n'ai pas réussi à faire ce que je voulais!

Quelqu'un pourrait-il m'apporter ses lumières??

Je joins mon userform pour vous aider.

Merci à vous.

Bonjour,

j'aurais grand besoin d'aide pour gérer la mise à jour automatisée de liaisons sur Excel...

mon problème est que #valeur# s 'affiche si je n 'ouvre pas les fichiers sources :

J'ai plusieurs fichiers :

  • 2 fichiers source qui contient des données de référence (plan 2017;Ist 2017)
  • Plusieurs fichiers destinations, qui reprennent des valeurs contenues dans mon fichier source (données liées, avec des formules type sommesi ens). (1 fichier parmi eux se nomme Alle kst)

Quelqu'un saurait-il m'aider

Merci d'avance

19alle-kst.xlsx (78.40 Ko)
17ist-2017.xlsx (269.22 Ko)
21plan-2017.xlsx (182.82 Ko)

Salut !

Je suis tout nouveau sur le forum et je voudrais savoir comment pouvons nous ouvrir un par un tous les fichiers d'un répertoire :

je m'explique, je suis en stage L1 et je dois automatiser un fichier excel qui :

  • on doit ouvrir un fichier manuellement.
  • on ouvre un fichier (du repertoire en question)
  • on retourne sur le premier fichier et on actionne une macro qui prendra des données de l'autre fichier (du répertoire en question)
  • on ferme le fichier (du répertoire en question) et on ouvre le prochain pour faire la même chose un à un.

Je dois donc automatiser ça mais je suis pas vraiment expert en excel.

Je voudrais donc :

ouvrir le fichier mère manuellement puis en lançant la macro, qu'il puisse ouvrir chaque fichier du répertoire un à un tout en exécutant l'autre macro entre chaque ouverture de fichiers.

est ce possible ?

merci !

Léo.

Recherches récentes

cocherdatebaie informatiquemfccopier collercuveriesuivisharepoint vbasupprimer ligne valeur presente colonne precisecombobox fichier fermeecheancier semaineregrouper donnees ongletsrecuperer ongletsrecupererongletongletsregrouper ongletsrechercher valeur criteregrande valeur critereregrouper