ajouter date dans tous mes fichiers xls d'un même dossier
15 réponses
magic-dd
bonjour, j'ai une macro qui ne fonctionne pas bien concernant la mise
=E0 jour de date dans un de mes dossiers.
il est plac=E9 sur F:/FORMATION
Dans ce dossier, 35 fichiers xls
cela ne marche pas bien car il ne me le fait que sur 1 seul fichier
cerise sur le gateu , si je pouvais par un mpsgbox determiner le nom
du dossier que je souhaite exploiter cela serait superbe
genre :choisissez un mois puis apres indiquez la date.
merci
voici la commande
Sub test()
Dim inCalculationMode As Integer
Application.ScreenUpdating =3D False
inCalculationMode =3D Application.Calculation
Application.Calculation =3D xlCalculationManual
Dim Fich As String, Doss As Object, Parent As String
Dim FSO As Object, F As Object
Parent =3D "f:\"
Var =3D InputBox("Entrez une date au format jj/mm/aaaa")
If IsDate(Var) Then
Var =3D CDate(Var)
End If
Set FSO =3D CreateObject("scripting.FileSystemObject")
1 For Each Doss In FSO.getfolder(Parent).subfolders
For Each F In Doss.Files
Fich =3D F.Path
If Fich <> "" Then
If LCase(Mid(Fich, InStrRev(Fich, ".") + 1, 3)) =3D "xls"
Then
Workbooks.Open Fich
Do
If Var > 0 Then
ActiveSheet.Range("b41").Value =3D Var
Exit For
End If
End If
Next
Application.Calculation =3D inCalculationMode
Application.Calculation =3D xlAutomatic
Next Doss
Application.Calculation =3D inCalculationMode
Application.ScreenUpdating =3D True
Application.Calculation =3D xlAutomatic
End Sub
encore excellent michD le mot de passe n'est qu'en ecriture donc le systeme de la feuille me plait bien j'ai essayé mais cela n'a pas l'air de fonctionner tres certainement parce que les lignes ne sont pas au bon endroit merci de ton aide
encore excellent michD
le mot de passe n'est qu'en ecriture donc le systeme de la feuille me
plait bien
j'ai essayé mais cela n'a pas l'air de fonctionner
tres certainement parce que les lignes ne sont pas au bon endroit
merci de ton aide
encore excellent michD le mot de passe n'est qu'en ecriture donc le systeme de la feuille me plait bien j'ai essayé mais cela n'a pas l'air de fonctionner tres certainement parce que les lignes ne sont pas au bon endroit merci de ton aide
MichD
Décris ce que tu fais...
Quelle est la ligne de la procédure qui provoque une erreur?
En fait je n'ai pas de message d'erreur, mais cela ne marche pas car je dois taper à chaque fois le mot de passe
oups je viens de voir que mes mots de passe doivent être dans une feuille masquée sur chacun de mes fichiers
j'essaye demain au boulot car je n'ai pas pris ma usb key
merci beaucoup et je donne des nouvelles demain
MichD
Si cette procédure est inscrite seulement dans un fichier, seul ce fichier a besoin d'une feuille masquée.
Si tu as un fichier de macros personnelles, tu pourrais mettre les mots de passe dans ce fichier. Dans la procédure, il faudrait que tu ajoutes la référence à ce classeur.
Si plusieurs usagers doivent utiliser ces informations, tu pourrais penser à utiliser un fichier de macro complémentaire
Voici comment modifier le code si tu mets les noms des fichiers et leur mot de passe dans le classeur de macros personnelles.
Do While Fichier <> "" 'C'est la feuille qui contient les noms des fichiers et des mots de passe 'Tu ajoutes devant, la référence à ton classeur Perso.xls ou Personal.xlsm With Workbooks("Perso.xls").Worksheets("Feuil1") '<<<===== à modifier DerLig = .Range("A65536").End(xlUp).Row X = Application.Match(Fichier, .Range("A" & DerLig), 0) If IsNumeric(X) Then MotDePasse = .Range("B" & DerLig) Set Wk = Workbooks.Open(Filename:=Chemin & "" & Fichier, Password:=MotDePasse)
Si cette procédure est inscrite seulement dans un fichier, seul ce fichier
a besoin d'une feuille masquée.
Si tu as un fichier de macros personnelles, tu pourrais mettre les mots de passe
dans ce fichier. Dans la procédure, il faudrait que tu ajoutes la référence à ce
classeur.
Si plusieurs usagers doivent utiliser ces informations, tu pourrais penser à
utiliser un fichier de macro complémentaire
Voici comment modifier le code si tu mets les noms des fichiers et leur mot de passe
dans le classeur de macros personnelles.
Do While Fichier <> ""
'C'est la feuille qui contient les noms des fichiers et des mots de passe
'Tu ajoutes devant, la référence à ton classeur Perso.xls ou Personal.xlsm
With Workbooks("Perso.xls").Worksheets("Feuil1") '<<<===== à modifier
DerLig = .Range("A65536").End(xlUp).Row
X = Application.Match(Fichier, .Range("A" & DerLig), 0)
If IsNumeric(X) Then
MotDePasse = .Range("B" & DerLig)
Set Wk = Workbooks.Open(Filename:=Chemin & "" & Fichier,
Password:=MotDePasse)
Si cette procédure est inscrite seulement dans un fichier, seul ce fichier a besoin d'une feuille masquée.
Si tu as un fichier de macros personnelles, tu pourrais mettre les mots de passe dans ce fichier. Dans la procédure, il faudrait que tu ajoutes la référence à ce classeur.
Si plusieurs usagers doivent utiliser ces informations, tu pourrais penser à utiliser un fichier de macro complémentaire
Voici comment modifier le code si tu mets les noms des fichiers et leur mot de passe dans le classeur de macros personnelles.
Do While Fichier <> "" 'C'est la feuille qui contient les noms des fichiers et des mots de passe 'Tu ajoutes devant, la référence à ton classeur Perso.xls ou Personal.xlsm With Workbooks("Perso.xls").Worksheets("Feuil1") '<<<===== à modifier DerLig = .Range("A65536").End(xlUp).Row X = Application.Match(Fichier, .Range("A" & DerLig), 0) If IsNumeric(X) Then MotDePasse = .Range("B" & DerLig) Set Wk = Workbooks.Open(Filename:=Chemin & "" & Fichier, Password:=MotDePasse)