Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1636 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Appel d'une fonction dans plusieurs fichiers

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Appel d'une fonction dans plusieurs fichiers

n°1463068
acorsa
Posté le 23-10-2006 à 14:56:59  profilanswer
 

Bonjour,
J'aimerai créer une fonction me permettant d'ouvrir des fichiers rtf situés ds un répertoire particulier et d'appeler une fonction dans chacun des fichiers.  
La fonction est écrite en vb.
Par exemple: cette fonction permet de remplacer tous les "." par ":" dc il faut ouvrir cque fichier, appeler la focntion et refermer les fichiers.
Je vous remercie.

mood
Publicité
Posté le 23-10-2006 à 14:56:59  profilanswer
 

n°1463435
jpcheck
Pioupiou
Posté le 23-10-2006 à 20:03:47  profilanswer
 

tu veux savoir si c'est faisable, ou bien du code ?

n°1463439
kiki29
Posté le 23-10-2006 à 20:05:59  profilanswer
 

Je ne sais pas si l'ensemble te sera utile mais à priori cela crée une liste des fichiers RTF trouvés dans le Dossier Lambda puis les ouvre , cherche/remplace, sauve puis ferme ces RTF
Cela reste à tester plus à fond et sans doute à optimiser
 


Option Explicit
Dim Tableau() As String
Dim DossierOK As String
 
'   Dossier contenant les fichiers RTF
Const Dossier = "C:\Word\RTF"
Const CharATrouver = "."
Const CharRemplacement = ":"
 
Public Sub Test()
Dim i As Long
Dim FichiersRTF As String
Dim NomFichier As String
Dim NbFichiers As Long
 
    DossierOK = Dossier
    If Right(DossierOK, 1) <> "\" Then DossierOK = DossierOK + "\"
     
    FichiersRTF = DossierOK + "*.rtf"
    NomFichier = Dir(FichiersRTF)
     
    Erase Tableau
    NbFichiers = 0
    Do While Len(NomFichier) > 0
        NbFichiers = NbFichiers + 1
        ReDim Preserve Tableau(1 To NbFichiers)
        Tableau(NbFichiers) = NomFichier
        NomFichier = Dir()
    Loop
     
    If NbFichiers > 0 Then
        Application.ScreenUpdating = False
            BalayageFichiersRTF
        Application.ScreenUpdating = True
    End If
End Sub
 
Private Sub BalayageFichiersRTF()
Dim i As Long
    ChangeFileOpenDirectory DossierOK
    For i = 1 To UBound(Tableau)
        Documents.Open FileName:=Tableau(i), Format:=wdOpenFormatAuto
        RemplacerDansFichier  
    Next
End Sub
 
Private Sub RemplacerDansFichier()
    ActiveDocument.Select
 
    With Selection.Find
        .ClearFormatting
        .Replacement.ClearFormatting
        .Text = CharATrouver
        .Replacement.Text = CharRemplacement
        .Forward = True
        .Execute
    End With
     
    If Selection.Find.Found = False Then
        ActiveDocument.Close
        Exit Sub
    End If
     
    Selection.Find.Execute Replace:=wdReplaceAll
    With ActiveDocument
        .Save
        .Close
    End With
End Sub


 
s'il s'agit d'utiliser une fonction/procédure externe il faudra adapter qqch du genre
 


 Application.Run "[TemplateName].[ModuleName].[MacroName]
 Par exemple Application.Run "Normal.NewMacros.Macro1"


Message édité par kiki29 le 25-10-2006 à 10:45:21
n°1463801
acorsa
Posté le 24-10-2006 à 10:34:18  profilanswer
 

Bon merci je v tester ça...

n°1464037
acorsa
Posté le 24-10-2006 à 14:01:28  profilanswer
 

C'est bon, ça marche nickel!!
Merci beaucoup!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Appel d'une fonction dans plusieurs fichiers

 

Sujets relatifs
Valeur d'une fonctionAPI POI (manipulation de fichiers MS Office)
Format fichiers MAX R2 & R3Operateur "|" dans les parametres d'une fonction
Move fichiers partir d'une liste[C#] Sauvegarder des fichiers dans une base SQL Server
uploader une série de fichiers sur un serveurHelp fonction personnalisée Excel 2003
Mail + pièce jointe en PHP avec fonction PHP mail()fonction unlink bloque l'affichage d'une table
Plus de sujets relatifs à : Appel d'une fonction dans plusieurs fichiers


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR