macro pour ouvrir "enregistrer en tant que page web" une plage de cellule

tempo

XLDnaute Nouveau
Bonjour le forum,
Je souhaiterais savoir s'il existe une macro qui, après sélection d'une plage de cellules, ouvre la boîte de dialogue "enregistrer en tant que page web" afin de n'enregistrer que ladite plage de cellules.
En mode enregistrement de macro, lorsque que je sélectionne la plage de cellule et que j'enregistre la sélection en tant que page web, voici le résultat:

Sub save()
Range("B1:J32").Select
With ActiveWorkbook.PublishObjects.Add(xlSourceRange, _
"C:\Documents and Settings\Jabu\Bureau\essai.htm", "Feuil1", "$B$1:$J$32", _
xlHtmlStatic, "Copie de Copie de UPDATE-THB_17327", "")
.Publish (True)
.AutoRepublish = False
End With
ChDir "C:\Documents and Settings\Jabu\Bureau"
End Sub

Le problème, c'est que je souhaite afficher la boîte de dialogue "enregistrer en tant que page web" pour cocher la case "sélection" qui se présente (le mieux serait d'ailleurs qu'elle soit cocher par défaut), or cette macro enregistre directement!
merci de m'aider.
 

tempo

XLDnaute Nouveau
Re : macro pour ouvrir "enregistrer en tant que page web" une plage de cellule

Pour être plus clair:
Comment puis-je enregistrer une plage de cellule avec ce type code?
CommandBars.FindControl(ID:=748).Execute
L'ID n'est apparemment pas le bon, car le boîte de dialogue n'ai pas la même que celle ci-jointe.
Quelqu'un connait le bon numéro?
 

Pièces jointes

  • objectif.jpg
    objectif.jpg
    53.9 KB · Affichages: 159
  • objectif.jpg
    objectif.jpg
    53.9 KB · Affichages: 188
  • objectif.jpg
    objectif.jpg
    53.9 KB · Affichages: 193

Staple1600

XLDnaute Barbatruc
Re : macro pour ouvrir "enregistrer en tant que page web" une plage de cellule

Bonsoir


Regardes dans ce fil
Fil XLD

EDITION: à tester sur ton pc
Un exemple qui fonctionne chez moi
Code:
Sub Sauve_EN_PageWEB()
Dim wb As Workbook
Set wb = ActiveWorkbook
With wb.PublishObjects.Add(xlSourceRange, _
"C:\Documents and Settings\Jabu\Bureau\essai.htm", "Feuil1", "$B$1:$J$32", _
xlHtmlCalc, "Copie de UPDATE-THB_17327")
.Publish (True)
End With
End Sub
 
Dernière édition:

tempo

XLDnaute Nouveau
Re : macro pour ouvrir "enregistrer en tant que page web" une plage de cellule

Merci Staple1600,
mais ce code enregistre directement en page web, or je souhaite simplement ouvrir la boîte de dialogue "enregistrer en tant que page web".
En effet celle-ci est plus complète que "enregistrer sous", dont le code VBA pour l'ouvrir est le suivant: fileSaveName = Application.GetSaveAsFilename(fileFilter:="Page Web(*.htm), *.htm")
Lorsque je sélectionne une plage de cellules puis que je fais "fichier" et "enregistrer en tant que page web", j'ai le choix entre "classeur entier" et "sélection". Je souhaite justement enregister la sélection en tant que page web, d'où mon attrait pour un code permettant d'ouvrir cette boîte de dialogue.
Cordialement,
Geoffroy.
 

tempo

XLDnaute Nouveau
Re : macro pour ouvrir "enregistrer en tant que page web" une plage de cellule

Bonjour le forum,
je ne parviens pas à trouver le code VBA qui ouvre la boîte de dialogue "enregistrer en tant que page web".
Quelqu'un peut-il m'aider?
Merci!

PS: je dispose de excel 2003 sous windows XP sp2.
 

Staple1600

XLDnaute Barbatruc
Re : macro pour ouvrir "enregistrer en tant que page web" une plage de cellule

Re



C'est normal puisque c'est un élément de celle de Enregister Sous
' CommandBars.FindControl(ID:=748).Execute

C'est l'item 3

(J'ai cherché sur le net avant d'affirmer cela)

(Mais j'aurai du mieux chercher avant de l'affirmer ;) )
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : macro pour ouvrir "enregistrer en tant que page web" une plage de cellule

