Sunteți pe pagina 1din 32

¿Cómo arreglar ñ, acentos y carácteres extraños en páginas web?

Varias
soluciones:

Problema: Se ven carácteres raros en lugar de los acentos o carácteres especiales como la Ñ o ¿

Solución: El origen del problema puede ser variado por lo que la solución puede variar. Las pongo
en el orden personal de "popularidad".
• Codificación del archivo, tiene que coincidir con el formato que envia el servidor; ANSI,
UTF-8 etc, si desconoces que juego utiliza el servidor es cuestion de prueba y error, y probar caso
por caso.
• Indicar mediante un tag "meta" la codificación usada en la página:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />


• Indicar en el archivo que genera la pagina la codificacion de lo que envia (por ejemplo en
PHP y UTF-8):

header('Content-Type: text/html; charset=UTF-8');


• Indicar en el archivo .htaccess la codificación por defecto

AddDefaultCharset utf-8
• Revisar el contenido por si viene generado desde una base de datos. Revisar si esta
codificado en origen o si se debe antes descodificar para mostrarlo (funcion urldecode(str) por
ejemplo).
• Si no hay mas remedio y se precisa una solución rápida, utilizar códigos HTML para generar
dichos carácteres:

Convertir caracteres UTF-8 con PHP


• Por Miguel Angel Alvarez
• Seguir a midesweb

• 24 de septiembre de 2008
• 33 Comentarios
• PHP
Funciones PHP para convertir caracteres UTF-8 y que se vean bien los acentos y otras letras del
alfabeto latino. Función decode UTF8 PHP.
En ocasiones los textos de la página web pueden contener caracteres raros en lugar de acentos u
otras letras propias del idioma español, como la ñ o las letras con diéresis y de otros idiomas
latinos. Esto suele ocurrir en casos en que la base de datos trabaje en un juego de caracteres
distinto que la página, o que los datos estén mal cargados en la misma. Generalmente estos
errores surgen por un tratamiento inadecuado del juego de caracteres UTF-8, que no están
procesados como UTF-8, sino como si fueran ISO-8859-1. Con PHP podemos decodificar esos
caracteres para que a la hora de mostrar los textos en la página aparezcan correctamente. Para
ello existen una funciones que vamos a comentar en este artículo de DesarrolloWeb.com.

Cuando vemos incorrectamente un texto nos pueden aparecer textos como estos:

Solución útil y apañada a UTF-8

Este texto tiene caracteres codificados en UTF8, que debemos decodificar para que aparezcan
correctamente los acentos y demás símbolos del alfabeto latino.

Decodificar una cadena UTF-8 con PHP - decode utf8 php

Existe una función de PHP que realiza el trabajo de conversión de los caracteres UTF8 a sus
correspondientes códigos reales.

La función se llama utf8_decode() y lo que hace es convertir una cadena que realmente utiliza ISO-
8859-1 pero que tiene caracteres codificados a con UTF-8. La conversión genera el string en ISO-
8859-1 pero con un sólo byte para todos los caracteres, con lo que se verán correctamente.

Se utiliza así:

utf8_decode("Solución útil y apañada a UTF-8");

Devolverá una cadena el texto correctamente escrito:

Solución útil y apañada a UTF-8

Codificar una cadena al juego de caracteres UTF-8 - encode utf8 php

Existe una función para hacer justo el paso contrario, que vamos a ver también en desarrollo web
.com. Es decir, partiendo de una cadena en el juego de caracteres ISO-8859-1, obtener la
correspondiente traducción a UTF-8.

Esto lo podemos necesitar, por ejemplo, si nuestra base de datos está definida con UTF-8 y
tenemos entrada de datos ISO-8859-1.

El uso es bien simple:

echo utf8_encode("Mañanas de programación PHP");

Y devolverá el correspondiente string convertido a UTF-8, que si lo mostramos en una página que
utiliza el juego de caracteres ISO-8859-1, se vería de esta manera:

Mañanas de programación PHP

Autor
Miguel Angel Alvarez
Seguir a midesweb
Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT.
Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.
Subir
Manual
• Taller de PHP
Comprimir archivos Javascript desde PHP
Convertir los caracteres especiales con PHP, sin alterar etiquetas HTML
Compartir


• Tweet



Comentarios
Enviar un comentario al artículo
Fernando
02/10/2008
EN JSP TAMBIEN HAY UNA FUNCION COMO LA DE PHP ?
Marcar como spam
Sergio
04/11/2008
Como hago para aplicar esta función a este fragmento del codigo que viene de tomar los datos de
un formulario html:

-------------------------------------------------
Nombre: ".$_POST['nombre']."
Apellido: ".$_POST['apellido']."
Empresa / Institución: ".$_POST['empresa']."
Area y Cargo: ".$_POST['area']."
E-mail: ".$_POST['correo']."
Ciudad: ".$_POST['ciudad']."
País: ".$_POST['pais']."
Teléfono: ".$_POST['telefono']."
------------------------------------------------

Este fragmento lo que hace es tomar los datos de un formulario html y enviarlo por mail. Pero al
mail me llegan todos los datos del formulario sin codificar y es muy dificil de leer.
Que puedo hacer?? como aplico esta función?
Desde ya muchas gracias.
Marcar como spam
Carlos Salas
14/11/2008
Para aplicarlo a un formulario de correo lo que se debe hacer es algo asi:

ejm:
$nombre=$_GET['Nombre'];
...
$msg .= " Nombre: ".utf8_decode($nombre);
...
en el caso anterior como ven, la funcion se aplica en la linea del mensaje. No directamente en la
variable que está siendo rescatada del formulario...
en caso de usar campos adiconales fijos (por ejemplo):
$msg .= " N".utf8_decode(ú)."mero de ni".utf8_decode(ñ)."os: ".$niños;
---> en este caso la función se aplica a un texto específico que será enviado conjuntamente con el
mensaje, seguido tambien de una variable que no hace uso de la función.

Lo detallaría más pero estoy algo ocupado... si requieren ayuda, pueden escribirme al correo, y
cuando pueda; les contesto.

Suerte, espero que les sirva.


Marcar como spam
Vicente López
08/5/2009
Excelente...
Después de 2 horas busque y busque por fin lo encontré, muchas gracias por el artículo.

Saludos.
Marcar como spam
ttorrentte
31/8/2009
Gracias Gracias Gracias
Perfecto, llevaba ya un rato enfrascado con lo mismo, no podía hacer consultas con acentos y con
esta función se han solucionado, muchas gracias.
Marcar como spam
Carlos
04/9/2009
Reconocer utf-8
Hola amigos de DW. Aprovechando este tema sobre UTF-8 presento una consulta.
Estoy adaptando un libro de visitas que funciona en Flash, cargando variables desde un archivo
php. Es conocido, de flash-db.com
El tema es que no sé cómo ni donde escribir dentro del php el código para que reconozca acentos,
ñ y otros caracteres especiales.
A continuación el php en cuestión, y desde ya gracias por su ayuda.

