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 :

Création d'une page PHP ou HTML depuis un fichier.bat [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 16
    Par défaut Création d'une page PHP ou HTML depuis un fichier.bat
    Bonjour à tous,

    Ma question peut sembler bête, mais je tourne en rond depuis quelques jours.

    Description de mon objectif :

    J'ai sur mon site e-commerce une génération de fichiers PHP issus de mes articles. Je souhaite garder ces articles qui ne sont plus disponibles en ligne jusqu'à mon prochain réapprovisionnement du fournisseur. Pour ce faire, j'utilise un fichier Excel dans lequel j'ai le nom de ma page.
    Exemple :
    polo-fred-perry-M1200-fille.php
    polo-ben-sehrman-logo-male.php
    ...
    je change le header de ces pages comme suit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php  
    header('Status: 301 Moved Permanently',false, 301); 
    header('Location: http://www.idols.fr); 
    ?>
    Afin d'obtenir ce résultat j'ai fait des concaténations de cellules dans mon fichier Excel et ensuite je copie le résultat dans un fichier .bat qui me génère le fichier PHP ou html



    Ensuite le colle le résultat de la colonne G dans un fichier texte que je renomme en .bat



    Le code utilisé est sur une seule ligne, pour plus de visibilité je suis revenu à la ligne dans l'éditeur de texte
    Fichier test2.bat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @echo off
    echo ^<?php^  >chaussure-fredperry-bleu.php
    echo ^header('Status: 301 Moved Permanently',false, 301);^ >>chaussure-fredperry-bleu.php
    echo ^header('Location: http://www.idols.fr');^ >>chaussure-fredperry-bleu.php
    echo ^?^> >>chaussure-fredperry-bleu.php
    Résultat du fichier test2.bat :
    et j'obtiens un fichier PHP contenant le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php  
    header('Status: 301 Moved Permanently',false, 301); 
    header('Location: http://www.idols.fr); 
    ?>
    Dorénavant, je souhaiterai modifier mes fichiers créés PHP avec ceci en une seule ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="FR"><style type="text/css" media="all">@import "NeD2.css";</style><head><title>titre de la page a modifier</title><meta name="description" content="explication de la page à modifier" /><meta name="keywords" content="mots clé à moficier"/><meta http-equiv="content-language" content="fr" /></head><body><?php include("iframe2.php");?></body></html>
    voici le code en plusieurs lignes pour plus de visibilité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="FR">
    <style type="text/css" media="all">@import "NeD2.css";</style>
    	<head>
    		<title>titre de la page a modifier</title>
    		<meta name="description" content="explication de la page à modifier" />
    		<meta name="keywords" content="mots clé à moficier"/>
    		<meta http-equiv="content-language" content="fr" />
    	</head>
    	<body>
    	<?php include("iframe2.php");?>
    	</body>
    </html>
    Comment puis je faire dans mon nouveau fichier bat un "echo" de ma ligne entière sans qu'il y est des erreurs ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @echo off
    echo ^<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="FR"><style type="text/css" media="all">@import "NeD2.css";</style><head><title>titre de la page a modifier</title><meta name="description" content="explication de la page à modifier" /><meta name="keywords" content="mots clé à moficier"/><meta http-equiv="content-language" content="fr" /></head><body><?php include("iframe2.php");?></body></html>^ >test2.html
    Existe-t-il un moyen plus simple de générer mes fichiers PHP ?
    Vous l'aurez compris, je ne suis pas programmeur, quand j'ai montré ma méthode à un client au magasin qui est informaticien , il m'a dit que j'étais complètement cinglé de faire cela avec Excel de cette manière, cependant il n'a pas été capable de m'aider donc ...

    j'ai trouvé sur ce site une fonction qui permet de générer un fichier excel

    http://boisgontierjacques.free.fr/pa...s.htm#Ecriture

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub ExportTxtChamp()
      repertoire = ThisWorkbook.Path
      Open repertoire & "\x.txt" For Output As #1
      Set champ = [C1].CurrentRegion
      For lig = 1 To champ.Rows.Count
        ligne = ""
        For col = 1 To champ.Columns.Count
          ligne = ligne & champ.Cells(lig, col) & ";"
        Next col
        Print #1, Left(ligne, Len(ligne) - 1)
      Next lig
      Close #1
    End Sub
    Cela se rapproche de mon objectif : il faudrait que j'imprime chaque cellule dans un fichier texte différent mais la tâche m'est difficile avec le code, je n'y comprends pas grand chose.

    Je suis preneur de toutes suggestions, conseils ..

    Voilà, merci pour votre aide.

  2. #2
    Membre émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Par défaut
    Bonjour à tous
    Bonjour arno_mrs13

    Je n'ai pas très bien compris ce que tu cherches !!!!
    Voici un bout de code pour créer un fichier .php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Sub creer_fich_php()
    Open "d:\fich_php.php" For Output As #1
    Print #1, "<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//FR"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"">"
    Print #1, "<html xmlns=""http://www.w3.org/1999/xhtml"" lang=""FR"">"
    Print #1, "<style type=""text/css"" media=""all"">@import ""NeD2.css"";</style>"
    Print #1, "<head>"
    Print #1, "  <title>titre de la page a modifier</title>"
    Print #1, "  <meta name=""description"" content=""explication de la page à modifier"" />"
    Print #1, "  <meta name=""keywords"" content=""mots clé à moficier""/>"
    Print #1, "  <meta http-equiv=""content-language"" content=""fr"" />"
    Print #1, "</head>"
    Print #1, "<body>"
    Print #1, "  <?php include(""iframe2.php"");?>"
    Print #1, "</body>"
    Print #1, "</html>"
    Close #1
    End Sub
    A toi de l'adapter
    Après il suffit de le déposer sur ton site. Regarde le dernier post ici : http://www.developpez.net/forums/d61...chier-serveur/

    Eric

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 16
    Par défaut je me suis mal expliqué lors de mon post initial
    Bonjour Eric,

    Merci pour ta réponse, cependant je n'ai peu être pas exprimé correctement mon problème. Je souhaite générer des fichiers PHP à partir d'un fichier .BAT.

    J'ai expliqué précédemment la façon dont je procédais pour générer des fichiers php à partir d'un fichier excel et .bat (imprimés écrans), les noms de fichiers créés vont être différents (et le contenu le sera également). Dans le code que tu me donnes en exemple, je ne peux créer qu'un seul fichier php à la fois or dans celui que j'utilise avec mon fichier .bat je peux en créer par lot.

    Je pense que ma question est spécifique au script batch de MS, à savoir comment utiliser la fonction echo pour afficher une ligne de code html sans obtenir d'erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="FR"><style type="text/css" media="all">@import "NeD2.css";</style><head><title>titre de la page a modifier</title><meta name="description" content="explication de la page à modifier" /><meta name="keywords" content="mots clé à moficier"/><meta http-equiv="content-language" content="fr" /></head><body><?php include("iframe2.php");?></body></html>

  4. #4
    Membre émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Par défaut
    Bonjour à tous
    Bonjour arno_mrs13

    Non, non, tu as bien exprimé ton pb, mais j'ai peut-être lu quelque peu en travers .......
    Reprenons, tu dis :
    "....J'ai sur mon site e-commerce une génération de fichiers PHP issus de mes articles....." donc tes fichiers php sont créés.
    "....Pour ce faire, j'utilise un fichier Excel dans lequel j'ai le nom de ma page...." Veux-tu modifier les fichiers .php de ton serveur ou créer de nouveaux fichier php ?

    Pourquoi passer de VBA _ .bat _ php alors que tu peux faire seulement VBA _ php ?

    Dans l'exemple que tu donnes, il y a 13 lignes. Ci-dessous le code avec une boucle pour lire celles-ci ("B11 à B23") et pour créer un fichier php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub creer_fich_php_02()
    Dim i As Integer
    Dim var As String
     
    Open "d:\fich_php_02.php" For Output As #1
    For i = 1 To 13
        var = Range("B" & i + 10)
        Print #1, var
    Next i
    Close #1
     
    End Sub
    bien entendu tu peux mettre le tout en colones, à toi de voir, et d'adapter.

    J'espère que cette fois-ci, cela t'aidera.
    Eric

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 16
    Par défaut
    Bonsoir Eric,

    oui, les fichiers php sont créés mais immédiatement supprimés lorsque mon stock passe à 0 (car j'utilise 1 seul stock pour le magasin sur rue et en ligne) donc ils n'apparaissent plus dans les résultats de recherches des moteurs.
    C'est pourquoi je créé à chaque fois un lot de fichier php avec des noms de pages qui correspondent à mes articles en attentes de réassort du fournisseur.

    Je vais mettre en pratique tes conseils et ton code pour générer les fichiers.

    Merci pour ton aide, je te tiens informé des avancements.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 16
    Par défaut Est ce que je peux créer des noms de fichier php différents
    Bonjour Eric,
    J'arrive bien à générer le fichier php en question, par contre je me demande s'il est possible de générer des noms de fichiers unique de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub creer_fich_php_02()
    Dim i As Integer
    Dim var As String
    Dim nomfichierphp As String
     
    For i = 2 To 18
    Open "D:\testIDOLS.FR\nomfichierphp" For Output As #1
        var = Range("B" & i)
        nomfichierphp = Range("D" & i)
        Print #1, var
        Print #1, nomfichierphp
    Next i
    Close #1
     
    End Sub
    car j'ai une fenêtre débogage qui apparaît
    oui c'est trés compliqué à faire
    Merci

    J'ai trouvé cette formule pour générer les noms de fichiers mais je n'arrive pas à la fusionner avec celle que tu m'a transmise pour écrire dans ces fichiers

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Sub creer_fich_php_02()
    Dim i As Integer
    Dim var As String
    Dim MonFichierphp As String
     
    For i = 2 To 18
    MonFichierphp = "C:\" & Range("D" & i) & ".php"
    ligne1 = Range("D" & i)
    f = FreeFile()
    Open MonFichierphp For Append As #f
    Print #f, ligne1
    Open MonFichierphp For Output As #1
    var = Range("B" & i)
    Print #1, var
    Next i
    Close #f
     
    End Sub

  7. #7
    Membre émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Par défaut
    Bonsoir

    Si j'ai bien compris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub creer_fich_php_03()
    Dim a As Integer
    Dim i As Integer
    Dim var As String
     
    For a = 1 To 1  'boucle uniquement sur la ligne 1 pour exemple
        Open "d:\" & Range("A" & a) & ".php" For Output As #1
        'les données sont sur la ligne 1 de B1 à N1 pour exemple
        For i = 2 To 14
            var = Cells(a, i)
            Print #1, var
        Next i
    Next a
     
    Close #1
    End Sub
    Le nom du fichier est en A1, et les données sont sur la ligne 1 de B1 à N1
    Eric

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/08/2014, 13h57
  2. [Batch] Création d'une page PHP ou HTML depuis un fichier.bat
    Par arno_mrs13 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 13/07/2012, 19h03
  3. Générer une page html depuis un fichier texte
    Par Thordax dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 11/04/2006, 08h29
  4. Réponses: 8
    Dernier message: 08/02/2006, 15h16
  5. Réponses: 5
    Dernier message: 09/01/2006, 11h46

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