Bonjour


Fais ce test
Crée un nouveau fichier Excel

Mets y quelques données
(Ex: En A1:C12 saisis la lettre a dans ces cellules)

Sélectionnes ta plage de cellules

Fais Enregistrer sous
Choisis comme [Type de Fichier] PageWeb.htm

Et tu verras s'afficher la même boite de dialogue

que [Enregister en tant que page Web]

Donc cette boite de dialogue est "un item" de la boite de dialogue
[Enregistrer sous]

J'ai cherché sur le net et je n'ai pas trouvé comment l'afficher directement.
 

Staple1600

XLDnaute Barbatruc
Re : macro pour ouvrir "enregistrer en tant que page web" une plage de cellule

Bonsoir


Bah finalement, c'est possible comme ça

(comme quoi quand on cherche on trouve) ;)

Code:
Sub AFFICHE_ENREG_PAGE_WEB()
Application.CommandBars.FindControls(ID:=3823).Item(1).Execute
End Sub


Enfin cela ne fait qu'afficher, pour le reste...
 

tempo

XLDnaute Nouveau
Re : macro pour ouvrir "enregistrer en tant que page web" une plage de cellule

SUPER!!!:)
Merci Staple1600 pour tout le temps que tu m'as consacré. Ton dernier code est exactement ce que je cherchais. T'es un As!
Je ne sais pas où et comment tu as trouvé ce code, mais je te remercie chaleureusement.

Cette commande reste mystérieuse pour moi, il y a peut-être une liste ou un tableau qui récapitule les fonctions de tous les numéros d'ID et d'items de cette fameuse boîte de dialogue "enregistrer sous"??? Je n'en ai pas trouvé de mon côté... Je dois pas chercher au bon endroit.;)

Sans vouloir abuser de ton temps et de ta patience, je me demandais s'il était possible que la case "sélection" soit cochée par défaut? Est-ce qu'il s'agit du fameux item 3 auquel tu faisais précédemment allusion?:confused:

Encore MERCI pour ton aide!!!
Cordialement,
Geoffroy.
 

Staple1600

XLDnaute Barbatruc
Re : macro pour ouvrir "enregistrer en tant que page web" une plage de cellule

Bonsoir



J'imagine que c'est possible avec [FONT=Courier New, Courier, mono]SendKeys

Cela semble fonctionner sur mon poste
Code:
Sub Macro1()
'Coche Sélection
SendKeys "{TAB},{TAB},{TAB},{TAB},{TAB},{TAB},{TAB},{TAB},{RIGHT}"
Application.CommandBars.FindControls(ID:=3823).Item(1).Execute
End Sub
Code:
Sub Macro2()
'enregistre en page web sans prévenir l'utilisateur
'Nom par défaut: Page.htm
SendKeys "{TAB},{TAB},{TAB},{TAB},{TAB},{TAB},{TAB},{TAB},{RIGHT},{ENTER}"
Application.CommandBars.FindControls(ID:=3823).Item(1).Execute
End Sub
[/FONT]
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : macro pour ouvrir "enregistrer en tant que page web" une plage de cellule

RE



Et pour finir après avoir bien galérer pour trouver la soluce
(1h21! pour trouver lol )

Code:
Sub Macro3()
'Déclarations
Dim Nom As String
'Attribution du nom de la page web
Nom = "toto.htm"
'Envoie le nom dans la boite de dialogue
SendKeys Nom
'Coche Sélection et Enregistre
SendKeys "+{TAB},+{TAB},+{TAB},{RIGHT},{ENTER}"
Application.CommandBars.FindControls(ID:=3823).Item(1).Execute
End Sub
 

tempo

XLDnaute Nouveau
Re et Fin : macro pour ouvrir "enregistrer en tant que page web" une plage de cellule

:D
Avis au Forum : Staple1600 est un Dieu!!!:)
Merci mille fois pour ton aide!!!!!!!!!!!!!!!!!!!!
Tout marche parfaitement.
:D

Je pense que cette discussion (ou plutôt ce cours de Staple1600!;)) est bel et bien terminé au vu de son intitulé.

Bravo encore une fois à Staple1600 pour avoir su répondre à toutes mes questions!

Au plaisir,
Geoffroy.

PS: On apprend vite et bien sur ce forum!
 

Discussions similaires

Statistiques des forums

Discussions
314 645
Messages
2 111 536
Membres
111 184
dernier inscrit
amiko