<?php

// If you are using an old version of php, remove the next set of lines.
// or use $HTTP_POST_VARS["..."] instead.

$Submit = $_POST["Submit"];
$Nombre = $_POST["nombreV"];
$Email = $_POST["emailV"];
$Barrio = $_POST["barrioV"];
$Comentario = $_POST["comentarioV"];
$NumLow = $_REQUEST["NumLow"];
$NumHigh = $_REQUEST["NumHigh"];

// Replace special characters - you can remove the next 5 lines if wanted.
$Nombre = ereg_replace("[^A-Za-z0-9 ]", "", $Nombre);
$Email = ereg_replace("[^A-Za-z0-9 @.-/']", "", $Email);
$Comentario = ereg_replace("[^A-Za-z0-9 @.-/]", "", $Comentario);
$Barrio = ereg_replace("http://", "", $Barrio);
$Barrio = ereg_replace("[^A-Za-z0-9 @.-/:]", "", $Barrio);

// Remove slashes.
$Nombre = stripslashes($Nombre);
$Email = stripslashes($Email);
$Barrio = stripslashes($Barrio);
$Comentario = stripslashes($Comentario);

//
################################################################################
###
// ########## Reading and Writing the new data to the GuestBook Database #############

if ($Submit == "Yes") {

// Next line tells the script which Text file to open.


// La siguiente línea le dice a la secuencia de comandos que el archivo de texto para abrir.
$filename = "GuestBook.txt";

// Opens up the file declared above for reading

$fp = fopen( $filename,"r");


$OldData = fread($fp, 80000);
fclose( $fp );

// Gets the current Date of when the entry was submitted


$Today = (date ("d/m/Y",time()));

// Puts the recently added data into html format that can be read into the Flash Movie.
// You can change this up and add additional html formating to this area. For a complete listing of
all html tags
// you can use in flash - visit:
http://www.macromedia.com/support/flash/ts/documents/htmltext.htm

$Input = "Nombre: <b>$Nombre</b><br>Barrio: <b><u>$Barrio</u></b><br>Comentarios:


<b>$Comentario</b><br><i><font size="-1">Fecha: $Today</font><br><br>.:::.";
/* This Line adds the '&GuestBook=' part to the front of the data that is stored in the text file. This
is important because without this the Flash movie would not be able to assign the variable
'GuestBook' to the value that is located in this text file */

$New = "$Input$OldData";

// Opens and writes the file.

$fp = fopen( $filename,"w");


if(!$fp) die("&GuestBook=cannot write $filename ......&");
fwrite($fp, $New, 800000);
fclose( $fp );
}

//
################################################################################
###
// ######### Formatting and Printing the Data from the Guestbook to the Flash Movie ##

// Next line tells the script which Text file to open.


// La siguiente línea le dice a la secuencia de comandos que el archivo de texto para abrir.
$filename = "GuestBook.txt";

// Opens up the file declared above for reading

$fp = fopen( $filename,"r");


$Data = fread($fp, 800000);
fclose( $fp );

// Splits the Old data into an array anytime it finds the pattern .:::.
$DataArray = split (".:::.", $Data);

// Counts the Number of entries in the GuestBook


$NumEntries = count($DataArray) - 1;

print "&TotalEntries=$NumEntries&NumLow=$NumLow&NumHigh=$NumHigh&GuestBook=";
for ($n = $NumLow; $n < $NumHigh; $n++) {
print $DataArray[$n];
if (!$DataArray[$n]) {
Print "<br><br><b>No hay mas comentarios</b>";
exit;
}
}
?>
Marcar como spam
alvaro
29/10/2009
excelente
muy bueno me funcionó 100pts saludos
Marcar como spam
Hector
18/11/2009
PROBLEMAS CON UNA CONSULTA DESDE PHP
Bueno mi problema es el siguiente.

Tengo la pagina web de un cliente en la cual el contenido es modificado desde un manejador de


contenidos disenado para la pagina. La misma tiene una lista de productos pero al momento de
hacer la inclucion de uno con sus caracteristicas cada capo de datos es escrito en las tablas de la
base de datos, pero los caracteres son modificados, me refiero a las tildes acentos etc... Esto solo
pasa si yo hago las modificaciones de los dastos de un producto determinado desde la
herramienta de un manejador de contenido que esta en edit_pro.php, pero si me meto en las
tablas de la base de datos por phpMyadmin y realizo las modificaciones de las caracteristicas del
producto desde ahi al momento de verlo en la pagina inexplicablemente esta bien. Pero si vuelvo a
entrar al manejador, a pesar que se encuentran bien las tablas, si realizo una modificacion desde
el edit_pro.php aunque no toque los caracteres, altera todo lo que tenga simbolos.

Intente modificar las meta <meta http-equiv="Content-type" content="text/html; charset=utf-8"


/> por otros ISO y la verdad es que no he podido.

Mi interrogante es porque si modifico las tablas directamente en mysql la pagina web ve los
caracteres a pesar de ser un php y cuando lo modifico desde el manejador modifica todo el
contenido, es decir me altera los caracteres?

Debo cambiar algun lenguaje en el msql?

Debo colocar alguna Meta etiqueta que solvente este problema?

De antemano muchas gracias por cualquier ayuda que me puedan brindar


Marcar como spam
Augusto Rocca
03/9/2010
UTF-8 Encoding Api Twitter
Excelente aporte, estaba usando la Api de Twitter y al mostrar la info recibida tenia este problema
de enconding porque tengo mi pagina en iso-8859-1.

Simplemente con el utf8-decode se soluciono el problema... EXCELENTE.


Marcar como spam
Emanuel
20/10/2010
Espectacular..
Me alegraste el dia con el articuloo,

felicitaciones!!!
www.emanuelm.com.ar
Marcar como spam
arojas
08/5/2011
Perfecto !!
utf8_decode() funciona de maravilla para enviar un mail.
Marcar como spam
elpeter
06/7/2011
arreglar codificacion
usar el utf8_encode() o el utf8_decode() funciona pero no dejan de ser parches.
Arreglar de raíz el problema de la codificación es algo mas complicado o al menos que lleva
bastante tiempo y "cosas" que tocar. Echarle un ojo al siguiente articulo donde viene bastante
bien detallado los posibles problemas en la codificación y como afrontarlos.
http://www.pedroventura.com/blog_programacion/php/problemas-codificacion-web-configurar-
codificacion-utf8-php-mysql-y-html/

Espero que les sirva a todos. Porque se que los problemas de codificación pueden llegar a ser muy
problemáticos! :S
Marcar como spam
elpeter

06/7/2011
arreglar codificacion
usar el utf8_encode() o el utf8_decode() funciona pero no dejan de ser parches.
Arreglar de raíz el problema de la codificación es algo mas complicado o al menos que lleva
bastante tiempo y "cosas" que tocar. Echarle un ojo al siguiente articulo donde viene bastante
bien detallado los posibles problemas en la codificación y como afrontarlos.
http://www.pedroventura.com/blog_programacion/php/problemas-codificacion-web-configurar-
codificacion-utf8-php-mysql-y-html/

