Macro excel enregistrez sous multiples

Résolu
tchernosplif Messages postés 600 Date d'inscription   Statut Membre Dernière intervention   -  
tchernosplif Messages postés 600 Date d'inscription   Statut Membre Dernière intervention   -
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.


A voir également:

4 réponses

tchernosplif Messages postés 600 Date d'inscription   Statut Membre Dernière intervention   247
 
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
tchernosplif Messages postés 600 Date d'inscription   Statut Membre Dernière intervention   247
 
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
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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
tchernosplif Messages postés 600 Date d'inscription   Statut Membre Dernière intervention   247
 
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
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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
tchernosplif Messages postés 600 Date d'inscription   Statut Membre Dernière intervention   247
 
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