Macro excel enregistrez sous multiples

Résolu/Fermé
tchernosplif Messages postés 600 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 21 juin 2015 - Modifié par tchernosplif le 15/11/2010 à 14:24
tchernosplif Messages postés 600 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 21 juin 2015 - 18 nov. 2010 à 01:24
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 dimanche 8 novembre 2009 Statut Membre Dernière intervention 21 juin 2015 244
Modifié par tchernosplif le 16/11/2010 à 10:39
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 dimanche 8 novembre 2009 Statut Membre Dernière intervention 21 juin 2015 244
Modifié par tchernosplif le 17/11/2010 à 00:40
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 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 210
17 nov. 2010 à 07:31
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 dimanche 8 novembre 2009 Statut Membre Dernière intervention 21 juin 2015 244
17 nov. 2010 à 19:57
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 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 210
Modifié par eriiic le 17/11/2010 à 23:52
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 dimanche 8 novembre 2009 Statut Membre Dernière intervention 21 juin 2015 244
18 nov. 2010 à 01:24
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