Macro excel enregistrez sous multiples

Résolu
tchernosplif Messages postés 714 Statut Membre -  
tchernosplif Messages postés 714 Statut Membre -
Bonjour,

J'utilise un fichier excel pour générer des fichiers html.

http://www.cijoint.fr/cjlink.php?file=cj201011/cijr9bExL1.xls
http://www.cijoint.fr/cj201011/cijr9bExL1.xls

Fonctionnement:
Pour ajouter une entrée, dans l'onglet "Listing", je rajoute une adresse et une image dans les colonnes bleues et je sélectionne la/les catégories dans les colonnes jaunes.

A partir de cet onglet "Listing" sont générés automatiquement tous las autres onglets (qui correspondent aux catégories)

Dans chaque onglet (catégories) une macro que je lance avec Ctrl+E actualise le tri (decroissant) et sélectionne les colonnes B et C.

Le contenu des colonnes B et C est collé dans un fichier html.

J'ai donc un fichier html pour chaque catégorie, et c'est un peu long (chiant) de remettre à jour tous les fichiers un par un.

Je cherche donc à mettre un bouton magique qui enregistrerait le colonne B et C d'un onglet dans un fichier dont le chemin/nom serait ecrit dans une cellule.

Idéalement, ce bouton enregistrerait tous les onglets en même temps.

Problème1: je ne sais pas faire ce genre de macro.
Problème 2: la première macro Ctrl+E doit être éxecutée sur chaque onglet.

Merci d'avance pour votre aide précieuse.

4 réponses

  1. tchernosplif Messages postés 714 Statut Membre 249
     
    j'ai fait quelques essais hier soir, j'ai opté pour copier les 2 colonnes à copier dans un nouvel onglet afin de sauvegarder l'onglet au format Text (ActiveWorbook.Save.as), mais le problème c'est qu'il y a des guillemets qui s'ajoutent un peu partout (caractères spéciaux ?)....merci pour votre aide
    0
  2. tchernosplif Messages postés 714 Statut Membre 249
     
    j'ai finalement réussi à exporter du code html sans ces satanées guillemets.

    Tel quel, je dois répéter l'action sur chaque onglet.

    Est-il possible à votre avis de traiter les 19 onglets en 1 seule fois ?
    ( à chaque fois un message de confirmation apparaît pour remplacer un fichier déjà existant)

    Pour info, la macro: (module 2, s'éxécute avec Ctrl+e)
    Sub Macro1()

    '
    Range("A9:C400").Sort Key1:=Range("A9"), Order1:=xlDescending, Header:= _
    xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal
    Selection.AutoFilter Field:=2, Criteria1:="<>"

    Dim MonEXE As Long
    Dim fichier As String
    Dim MonExcel As Workbook
    Dim C As Boolean
    '
    Set MonExcel = ThisWorkbook
    With ActiveSheet
    '.Range("A1").CurrentRegion.Select
    Range("B1:C400").Select
    Selection.Copy
    End With
    '
    MonEXE = Shell("notepad.exe" & fichier, vbNormalFocus)
    AppActivate MonEXE '"Sans titre"
    Call SendKeys("^V", True)
    Application.CutCopyMode = False
    fichier = "C:\" & [A1].Value

    Call SendKeys("%FR" & fichier & "{ENTER}", True)

    End Sub

    (il faut indiquer le nom du fichier dans le cellule A1, par exemple: action.html )
    0
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    2 réponses vite fait, sans ton fichier difficile de tester.

    1) boucle :
    Dim ws As Worksheet
    For Each ws In Worksheets
    If ws.Name <> "Listing" Then
    'ton code
    endif

    2) à chaque fois un message de confirmation apparaît pour remplacer un fichier déjà existant
    supprime-le avec kill fichier avant d'enregistrer

    eric
    0
    1. tchernosplif Messages postés 714 Statut Membre 249
       
      Bonjour eriiic,
      merci pour ta réponse.

      malheureusement je n'arrive pas à appliquer tes conseils (ce n'est faute d'essayer)

      je te donne le lien de mon fichier
      http://www.cijoint.fr/cj201011/cijKHTWOHN.xls

      merci de jeter un oeil
      0
  4. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonsoir,

    ce n'est faute d'essayer
    Je comprend, j'y suis arrivé mais non sans mal...
    J'ai changé pas mal de trucs dans ta procédure, je pense que ça correspond à ce que tu voulais mais contrôle quand même les résultats.
    J'ai dû ajouter une tempo, il faut absolument la laisser au milieu des 2 sendkeys (sinon des désynchronisations aléatoires se produisent, c'est ce qui m'a bien occupé ma soirée...).

    J'avais un curieux fichier 148.txt qui se créait et faisait planter (au passage merci pour la feuille cachée... ;-) ), du coup j'ai ajouté un test : un fichier ne se crée que si en A1 se trouve une chaine qui se termine par .html

    Je n'ouvre qu'une fois notepad au début, il faut laisser cette structure, il refuse de s'ouvrir à l'intérieur d'un with (???)
    Et bien sûr éviter les clics nerveux n'importe où pendant le déroulement de la macro

    http://www.cijoint.fr/cjlink.php?file=cj201011/cijJIvfSIj.zip

    eric
    0
    1. tchernosplif Messages postés 714 Statut Membre 249
       
      un grand MERCI eriiic , ça fonctionne parfaitement.

      c'est désormais, un vrai bonheur de faire les mises à jours !

      (désolé pour la feuille cachée ;-)
      0