Espero que les sirva a todos. Porque se que los problemas de codificación pueden llegar a ser muy
problemáticos! :S
Marcar como spam
Adriana
20/7/2011
Me funciona perfecto
Muchas gracias por el aporte
Marcar como spam
RUBEN D. GUERRERO N.
24/1/2012
SIMPLEMENTE BUENOS
HERMANO MUY AGRADECIDO POR LA AYUDA PRESTADA ESTA MUY EXPLICITA LA EXPLICACION...
Marcar como spam
Gabriel
06/3/2012
Gracias
El articulo me fue muy util.
Saludos,
Marcar como spam
Omar Mtz
10/12/2012
I love u guys :)
Gracias por la explicacion tan sencilla que estaba.. hahaha
Marcar como spam
Edievale

29/12/2013
Muy útil
Me he puesto hace poco con PHP y me ha resultado muy útil este artículo.
Muchas gracias.
Marcar como spam
Raydel Piloto Quesada
28/2/2014
Hola
Hola a todos, el código me es útil. Pero no me ha resultado cuando tengo cadenas de texto con
caracteres utf-b (Ñ, á,é , etc) guardados en una base de dato mysql y quiero mostrarlos tal y como
son en una página web. Si me ayudasen con esto se los agradeceré. Gracias
Marcar como spam
Emmanuel
03/3/2014
Exelente solución
Muchas gracias por la solución fue de gran ayuda (Y)
Marcar como spam
Pedro
25/4/2014
Perfecta solucion
Gracias
Marcar como spam
Roger
16/5/2014
UTF-8
Y que pasa con el ?, yo no encuentro la manera de pintarlo en utf-8 al cojerlo de la bbdd.
Marcar como spam
Pep
25/9/2014
funcionó!
Funcionó muchas gracias!!! Un saludo.
Marcar como spam
XfontanillsX
24/12/2014
Ayuda
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
$ar=fopen("F:dosomg.txt","r") or
die("No se pudo abrir el archivo");
while (!feof($ar))
{
$linea=fgets($ar);
$lineasalto=nl2br($linea);
echo $lineasalto;
}
fclose($ar);
?>
</body>
</html>

Despues de haber mostrado el codigo que tengo, formulo la siguiente pregunta. Tengo un archivo
de texto con el siguiente contenido:
EDGARDO@hotmail.com

Al tratar de mostrarlo en php me lanza el siguiente error:


Warning: fopen(F:dosscribir.txt): failed to open stream: Invalid argument .

Nota: no tengo problemas en mostrar contenido sin caracteres de este tipo como por ejemplo:
jose.
Marcar como spam
Alexis
03/3/2015
no es acento
hola, muy buen articulo solo un error la palabra correcta debería de ser tilde y no acento :) saludos
gracias por tus aportes son muy buenos.
Marcar como spam
Daniel
23/3/2015
encode
muy bueno funciono de maravilla gracias
Marcar como spam
Alex
26/4/2015
como proteger el codigo html de una pagina
si lo que se
anda buscando es proteger el codigo html la
solicion que les recomiendo es: www.protegerhtml.info saludos
Marcar como spam
ARNOLDO RODAS PEREZ
11/6/2015
Manejo de acentos a la hora de insertar
Buenas tardes , está muy buenas la informacion me parece perfecta el problema que yo tengo es
que cuando lo guardo en mi propia máquina no hay problema, pero cuando subo los cambios al
servidor me siguen apareciendo así, es por eso que quisiera saber si se resolvería el problema si yo
a la hora de insertar los datos lo meto en el encode o decode, sea también el problema que se
encuentre en mi servidor LINUX, por fa ayuda!
Marcar como spam
hector_rivera58472

03/12/2015
acentos dentro del rtf
hola que tal
yo segui e ejemplo de rtf segun este
link http://www.desarrolloweb.com/articulos/1826.php
yo lo no tengo problema al generarlo
pero si tengo un grave inconveniente con los acentos dentro del reporte que realice con rtf
resulta que la dbo de mysql la tengo con el acortejamiento utf-8spanis-ci, la pagina web esta con
utf-8
cuando genero mi reporte con rtf los acentos se ven asi NÑO ONÑO acción acción acción
acción
dentro de la web muestra las ñ y las tildes sin problema

