Faisabilité ? Automatiser l'ouverture d'un fichier modifier le contenu d'une cellule

sadia

XLDnaute Occasionnel
Bonjour à tous,

Je viens vous demander un renseignement sur la faisabilité d'une demande...

En fait, j'ai discuté avec ma collegue qui doit, tous les lundis, extraire des fichiers excel d'une application qui nous est propre.
une fois cette centaine de fichier enregistrés dans un dossier, elle doit tous les ouvrir un à un afin de changer la date du lundi et mettre la date du vendredi, tjs dans la meme cellule et supprimer les "0,00" dans certaines cellules.

Je voulais donc savoir s'il existait une manière de faire cette action en automatique ??

Merci pour votre aide !!

Bonne journée
 

kjin

XLDnaute Barbatruc
Re : Faisabilité ? Automatiser l'ouverture d'un fichier modifier le contenu d'une cel

Bonjour,
Sans doute réalisable en VBA mais un fichier exemple et l'emplacement du dossier de sauvegarde sont nécessaires pour répondre complétement
A+
kjin
 

sadia

XLDnaute Occasionnel
Re : Faisabilité ? Automatiser l'ouverture d'un fichier modifier le contenu d'une cel

Bonjour Kjin,


Voila tous les fichiers ressemblent à celui-ci sauf qui'ls ont tous un numero different, là ou je t'ai mis les "AAAAA"
C'est la cellule A2 qu'il faut modifier sur tous les onglets avec des devises, en revanche il faut supprimer les feuilles vides, elle s'appellent toutes feuil qlq chose feuil1,feuil2, feuil3

Petit detail que j'avais oublié, il faut enregistrer le dossier sous et garder le meme format de date et mettre pareil, en date du vendredi.

Concernant le chemin le voila, c'est la que sont centralisés la centaine de fichier excel : H:\Secretariat Assistantes\AIFM (rappro)\Rappro test
pour la sauvergarde garde le meme chemin et je vais rajouter un dossier "MAJ"


En tout je te remercie de nous consacrer un peu de temps
 

Pièces jointes

  • Editions_archives_AAAAA_20140307.xls
    24 KB · Affichages: 37

kjin

XLDnaute Barbatruc
Re : Faisabilité ? Automatiser l'ouverture d'un fichier modifier le contenu d'une cel

...changer la date du lundi et mettre la date du vendredi tjs dans la meme cellule...
Précédent ou suivant ?

...et supprimer les "0,00" dans certaines cellules....
Lesquelles ?

Voila tous les fichiers ressemblent à celui-ci sauf qui'ls ont tous un numero different, là ou je t'ai mis les "AAAAA"
N'y a t-il que ces fichiers dans ce dossier ?

...en revanche il faut supprimer les feuilles vides...
Sont-elles réellement vides ou contiennent-elles des entêtes sans données par exemple ?

garder le meme format de date et mettre pareil, en date du vendredi.
S'agit-il du 7 mars 2014 dans l'exemple ?

je vais rajouter un dossier "MAJ"
La macro s'en chargera

A+
kjin
 

sadia

XLDnaute Occasionnel
Re : Faisabilité ? Automatiser l'ouverture d'un fichier modifier le contenu d'une cel

Précédent ou suivant ?
le precedent



Lesquelles ?
laisse tomber pour les "0" sinon, c'est deja bien de nous aider !


N'y a t-il que ces fichiers dans ce dossier ?
oui que des fichiers excel


Sont-elles réellement vides ou contiennent-elles des entêtes sans données par exemple ?
certaines sont totalement vides, d'autres on un petit tableau


S'agit-il du 7 mars 2014 dans l'exemple ? oui la elle l'a fait le 10 mars et il fallait tout remplacer par le 7 mars


La macro s'en chargera

A+
kjin

--------------------------------
Encore merci pour ta patience
 

kjin

XLDnaute Barbatruc
Re : Faisabilité ? Automatiser l'ouverture d'un fichier modifier le contenu d'une cel

bonsoir,
A insérer dans un module d'un fichier indépendant des fichiers à traiter
Code:
Sub MAJmodif()
Dim pDossier$, pRepMaj$, nFichier
Dim nDate As Date, sDte$, aDate$
Dim wb As Workbook
Application.ScreenUpdating = False
pRep = "h:\Secretariat Assistantes\AIFM (rappro)\Rappro test\"
nDate = VBA.Date - Weekday(VBA.Date - 6)
sDate = Format(nDate, "yyyymmdd")
pRepMaj = pRep & "MAJ_" & sDate
If Dir(pRepMaj, 16) = "" Then
    MkDir pRepMaj
Else
    MsgBox "MAJ déjà effectuée pour le " & nDate & vbCr & "Opération annulée", vbExclamation
    Exit Sub
End If
aDate = Format(VBA.Date, "yyyymmdd")
nFichier = Dir(pRep & "*" & aDate & "*.xls")
Do
    If nFichier <> "" Then
        Set wb = Workbooks.Open(pRep & nFichier)
        With wb
            For i = .Sheets.Count To 1 Step -1
                With .Sheets(i)
                    If .[A2] <> "" Then
                        .[A2].Clear
                        .[A2] = nDate
                    Else
                        Application.DisplayAlerts = False
                        On Error Resume Next
                        .Delete
                        Application.DisplayAlerts = True
                        On Error GoTo 0
                    End If
                End With
            Next
            nFichier = Replace(nFichier, aDate, sDate)
            .SaveAs pRepMaj & "\" & nFichier
            .Close
        End With
    End If
    nFichier = Dir()
Loop Until nFichier = ""
End Sub

Nota :
- la MAJ peut-être effectuée qq soit le jour de la semaine, elle tiendra toujours compte du vendredi précédent la date du jour --> vendredi 07/03/2014 pour une MAJ effectuée entre le 08/03/2014 et le 14/03/2014 par exemple.
- pour éviter les confusion, il est impératif d'effectuer la MAJ le jour de l'import des fichiers car seuls les fichiers du jour seront traités ---> par exemple le 10/03/2014 seuls les fichiers "Editions_archives_XXXX_20140310.xls" seront traités.
- pour la même raison, les fichiers sont sauvegardés dans un répertoire nommé "MAJ_[date du vendredi précédent]". Si ce répertoire n'existe pas, il est créé automatiquement, sinon c'est que la MAJ a déjà été effectuée et la macro s'arrête.
- les feuilles ne contenant pas de date en [A2] sont considérées comme vides et supprimées sans avertissement (?!)

100 fichiers dont 50 contenant des feuilles à supprimer MAJ en 11s

A+
kjin
 

Discussions similaires

Statistiques des forums

Discussions
312 173
Messages
2 085 937
Membres
103 052
dernier inscrit
nizar0007