Automatiser ouverture ajournement sauvegarde fermeture fichier Excel

Bonjour,

Je suis debutante et moins encore....si je m'en sort relativement bien avec excel j'ai par contre de grosses difficultés avec visual studio. Je ne sais pas comment m'y prendre pour insérer un code ni quel type de projet utiliser pour résoudre mon problème.Donc je souhaite automatiser l’ouverture/fermeture de mes fichiers avec sauvegarde car quotidiennement je dois en faire l’ajournement. Etant nombreux cela devient ingérable.

La solution serait de réaliser par visual studio une application qui me ferait ce travail automatiquement puisque excell ne le permet pas d’origine.
Merci d'avance pour votre aide.

Est-ce que vous êtes à l'aise avec Visual Basic ? (Je parle du VB de Visual Studio).

Bonjour,

Tu peux faire ça avec Excel en VBA

Qu'entends-tu par ajournement (= remettre à plus tard) ???

Optimix, Je ne suis pas du tout à l'aise avec visual studio d’où ma demande.

Patrice, “ajournement “ c'est à dire actualiser les valeurs qui proviennent d'un fichier source. Donc j'ai un fichier source qui esr quotidiennement modifié. Les fichiers A à ouvrir, actualisés,sauvés, fermés prennent les valeurs dans ce fichier source et les traitent.Ensuite les résultats sont repris dans d'autres fichiers B.J'en ai 1600 à ouvrir tous les jours.

Avec excel je n'ai pas trouvé de solution car je ne peux ouvrir qu'un certain nombre de fichier à la fois, Donc pour le moment j'ouvre 10 fichiers A et 10 fichiers B, ensuite les 10 suivant de chacun après avoir enregistré les précédents.

Pourquoi ouvrir plusieurs fichiers ?

Ne peux-tu pas ouvrir, mettre à jour et fermer chaque fichier A (un par un) puis chaque fichier B ???

Dans tous les cas 1600 fichiers à actualiser journellement, c'est un problème de mauvaise conception de l'architecture.

Excel n'est pas un SGBDD, avec un SGBDD tout ça serait totalement inutile.

les raisons des 1600 fichiers est qu'ils font chacun des opérations différentes avec des données différentes. Mais là n'est pas le problème.
pour faire un macro ouvertur fichier A et ouverture fichier B comment dois-je m'y prendre? J'ai tenté mais manifestement je m'y prend mal.

J'ai installé l'onglet “développeur “

Tous les fichiers sont en xlsm

J'ai un fichier vierge avec un bouton auquel j'ai affecté une macro

J'ai cliqué sur enregistré une macro

Ouverture du fichier A , ouverture du fichier B, sauvegarde et fermeture des fichiers A et B

Fin enregistrement macro

Je clique sur le bouton mais ca bloque

Pourrais-tu poster le fichier qui te pose problème et décrire plus en détail ton besoin. Lorsque tu ouvres tes fichiers A et B, quels type de traitement s'applique avant de les refermer ? Un exemple de fichiers A et B serait également apprécié.

Merci à tous,

J'ai fini par trouvé la solution en faisant une macro en vba.

J'ai trouvé comment faire

Comment-creer-et-executer-une-macro-vba-sur-excel/

Le code

Sub macro()

Workbook.Open (chemin du fichier)

ActiveWorkbook.Save ‘enregistrement

ActiveWorkbook.Close False ‘ferme

End sub

Ceci pour chaque fichier dans l'ordre nécessaire.

Note: il faut mettre chaque fichier en mode “ne pas afficher l'alerte et mettre á jour les liaisons” si non il faut autoriser à chaque fois l’actualisation des valeurs.

Pour cela aller dans l’onglet “données”=> “modifier les liaisons “=>”invite de démarrage “

Bonjour,

Il n'est pas indispensable de modifier l'option de mise à jour des liaisons du fichier, la mise à jour peut être forcée par la macro à l'ouverture du fichier.

Tu peux faire une boucle sur tous les fichiers d'un répertoire comme ceci :

Sub Actualiser_Fichiers_A()
Dim oSysteme As Object   'Système de fichiers
Dim oDossier As Object   'Répertoire
Dim oFichiers As Object  'Collection des fichiers du répertoire oDossier
Dim oFichier As Object   'Fichier (élément de la collection oFichiers)
Dim sFichier As String   'Nom du fichier
Dim sDossier As String   'Nom du dossier

  'Répertoire des fichiers A
  sDossier = ThisWorkbook.Path & "\A"  ' à adapter
  'Lecture du répertoire
  Set oSysteme = CreateObject("Scripting.FileSystemObject")
  Set oDossier = oSysteme.GetFolder(sDossier)
  Set oFichiers = oDossier.Files
  'Arrêt de l'actualisation de l'affichage écran
  Application.ScreenUpdating = False
  'Actualisation de chaque le fichier du répertoire
  For Each oFichier In oFichiers
    '- vérifier s'il s'agit d'un fichier xlsm ...
    If StrComp(oSysteme.GetExtensionName(oFichier.Name), "xlsm", vbTextCompare) = 0 Then
      '... dans l'affirmative, ouvrir le fichier et mettre à jour les liaisons
      sFichier = sDossier & "\" & oFichier.Name
      Set wbk = Workbooks.Open(Filename:=sFichier, UpdateLinks:=xlUpdateLinksAlways)
      ' ... enregistrer et refermer le fichier
      wbk.Close SaveChanges:=True
    End If
  Next oFichier
End Sub
Rechercher des sujets similaires à "automatiser ouverture ajournement sauvegarde fermeture fichier"