Ecriture dans un fichier: erreur '429'

Sarah0606

XLDnaute Nouveau
Bonjour à tous,

voilà je veux écrire dans un fichier que j'ai au préalable crée et dans lequel j'ai mis des balises pour me repérer mais en compilant j'ai une ereur inconnue qui s'affiche.

Voici mon code

Code:
Sub generate1()
    Dim MonFichier As String
    Dim Flag As Integer
    numFich = FreeFile
    
    MonDossier$ = Range("B7").Value
    MonFichier$ = MonDossier$ & Range("B8").Value

    'Rechercher si le dossier existe?
    If DossierExiste(MonDossier$) = True Then
        'Rechercher si le fichier existe?
        If Dir(MonFichier$, vbNormal Or vbReadOnly Or vbHidden Or vbArchive) = "" Then
            'Le fichier dans lequel on doit écrire n'existe pas !
            MsgBox ("Le fichier n'existe pas")
        Else

            
            'affectation des valeurs des balises...
            balise1$ = "azerty"
            balise2$ = "qwerty"
            
            PlacerDonnee MonDossier$, MonFichier$, balise1$
            
        End If
    Else
        'Le répertoire n'existe pas
        MsgBox ("Le répertoire " + MonDossier$ + " n'existe pas")
    End If
    
End Sub
Function DossierExiste(NomDossier As String) As Boolean
    DossierExiste = Dir(NomDossier, vbSystem + vbDirectory + vbHidden) <> ""
End Function
Public Sub PlacerDonnee(strChemDir As String, strChemFich As String, baliseCherchee As String)
     ' pour pouvoir utiliser les filesystemobject il faut ajouter scrrun.dll :
     ' dans VBA -> outils -> références -> Microsoft Runtime Environment
     Dim fileToRead As New FileSystemObject
     Dim strLigne As String
     Dim flux As TextStream
     
     strLigne = ""
     
     'on teste si le répertoire existe
     If fileToRead.FolderExists(strChemDir) Then
        'on teste si le fichier existe
        If fileToRead.FileExists(strChemFich) Then
            'le répertoire du fichier et le fichier ont été trouvé. On peut créer le fso
            Set fileToRead = CreateObject(FileSystemObject)
            Set flux = fileToRead.OpenTextFile(strChemFich, ForAppending)
            'parcours du fichier tant que l'on a pas atteint sa fin
            Do While Not flux.AtEndOfLine
                'Si on a trouve la balise cherchée dans la ligne lue
                If Not (InStr(1, strLigne, baliseCherchee) = 0) Then
                    MsgBox ("On a trouvé la balise : " + baliseCherchee)
                    flux.WriteBlankLines (1)
                    flux.WriteLine (Range("C4").Value)
                    flux.WriteLine ("normalement ça marche !!")
                End If
                'si on a pas trouve la balise dans la ligne courante alors on lit la ligne suivante
                strLigne = flux.ReadLine
            Loop
        Else
            MsgBox ("Le fichier : " + strChemFich + " n'existe pas")
        End If
     Else
        MsgBox ("Le répertoire : " + strChemDir + " n'existe pas ")
     End If
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)

End Sub

et l'erreur c'est

"Erreur 429
Un composant ActiveX ne peut pas créer d'objet "

Diagnostic??
 

Sarah0606

XLDnaute Nouveau
Re : Ecriture dans un fichier: erreur '429'

je l'ai légèrement modifié, voilà ce que ça donne:

Code:
Sub generate1()
    Dim MonFichier As String
    Dim Flag As Integer
    numFich = FreeFile
    
    MonDossier$ = Range("B7").Value
    MonFichier$ = MonDossier$ & Range("B8").Value

    'Rechercher si le dossier existe?
    If DossierExiste(MonDossier$) = True Then
        'Rechercher si le fichier existe?
        If Dir(MonFichier$, vbNormal Or vbReadOnly Or vbHidden Or vbArchive) = "" Then
            'Le fichier dans lequel on doit écrire n'existe pas !
            MsgBox ("Le fichier n'existe pas")
        Else

            
            'affectation des valeurs des balises...
            balise1$ = "azerty"
            balise2$ = "qwerty"
            
            PlacerDonnee MonDossier$, MonFichier$, balise1$
            
        End If
    Else
        'Le répertoire n'existe pas
        MsgBox ("Le répertoire " + MonDossier$ + " n'existe pas")
    End If
    
End Sub
Function DossierExiste(NomDossier As String) As Boolean
    DossierExiste = Dir(NomDossier, vbSystem + vbDirectory + vbHidden) <> ""
End Function
Public Sub PlacerDonnee(strChemDir As String, strChemFich As String, baliseCherchee As String)
    Dim fileSystem As New Scripting.FileSystemObject
    Dim fileToRead As Scripting.File
    Dim textStream As Scripting.textStream
    Dim strLigne As String
    
    strLigne = ""
    
    If fileSystem.FolderExists(strChemDir) Then
        If fileSystem.FileExists(strChemFich) Then
            Set fileToRead = fileSystem.GetFile(strChemFich)
            Set textStream = fileToRead.OpenAsTextStream(ForAppending)
            While Not textStream.AtEndOfStream
                If Not (InStr(1, strLigne, baliseCherchee) = 0) Then
                    MsgBox ("on a trouve la balise : " + baliseCherchee)
                End If
                strLigne = textStream.ReadLine
            Wend
        Else
            MsgBox ("Le fichier : " + strChemFich + "n'existe pas")
        End If
    Else
        MsgBox ("Le dossier : " + strChemDir + "n'existe pas")
    End If
    
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)

End Sub

et j'ai une erreur qui me dit : mode d'accès au fichier incorrect...

ça me rend chèvre , au secours !!
 

Discussions similaires

Statistiques des forums

Discussions
312 490
Messages
2 088 884
Membres
103 982
dernier inscrit
krakencolas