utf8_decode($equivalencias[35][0]="#*OBJPY*#");
utf8_decode($equivalencias[35][1]="objetivospy");
$equivalencias[36][0]=utf8_decode("#*OBJPY*#");
utf8_decode($equivalencias[36][1]=utf8_decode("objetivospy");
he probado de muchas maneras y no salen los acentos dentro de mi reporte
alguien me puede dar una mano.. porfa
Marcar como spam
maria
11/12/2015
gracias por el truco!!!
Llevo un montón de foros y ninguno me ha dado una solución tan sencilla, solo colocar el código y
funciona!!! Mil gracias por compartirlo!
Marcar como spam
ALDO
30/12/2015
¿Como lo aplico a todo el documento?
¿Como lo aplico a todo el documento?
Marcar como spam
proba
12/4/2016
funciono
tengo unas variables php dinamicas y usando esta funcion he podido solucionarlo muchas gracias
www.edilnet.es
Marcar como spam
EDUARDO
06/9/2016
agradecimiento
MUCHAS GRACIAS POR LA AYUDA

caracteres raros en mi pagina!

Estas en el tema de caracteres raros en mi pagina! en el foro de HTML en Foros del Web. Que tal,
tengo un gran problema , porque no se muestran bien algunos caracteres en mi pagina web , tales
como las ñ y las ...
#1 (permalink)
Antiguo 06/03/2008, 14:34
Avatar de @padawan@
@padawan@

Fecha de Ingreso: julio-2005


Mensajes: 393
Antigüedad: 11 años, 2 meses
Puntos: 6
caracteres raros en mi pagina!
Que tal, tengo un gran problema , porque no se muestran bien algunos caracteres en mi pagina
web , tales como las ñ y las letra con tilde, es un problema de codificacion de seguro ya que si yo
seteo la codificacion de mi explorador se visualiza bien , pero tiene que verse asi por default
porque como puede ser que me pase esto solamente con mi pagina y no me pase con otros sitios
por ejemplo este?

en vez de acentos y eñes me aparece esto á, ñ,l á, lo mas loco es que ese texto se ve mal y
otros bien digamos algunas palabras con acentos propios del html y no provenientes de alguna
base de datos, ahora bien si yop cambio la codificacion en vez de ser automatica la pongo en
unicode UTF-8 se me muestran bien los caracteres que antes se veian mal , pero los que se veian
bien ahora muestran este simbolo � !! la verdad que ya no se que mas hacer, porque consulte
muchos sitios y no logre solucionar mi problema!.
#2 (permalink)
Antiguo 06/03/2008, 15:33
Avatar de hades87
hades87

Fecha de Ingreso: diciembre-2007


Ubicación: Barcelona - España
Mensajes: 3.194
Antigüedad: 8 años, 8 meses
Puntos: 68
Re: caracteres raros en mi pagina!
pones los accentos directamente en el html? si es asi deberias usar el &(letra)acute o grave;
__________________
No diseñes usando tablas.
#3 (permalink)
Antiguo 06/03/2008, 15:51
Avatar de Omura
Omura
Colaborador
Fecha de Ingreso: julio-2006
Ubicación: Peru
Mensajes: 3.491
Antigüedad: 10 años, 2 meses
Puntos: 185
Re: caracteres raros en mi pagina!
deberías definir en tu web que codificación de caracteres usa

<html>
<head>
<META http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
....
#4 (permalink)
Antiguo 06/03/2008, 17:37
Dragoon_SC

Fecha de Ingreso: febrero-2008


Ubicación: Mexicali, BC. Mexico
Mensajes: 53
Antigüedad: 8 años, 6 meses
Puntos: 0
Re: caracteres raros en mi pagina!
<META http-equiv=Content-Type content="text/html; charset=ISO-8859-1">

usalo si no pasa ese tipo de cosas


#5 (permalink)
Antiguo 24/03/2008, 15:06
lamatxin

Fecha de Ingreso: marzo-2008


Mensajes: 6
Antigüedad: 8 años, 5 meses
Puntos: 0
Re: caracteres raros en mi pagina!
Hola, a mi me pasa una cosa parecida, he montado la web, cuando la previsualizo en mi pc va
perfecta, pero después de subirla se me ven todos los símbolos "raros", si en el navegado cambio
la codificación a utf-8 se ve perfecto (me sale por defecto iso 8859-1).

si miro las cabeceras de los htmls todos están así:


<meta http-equiv="content-type" content="text/html; charset=UTF-8">
(esto no obliga al explorador a usar esta codificación?)

y si cambio los htmls a:


<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
me vuelve a salir con caracteres incorrectos.

alguien sabe pq?? gracias!


#6 (permalink)
Antiguo 24/03/2008, 15:12
logik0

Fecha de Ingreso: marzo-2008


Mensajes: 6
Antigüedad: 8 años, 5 meses
Puntos: 0
Re: caracteres raros en mi pagina!
Si trabajas con una BD MySQL inferior a la 4 tendrás problemas con la codificación que introduzcas
en el código, ya que, es incompatible. Tendrias que actualizar la BD para tener una correcta
traducción de la codificación.

saludos
#7 (permalink)
Antiguo 24/03/2008, 15:15
Avatar de Omura
Omura
Colaborador

Fecha de Ingreso: julio-2006


Ubicación: Peru
Mensajes: 3.491
Antigüedad: 10 años, 2 meses
Puntos: 185
Re: caracteres raros en mi pagina!
ya probaste poniendo los caracteres especiales vía código

Para minúsculas

á - &aacute;
é - &eacute;
....

Para mayúsculas

A - &Aacute;
E- &Eacute;
....
#8 (permalink)
Antiguo 24/03/2008, 15:29
lamatxin

Fecha de Ingreso: marzo-2008


Mensajes: 6
Antigüedad: 8 años, 5 meses
Puntos: 0
Re: caracteres raros en mi pagina!
Cita:
Iniciado por logik0 Ver Mensaje
Si trabajas con una BD MySQL inferior a la 4 tendrás problemas con la codificación que introduzcas
en el código, ya que, es incompatible. Tendrias que actualizar la BD para tener una correcta
traducción de la codificación.
saludos
supongo q se me olvidó poner q soy bastante nuevo en esto, amos q no se de que me estas
hablando XD

trabajo con un editor de web normal y corriente, y luego lo subo a un hosting. pregutame más y te
digo...

por lo q yo supongo en algún paso desaparece la orden de usar utf-8 y coge la estandar iso.

Cita:
Iniciado por Omura Ver Mensaje
ya probaste poniendo los caracteres especiales vía código

Para minúsculas

á - &aacute;
é - &eacute;
....

Para mayúsculas

A - &Aacute;
E- &Eacute;
....
edito: si pongo estos símbolos si q se ve bien, pero lo veo un trabajo de chinos y una solución
chapucera (q no me va a quedar más remedio q usar si no encontramos otra XD)
#9 (permalink)
Antiguo 24/03/2008, 15:41
Avatar de almagropaco_
almagropaco_

Fecha de Ingreso: marzo-2008


Ubicación: Mar del Plata
Mensajes: 854
Antigüedad: 8 años, 5 meses
Puntos: 25
Re: caracteres raros en mi pagina!
por que las tildes en un codigo html te salen de esa forma..

me sirvio de mucho este tema


#10 (permalink)
Antiguo 24/03/2008, 16:11
Avatar de Omura
Omura
Colaborador

Fecha de Ingreso: julio-2006


Ubicación: Peru
Mensajes: 3.491
Antigüedad: 10 años, 2 meses
Puntos: 185
Re: caracteres raros en mi pagina!
poniendo las tildes vía código te aseguras que cualquier navegador independientemente de la
codificación que tenga lea bien tu texto.

Una forma simple de hacer los cambios seria usando el bloc de notas

Menú Edición - Reemplazar

Buscar [ á ]
Reemplazar [&aacute;]
Reemplazar todo <===
#11 (permalink)
Antiguo 24/03/2008, 16:22
lamatxin

Fecha de Ingreso: marzo-2008


Mensajes: 6
Antigüedad: 8 años, 5 meses
Puntos: 0
Re: caracteres raros en mi pagina!
sí, como solución de urgencia sirve, pero tiene q haber alguna forma de hacerlo bien ... y eso es lo
q me gustaría encontrar, no se si a alguien más se le ocurre q puede ser ...
#12 (permalink)
Antiguo 24/03/2008, 17:59
Avatar de Mikmoro
Mikmoro
Colaborador

Fecha de Ingreso: octubre-2006


Ubicación: K-pax
Mensajes: 7.228
Antigüedad: 9 años, 11 meses
Puntos: 279
Re: caracteres raros en mi pagina!
Si tienes el charset como UTF-8, el archivo está correctamente guardado en UTF-8, y en local lo ves
bien pero en el servidor no, habla con el servicio técnico de tu hosting, que probablemente no
tienen su servidor configurado para ese charset.
Esto lo hemos debatido hace muy poco y esa ha sido mi conclusión, porque en mi servidor con
linux y apache 2 se veía correctamente, pero el mismo archivo en un hosting contratado se veía
mal, igual que a ti.
Mikel.
#13 (permalink)
Antiguo 31/03/2008, 07:13
lamatxin

Fecha de Ingreso: marzo-2008


Mensajes: 6
Antigüedad: 8 años, 5 meses
Puntos: 0
De acuerdo Re: caracteres raros en mi pagina!
Efectivamente, simplemente se trata del servidor de hosting, tienen por defecto formato ISO y
aunque tu lo montes para utf8 se lo salta, ... han tardado un par de días, pero ya la tengo
perfectamente colgada !!!!

(mi hosting es de Arsys)


#14 (permalink)
Antiguo 01/04/2008, 01:29
Avatar de ivanin87
ivanin87

Fecha de Ingreso: marzo-2008


Mensajes: 77
Antigüedad: 8 años, 5 meses
Puntos: 0
Re: caracteres raros en mi pagina!
Cita:
Iniciado por lamatxin Ver Mensaje
Efectivamente, simplemente se trata del servidor de hosting, tienen por defecto formato ISO y
aunque tu lo montes para utf8 se lo salta, ... han tardado un par de días, pero ya la tengo
perfectamente colgada !!!!

(mi hosting es de Arsys)


Me alegro que se haya solucionado, pero discrepo contigo en que poner los acentos directamente
en el código se algo "de urgencia" o "chapucero", simplemente es la manera en que el texto de tu
web se va a visualizar correctamente independientemente de la codificación que uses...

Un saludO!
#15 (permalink)
Antiguo 02/04/2008, 01:56
Avatar de mgusdl
mgusdl

Fecha de Ingreso: abril-2007


Ubicación: Malaga, España
Mensajes: 190
Antigüedad: 9 años, 4 meses
Puntos: 5
Re: caracteres raros en mi pagina!
Cita:
Iniciado por lamatxin Ver Mensaje
supongo q se me olvidó poner q soy bastante nuevo en esto, amos q no se de que me estas
hablando XD

trabajo con un editor de web normal y corriente, y luego lo subo a un hosting. pregutame más y te
digo...

por lo q yo supongo en algún paso desaparece la orden de usar utf-8 y coge la estandar iso.

edito: si pongo estos símbolos si q se ve bien, pero lo veo un trabajo de chinos y una solución
chapucera (q no me va a quedar más remedio q usar si no encontramos otra XD)
Si tienes un programa medianamente decente como EditPlus, existe la opción de pasar de ANSI a
HTML en el menu edicion. Además el fichero de entidades HTML es editable, así que puedes
agregar las que no tenga.
#16 (permalink)
Antiguo 17/04/2008, 08:26
Avatar de freegirl
freegirl
Colaborador

Fecha de Ingreso: octubre-2003


Ubicación: Catalonia
Mensajes: 4.344
Antigüedad: 12 años, 11 meses
Puntos: 156
Re: caracteres raros en mi pagina!
Buenas,

a mi me pasa similar. Bueno, yo miro la Web con IE6, IE7 y Firefox y la veo bien. Pero me ha venido
algún comentario de que vé cuadritos en vez de acentos. Tengo que concretar que Explorer y
versión ve eso mal.

Mi hosting es de USA, no sé si tiene que ver con él o qué. Lo raro es que yo en 3 exploradores lo
veo bien.

Saludos

VBA: Rellenando un formulario web HTML desde Excel.


Aprenderemos hoy a rellenar un formulario o similar en HTML dentro de una web, empleando
Internet Explorer (como complementario que es de Office) utilizando un simple código de VBA
para Excel.
Para facilitar la comprensión, realizaremos una búsqueda en Google, ejecutando una macro desde
nuestro Excel.

Veamos en primer lugar el código insertado en un módulo de nuestro Libro de trabajo:


01 Sub RellenarWEBGoogle()
02 'www.excelforo.com
03 Dim IE As Object
04 'creamos el objeto para el navegador Internet Explorer
05 Set IE = CreateObject("InternetExplorer.application")
06 'dentro del navegador, accedemos al buscador Google (o cualquier otra wev con un
formulario tipo HTML
07 IE.Navigate "https://www.google.es/"

08
09 Do
10 DoEvents
11 Loop Until IE.readystate = 4
12
13 'para completar el campo de búsqueda:
14 'código identificado en la url www.google.es:
15 'input id=gbqfq class=gbqfif name=q type=text autocomplete=off value=""
16 IE.Document.getelementbyid("gbqfq").Value = "excelforo"
17 'para realizar la búsqueda presionamos el botón de Buscar..
18 ''código identificado en la url www.google.es:
19 'button class="gbqfba" aria-label="Buscar con Google" id="gbqfba" name="btnK"
20 IE.Document.getelementbyid("gbqfba").Click
21 'IE.Document.All("btnK").Click otra forma de llamarlo..
22
23 'finalmente hacemos visible la ventana de Internet Explorer
24 IE.Visible = True
25
26 End Sub

Fundamental para el correcto funcionamiento es instalar la referencia Microsoft Internet Controls,


desde el menú Herramientas > Referencias del editor de VBA:

Si lanzamos y ejecutamos nuestra macro, conseguiremos ver directamente:

Para comprender correctamente el código empleado, debemos saber localizar el Id o Name de los
cuadros de texto o botones que vayamos a completar o presionar (clicar), siempre en un lenguaje
HTML.. ya que otros formularios en script no son accesibles...
El primer paso, en la barra de direcciones del navegador (para este paso se recomienda o FireFox o
Google Chrome), introduciremos la url indicada (en nuestro ejemplo: www.google.es).
En segundo lugar, con el botón derecho del ratón, seleccionaremos Inspeccionar Elemento sobre
el 'cuadro de búsqueda':

Seguidamente se nos desplegarán, en la parte inferior del navegador unas ventanas con código
HTML que refleja lo que vemos... remarcado en azul la parte de código que afecta al elemento
clicado:

haz clic en la imagen

Y para el botón 'Buscar con google...' la misma acción, sobre él, presionamos botón derecho e
Inspeccionar elemento:

haz clic en la imagen

fijémosnos en el código HTML de uno y otro elemento:


1-Para el cuadro de búsqueda...
input id="gbqfq" class="gbqfif" name="q" type="text" autocomplete="off" value="" aria-
haspopup="false" role="combobox" aria-autocomplete="both" dir="ltr" spellcheck="false"
style="border: none; padding: 0px; margin: 0px; height: auto; width: 100%; position: absolute; z-
index: 6; left: 0px; outline: none; background:
url(data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICR
AEAOw%3D%3D) transparent;"

2- Para el botón de buscar...


button class="gbqfba" aria-label="Buscar con Google" id="gbqfba" name="btnK"

Es fundamental, para emplearlo en nuestro código VBA para Excel, localizar de cada elemento, la
característica Id (o Name):
Para el cuadro de búsqueda: id="gbqfq" y name="q";
Para el botón: id="gbqfba" y name="btnK"

Por desgracia existen multitud de formularios en las diferentes web que no emplean HTML, o no
tienen definidos estos parámetros Id o Name... pero merece la pena intentarlo.

Por supuesto los valores a incorporar, lo podemos extraer de nuestras celdas, por ejemplo en la
línea:
IE.Document.getelementbyid("gbqfq").Value = "excelforo"

por

IE.Document.getelementbyid("gbqfq").Value = Range("A1").Value
Publicado por Excelforo Ismael Romero
TEMAS: Macros
Valoracion:
Enviar por correo electrónicoEscribe un blogCompartir con TwitterCompartir con
FacebookCompartir en Pinterest

26 comentarios:
1.
Unknownmarzo 03, 2015
Hola buenas. Ya tengo funcional el codigo de cargar pagina, rellenar el formulario y clickear en
buscar, ahora estoy intentado asignar parte del texto del resultado a una variable de vba. Intento
hacer whois desde excel, y que de cada ip te de el pais.

Como puedo asignar el texto de la pagina a una variable?

(estoy practicando con esta pagina de whois y con ips de prueba)


http://whois.urih.com/record/80.5.4.8/

Y lo suyo seria obtener el pais del campo 4 o 22.

Saludos y gracias por la pagina.


Responder
Respuestas
1.
Excelforo Ismael Romeromarzo 03, 2015
Hola,
no he probado nunca.. pero en teoría, si ya tienes identificado el id, definir una variable con el
dato sería tan sencillo como:
NombreVariable=IE.Document.getelementbyid("gbqfq").Value

o el Id que tengas...

Espero te funcione.
Saludos
Responder
2.
imkosmayo 12, 2015
Buenas y gracias de antemano por la info facilitada, me ha servido de ayuda.
Pero me surge una duda.
Yo accedo a mi formulario inicial (www.mipagina.com/default.aspx) relleno los input y presiono el
botón, como indicas. Esto funciona perfectamente y me carga la página siguiente (también en
www.mipagina.com/default.aspx) con nuevos input y button. Cuando quiero hacer click del botón
de la segunda página, no encuentra el elemento.
Alguna sugerencia para "refrescar" los elementos del IE.Document con los de la segunda página?
Un saludo.
Responder
Respuestas
1.
Excelforo Ismael Romeromayo 13, 2015
Hola,
en teoría el bucle
Do
DoEvents
Loop Until IE.readystate = 4

sirve para parar y continuar (refrescar) lo que vemos.


Prueba colocando un nuevo bucle después de la primera página

Espero te pueda ayudar.


Slds
Responder
3.
Luis Giordanodiciembre 14, 2015
hola!!! muchas gracias por publicar este tema, creo que es muy potente su aplicación,
lamentablemente no he logrado hacer que abra el Internet Explorer, sabes si debe modificarse
alguna configuración para que la macro lo pueda abrir?

gracias!!!
Responder
Respuestas
1.
Excelforo Ismael Romerodiciembre 14, 2015
Hola Luis,
te has asegurado de instalar la referencia que se comenta en el post??
'Fundamental para el correcto funcionamiento es instalar la referencia Microsoft Internet
Controls, desde el menú Herramientas > Referencias del editor de VBA'

Saludos
Responder
4.
Jimmy Palacios Urbanoabril 13, 2016
Hola amigo saludos. Gracias desde ya por tu ayuda.
Yo necesito Refrescar una Lista desplegable cuyos valores dependen de otra lista. Es decir, que el
control internamente cargue los valores o indices.
Responder
Respuestas
1.
Excelforo Ismael Romeroabril 13, 2016
Hola Jimmy,
quizá esta entrada te de la pista.
http://excelforo.blogspot.com.es/2009/10/ejemplo-de-doble-validacion.html

Saludos
Responder
5.
Jimmy Palacios Urbanoabril 14, 2016
Este comentario ha sido eliminado por el autor.
Responder
6.
Jimmy Palacios Urbanoabril 14, 2016
En 1er lugar agradecerle por su respuesta muy rápida, en 2do lugar disculparme por no detallar
bien mi problema.
Mi pregunta es con respecto a Rellenar un Formulario Web aspx desde Excel VBA.
He logrado poner los valores en 3 ComboBox, pero hay un 4to Combo q depende de lo q elija en
este 3er Combo, he usado el código de tu Blog y es lo siguiente, pero nada queda en blanco:
Abrir_IE.document.getElementById("ctl00_ContentPlaceMain_ddlSeccion").Click
Abrir_IE.document.getElementById("ctl00_ContentPlaceMain_ddlSeccion").Value = Range("e12")

El código fuente HTML queda así:


<-- Seleccionar -->

Luego del click q yo hago manualmente queda así:


<-- Seleccionar -->
A
B
C
D
E

Necesito simular un click en ese objeto para q cargue o refresque los valores en el objeto para
recién asignarle el Value.
Ahora si detalle bien mi problema. Gracias por compartir sus conocimientos, estaré pendiente de
su respuesta.
Responder
Respuestas
1.
Excelforo Ismael Romeroabril 14, 2016
Hola Jimmy,
en principio no conozco otra forma que con esa propiedad .click

podría ser más un tema del formulario Web que un problema del código... por desgracia no
siempre es posible atacar formularios webs desde Excel, ya que los webmaster tienen
herramientas para evitar entradas desde robots u otros accesos automatizados.

Siento no poder darte una respuesta clara.


Un cordial saludo y suerte
P.D.: si lo logras, por favor, compártelo aquí!
Responder
7.
Jimmy Palacios Urbanoabril 15, 2016
Este comentario ha sido eliminado por el autor.
Responder
8.
Jimmy Palacios Urbanoabril 15, 2016
Me gustaria compartir el codigo, tal vez en algo estoy fallando, y alguien pueda compartir la
solución:
Sub RellenarNotas()
Dim Abrir_IE As Object

Set Abrir_IE = CreateObject("internetexplorer.Application")


With Abrir_IE
.Top = 1
.Left = 1
.Width = 600
.Height = 400
.Visible = True
.navigate
("http://sistemas10.minedu.gob.pe/siagie3/ExamenPorSeccion.aspx?sPms=Up11f8wTMi7VbctOh4
deCw%3d%3d")
Do While Abrir_IE.busy
DoEvents
Loop
Application.Wait (Now + TimeValue("0:00:03"))
End With

Abrir_IE.document.getElementById("ctl00_ContentPlaceMain_ddlPeriodo").Value = Range("d8")
Abrir_IE.document.getElementById("ctl00_ContentPlaceMain_ddlGrado").Value = Range("e11")

Do While Abrir_IE.busy
DoEvents
Loop

Abrir_IE.document.getElementById("ctl00_ContentPlaceMain_ddlGrado").Click

Application.Wait (Now + TimeValue("0:00:03"))


Abrir_IE.document.getElementById("ctl00_ContentPlaceMain_ddlSeccion").Value = "01"

'Tambien esta linea de codigo me deja en blanco la lista desplegable:


'Abrir_IE.document.getElementById("ctl00_ContentPlaceMain_ddlSeccion").javascript =
"javascript:setTimeout('__doPostBack(\'ctl00$ContentPlaceMain$ddlSeccion\',\'\')', 0)"
End Sub

Ahora mi pregunta seria si es que es posible ejecutar codido javascrip desde VBA Excel, tal vez ahi
está la solución. GRACIAS
Responder
Respuestas
1.
Excelforo Ismael Romeroabril 15, 2016
Hola,
si es posible... aunque nunca lo he usado leí algo al respecto hace bastante tiempo, se trata del
método de windows execscript,
por ejemplo:
IE.Document.parentWindow.execScript "ctl00_ContentPlaceMain_ddlSeccion;"
no controlo mucho de java... pero quizá te de la pista.
Slds
2.
Jimmy Palacios Urbanoabril 15, 2016
Ok, Gracias lo probaré...
Responder
9.
Jimmy Palacios Urbanoabril 17, 2016
Este comentario ha sido eliminado por el autor.
Responder
10.
Jimmy Palacios Urbanoabril 17, 2016
Hola Ismael, aqui otra vez 1ro para compartir la solución y 2do para hacerte una nueva consulta:
1. SOLUCIÓN usando el Método windows execscript:
Sub RellenarNotas()
Dim Abrir_IE As Object
Set Abrir_IE = CreateObject("internetexplorer.Application")
With Abrir_IE
.Top = 1
.Left = 1
.Width = 600
.Height = 400
.Visible = True
.Navigate
("http://sistemas10.minedu.gob.pe/siagie3/ExamenPorSeccion.aspx?sPms=Up11f8wTMi7VbctOh4
deCw%3d%3d")
Do While Abrir_IE.Busy: DoEvents: Loop
Application.Wait (Now + TimeValue("0:00:03"))
End With

Abrir_IE.Document.getElementById("ctl00_ContentPlaceMain_ddlPeriodo").Value = Range("d8")
Abrir_IE.Document.getElementById("ctl00_ContentPlaceMain_ddlGrado").Value = Range("e11")

Abrir_IE.Document.parentWindow.execScript "javascript:
setTimeout('__doPostBack(\'ctl00$ContentPlaceMain$ddlSeccion\',\'\')', 0)", "JavaScript"
Application.Wait (Now + TimeValue("0:00:01"))
Abrir_IE.Document.getElementById("ctl00_ContentPlaceMain_ddlSeccion").Value = Range("e12")

Abrir_IE.Document.parentWindow.execScript
"javascript:setTimeout('__doPostBack(\'ctl00$ContentPlaceMain$ddlArea\',\'\')', 0)", "JavaScript"
Application.Wait (Now + TimeValue("0:00:01"))
Abrir_IE.Document.getElementById("ctl00_ContentPlaceMain_ddlArea").Value = Range("i8")

' A partir de aquí mi pregunta


Abrir_IE.Document.getElementById("ctl00_ContentPlaceMain_btnRegistroResumen").disabled =
False
Abrir_IE.Document.getElementsByName("ctl00$ContentPlaceMain$btnRegistroResumen").Item.Cl
ick
End Sub

2. Cuando hago Click en el "Boton REGISTRO" se abre otra ventana de IE y es en donde pondre las
notas de estudiantes, y al cual ya no puedo controlar; ¿Cómo haría para tener control de esa
nueva ventana, o tal vez Cómo a partir de ese click crear un nuevo objeto IE y de ahi si podria
controlar todos sus elementos?
-He intentado creando otro objeto IE a partir del Link que genera el Boton REGISTRO, pero se
abren 2 ventanas iguales.
Tal vez necesite crear una Funcion o almacenar ese objeto o ese Click en una Variable, estas 2
cosas lo desconozco.
Desde ya GRACIAS por tu ayuda.
Responder
11.
Jimmy Palacios Urbanoabril 20, 2016
AYUDA POR FAVOR...
Cuando hago Click en el "Boton REGISTRO" se abre otra ventana de IE y es en donde pondre las
notas de estudiantes, y al cual ya no puedo controlar; ¿Cómo haría para tener control de esa
nueva ventana, o tal vez Cómo a partir de ese click crear un nuevo objeto IE y de ahi si podria
controlar todos sus elementos?
-He intentado creando otro objeto IE a partir del Link que genera el Boton REGISTRO, pero se
abren 2 ventanas iguales.
Tal vez necesite crear una Funcion o almacenar ese objeto o ese Click en una Variable, estas 2
cosas lo desconozco.
Desde ya GRACIAS por tu ayuda.
Responder
Respuestas
1.
Excelforo Ismael Romeroabril 21, 2016
Hola,
lo siento... no sabría darte una respuesta.
Slds
2.
Jimmy Palacios Urbanoabril 22, 2016
Ok Gracias amigo Ismael...
3.
Amandoseptiembre 09, 2016
A ver si te valiera ésto:

En el código:
Dim ie2 as internetExplorer

...

Set ie2 = Nothing

(instrucciones para que ie1 abra la ventana emergente)

Set ie2 = GetIE("url de la ventana nueva")


Función GetIE

Function GetIE(sLocation As String) As Object


'Devuelve el InternetExplorer que tiene por url sLocation

Dim objShell As Object, o As Object


Dim sURL As String
Dim RetVal As Object

Set RetVal = Nothing


Set objShell = CreateObject("Shell.Application")

For Each o In objShell.Windows


sURL = ""
On Error Resume Next
sURL = o.locationURL
On Error GoTo 0
'Debug.Print sURL
If sURL Like sLocation & "*" Then
Set RetVal = o
Exit For
End If
Next o

Set GetIE = RetVal

End Function
Responder
12.
Unknownmayo 24, 2016
Este comentario ha sido eliminado por el autor.
Responder
13.
Erick Castillomayo 24, 2016
hola buenas tardes, me parece muy interesante y admirable lo que haces al ayudarnos y darnos
excelentes inicio s para experimentos, sabes? tengo una duda que me detiene en un proyectito y
espero que puedas ayudarme, en tu basta experiencia crees que pueda importar datos de una
pagina web que ya esta cargada en un navegador externo a excel? digase firefox o chrome o ie? es
que ya intente hacerlo de forma directa pero no puedo al momento de hacerlo por codigo me es
casi imposible ya que debo de introducir varios datos de los cuales obtengo varios resultados y de
alli debo elegir el que busco y entonces la pagina arroja una tabla, la cual es la que necesito cargar
a excel una vez que he cargado las variables anteriores, crees que eso sea posible???? muchas
gracias
Responder
Respuestas
1.
Excelforo Ismael Romeromayo 24, 2016
Hola Erick,
en principio si es posible, ya que cada vez que navegamos en una Web interaccionamos y son
acciones que se pueden representar y replicar desde las macros de Excel...
Ahora bien, la realidad es que todo es más complejo que la teoría, y no siempre es posible replicar
los movimientos que plasmamos :(
El asunto se complica aún un poco más si en lugar de IE lo queremos hacer sobre Chrome, FireFox,
etc...

Un saludo y suerte!!
Responder
14.
xysadmayo 29, 2016
Hola a todos, necesito algo similar a esto pero que funcione en el navegador TOR, sera posible?
Responder
Respuestas
1.
Excelforo Ismael Romeromayo 30, 2016
Hola,
no conozco ese navegador.. pero supongo existirá su librería y podrás instalarla en Excel para
poder trabajar con él...
??
Slds
Responder
Entrada más recienteEntrada antiguaPágina principal
Suscribirse a: Enviar comentarios (Atom)
Entrada destacada
Curso Excel Presencial en Madrid - 20 horas - Nivel Avanzado
¿Vives en Madrid?, ¿Te interesa la mejor formación en Excel presencial?. Curso Presencial Excel
Avanzado en Madrid con una duración de 20 h...
________________________________________
Cursos Excel y Macros por Excelforo...

...con la confianza de siempre!


Infórmate en cursos@excelforo.com
________________________________________
Por favor, es importante, dedica unos segundos a leer las Normas de uso del blog.
________________________________________
¿Te han ayudado algunas de las 796 entradas o8668 comentarios explicados?, entonces quizá te
interese colaborar con el mantenimiento del blog.
Datos personales

Ver todo mi perfil


Microsoft MVP Excel 2014, 2015, 2016

Páginas vistas en total


6,433,478
________________________________________

Seguir a @Excelforo
________________________________________
Subscríbete gratis a EXCELFORO
________________________________________
Si quieres recibir en tu correo las actualizaciones del blog, introduce tu dirección de email:

Delivered by FeedBurner
No olvides verificarlo para activar la suscripción!!
________________________________________
Seguidores
Google+ Followers
Todas las entradas del blog...

Temas:
Análisis de datos-estadísticos (3) Análisis de sensibilidad (4) Asignar nombres a rangos(27) Buscar
objetivo-Solver (19) Cursos Excel (49) Escenarios (1) Filtros (9)Financieras (19) Formato (6)
Formato condicional (34) Funciones(202) Funciones Base de datos (7)Gráficos (82) Macros
(238)Matriciales (64) NPGC 2007 (8) Ordenar(2) Tabla dinámica (58) Validacion (22)Varios (160)

Lijit Search
Normas de uso:

¿Tienes alguna duda?


Para cualquier cuestión que tengas, por favor, no dudes en contactar conmigo en
excelforo@gmail.com

Te contestaré a través del blog lo antes posible.

Tus preguntas son de gran ayuda para todos!!

Por favor, es importante, dedica unos segundos a leer las Normas de uso
Últimos comentarios realizados...
• El MXN es l dato fijo - 13/9/2016 - Juan Barajas
• Me puede apoyar para realizar una verificacion de ... - 13/9/2016 - Rag
• Benas tades, soicito de su ayuda, ya que necesito ... - 13/9/2016 - Juan Barajas
• Eso no funciona, ya que la alerta no proviene de e... - 13/9/2016 - Melguizo Martínez
• que raro... probaría añadiendo y deshabilitando la... - 13/9/2016 - Excelforo Ismael
Romero

Cómo guardar una hoja como HTML mediante programación


• Email
• Print
Este artículo se publicó anteriormente con el número E11097
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece
asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte
técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.
Resumen

El asistente para el ayudante de Internet es un complemento o add-in


incluido en Microsoft Excel 97. Este asistente permite guardar hojas
de Microsoft Excel en formato HTML.

Si trata de grabar una macro con las acciones realizadas por el


asistente de Internet no se obtendrá ninguna línea de código grabada.

Este artículo contiene el código necesario para poder guardar una hoja
de Microsoft Excel mediante programación o código de macros.

Más información

PRECAUCIaN: CUALQUIER UTILIZACIaN POR SU PARTE DEL CaDIGO O MACRO


INCLUIDO EN ESTE ART+CULO SE HAR¦ A SU CUENTA Y RIESGO. Microsoft
facilita este código o macro "tal cual" sin garantía de ningún tipo,
ya sea explícita o implícita, incluyendo expresamente en tal exención
de responsabilidad y, a efectos meramente enunciativos y no
limitativos, las garantías legales mercantiles implícitas y/o la
adecuación a un propósito o finalidad en particular.

El siguiente ejemplo utiliza el método HTMLConvert del Asistente para


el ayudante de Internet para crear páginas web.

Para poder ejecutar este código correctamente, hay que tener activada
la referencia HTML. Esto podrá hacerlo desde el Editor de Visual Basic
(ALT+F11), en el menú Herramientas/Referencias, marcando la opción
HTML. Si dicha opción no le aparece disponible en la lista, basta con
que pulse en el botón examinar y localice en su disco el fichero
HTML.XLA.

Para insertar el código realizar los siguientes pasos:

1. Habilitar el editor de Visual Basic.

2. Crear un módulo nuevo. Desde el menú Insertar, seleccionar


Módulo.

3. Copiar el siguiente código de macro en el módulo que acabamos de


crear:

Sub GuardarHtml()

Dim ObjToConvert() As Variant


Dim Result As Integer
Dim var As Integer
Dim ruta As String
Dim titulo As String

'Introducir path para localización de la página HTM a crear


ruta = InputBox("Introduzca nombre y localización de la hoja")
ruta = ruta & ".htm"

'Introducir título que se desea aparezca en la página


titulo = InputBox("Introduzca título de la página")

ReDim ObjToConvert(ActiveSheet.ChartObjects.Count) As Variant

'Seleccionar rango de celdas a convertir


Set rango = Application.InputBox("Rango de celdas a convertir", _
Type:=8)

Set ObjToConvert(0) = rango

For var = 1 To ActiveSheet.ChartObjects.Count


Set ObjToConvert(var) = ActiveSheet.ChartObjects(var)
Next var

'Activamos el complemento de Asistente para el ayudante de


'Internet
AddIns("Asistente para el ayudante de Internet").Installed = True

Result = htmlconvert(rangeandcharttoconvert:=ObjToConvert, _
useexistingfile:=False, _
usefrontpageforexistingfile:=False, _
addtofrontpageweb:=False, codepage:=1252, _
htmlfilepath:=ruta, _
headerfullpage:=titulo, _
linebeforetablefullpage:=True)

If Result = htmlconvert_success Then


MsgBox "Página " & ruta & " creada satisfactoriamente"
Else
MsgBox "Error Creando página"
End If
End Sub
4. Ejecutar la macro GuardarHtml.

Referencias

Para más información sobre cómo poder realizar esto mismo con una
versión de Microsoft Excel en inglés, consulte el siguiente artículo
de la base de conocimientos de Microsoft:

ARTICLE-ID: 168561
TITLE : xl97: How to Programmatically Save a Worksheet as HTML
Propiedades
Id. de artículo: 551147 - Última revisión: 04/10/2003 10:35:23 - Revisión: 2.0
La información de este artículo se refiere a:
Microsoft Excel 97 Standard Edition

Palabras clave:
• assistant code html internet macro wizard KB551147
Comentarios

S-ar putea să vă placă și