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
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
A voir également:
- Macro excel enregistrez sous multiples
- Liste déroulante excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Formule excel - Guide
- Macro word - Guide
- Si et excel - Guide
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
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
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
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 )
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 )
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
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
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
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
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
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
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
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
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
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
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 ;-)
c'est désormais, un vrai bonheur de faire les mises à jours !
(désolé pour la feuille cachée ;-)