IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Modifier un fichier en ecriture


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2008
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 257
    Par défaut Modifier un fichier en ecriture
    Salut a tous et a toutes,

    J'ai un petit probleme au niveau de la modification d'un fichier .js que je fait via une macro excel VBA.

    Tout ce que je souhaite faire est de rechercher dans le fichier .js la ligne que je souhaite modifier et y apporter la modification souhaité. Jusque la, ca marches impec et voici ma macro qui fait cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub fichier_Update2()
    Dim LaLigne As String
    Open "\\Srv41101a07\WebRoot\scripts\Update.js" For Input As #1
    Open "\\Srv41101a07\WebRoot\scripts\Update2.js" For Output As #2
    Do While Not EOF(1)
            Input #1, LaLigne
            If LaLigne = "document.form1.DebutMM1.value = '07'" Then
               LaLigne = "document.form1.DebutMM1.value = '10'"
            End If
            Print #2, LaLigne
    Loop
    Close #1
    Close #2
    End Sub
    Mon probleme est lorsque j'ouvre le nouveau fichier créé, soit Update2.js, je realise que lors du nouveau print, il me decalle quelques lignes de mon fichier update.js d'origine. Il me decalle les lignes ou il y a une virgule, chose qu'il ne devrait pas faire car cela cree une erreur lors de l'execution du fichier update2.js

    Je ne sais pas si j'ai été bien clair mais voici aussi en ficheir joint mon fichier update.js de base et le fichier update2.js qui contient la ligne modifier mais helas, qui ne fonctionne pas du au decallage que vous apercevrez au debut du code.

    Votre aide est apprécié d'avance.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    Bonsoir, Mimosa

    remplace ton print par un Write

    et dis nous quoi..

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2008
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 257
    Par défaut
    Salut JackOuYA,

    il fait exactement la meme chose avec le write.

  4. #4
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    Re ...

    oui il faut aussi changer le input par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Line Input #1, LaLigne

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonsoir,

    il est si simple dans un tel cas de donner à une variable la valeur du contenu de tout le fichier puis d'utiliser un Replace et d'écraser ensuite le fichier par le résultat ainsi obtenu

    Allons-y donc à main levée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Command1_Click()
       Open "\\Srv41101a07\WebRoot\scripts\Update.js" For Input As #1
            strtext = Input(LOF(1), #1)
       Close #1
       strtext = Replace(strtext, "document.form1.DebutMM1.value = '07'", "document.form1.DebutMM1.value = '10'")
       Open "\\Srv41101a07\WebRoot\scripts\Update.js"  For Output As #1
            Print #1, strtext
       Close #1
    End Sub

  6. #6
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    ca ne marcheras pas si le fichier est volumineux

  7. #7
    Membre éclairé
    Inscrit en
    Mars 2008
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 257
    Par défaut
    Bonjour a tous et a toutes,

    je vous remercie enormement pour votre aide et mon probleme est finalement reglé avec la solution de ucfoutu, soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub fichier_Update3()
    Open "\\Srv41101a07\WebRoot\scripts\Update.js" For Input As #1
            strtext = Input(LOF(1), #1)
       Close #1
       strtext = Replace(strtext, "document.form1.DebutMM1.value = '07'", "document.form1.DebutMM1.value = '10'")
       Open "\\Srv41101a07\WebRoot\scripts\Update.js" For Output As #1
            Print #1, strtext
       Close #1
    End Sub
    Par ailleurs, Jackouya, lorsque je remplace Input par line Input, cela marche tres bien aussi . Cependant, je dois laisser Print et non pas Write car avec Write, cela me mets des guillemets entre chaque ligne de code dans mon fichier .js

    Je suis content que mon petit probleme a lancé un debat aussi interessant entre vous tous et j'en ai appris vraiment beaucoup. Je vous remercie enormement a tous pour votre professionnalisme et vos aides et conseils.

    UN GRAND MERCI !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 17/02/2012, 11h57
  2. [JexcelAPI]Modifier un fichier excel
    Par sissi_l dans le forum Documents
    Réponses: 3
    Dernier message: 01/06/2007, 01h36
  3. [DOM] [Débutant(e)] Modifier un fichier XML avec DOM
    Par macks dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 05/07/2005, 14h13
  4. [jar] Comment modifier un fichier jar
    Par newfsch dans le forum JBuilder
    Réponses: 5
    Dernier message: 18/07/2004, 14h25
  5. [LG]modifier un fichier
    Par fofovi72 dans le forum Langage
    Réponses: 3
    Dernier message: 15/04/2004, 21h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo