Pepito=Pepito +1

12/06/2007 - 19:03 por Desastres | Informe spam
Buenas tardes.

Normalmente Excel escucha cuando le dices algo así como:
Hoja1.cells(1,1)=Hoja1.cells(1,1) + 1 (contador sencillo)

En la ayuda dicen:
"El valor de un rango combinado es el valor especificado para la celda en la esquina superior
izquierda del rango."

Si al rango le doy nombre, "Pepito"
Dim Pepito as Range
Set Pepito = Hoja1.range(cells(1,1), cells(1,6))
Pepito.merge

¿Porque no puedo decir Pepito = Pepito + 1 ?
o ¿Como decir Pepito = Pepito + 1 ?


Saludos
Des

Preguntas similare

Leer las respuestas

#6 Desastres
13/06/2007 - 17:07 | Informe spam
Hola Julián. Gracias
Lo que propones fue el primer "contador" que puse.
La razón de "nombrar" los rangos es que si los tengo que cambiar de ubicación, con cambiar en un
solo punto los valores,(el punto donde los asigno), me llega. Si lo hiciera como me dices, tendría
que ir por toda la aplicación, buscando los puntos a modificar.
Saludos
Des


"julian-vlc-sp" escribió en el mensaje
news:
> ¡Importante!: Colabora con el grupo.Contesta a este mensaje
y dinos si te sirvió o no la respuesta dada. Muchas gracias.
>
Solo por curiosidad, ¿has probado ...

Hoja1.range(cells(1,1), cells(1,6))=Hoja1.range(cells(1,1), cells(1,6)) + 1

... a ver que pasa?

SALUDOS.
Julián-Valencia-España
http://ijulian.iespana.es/


"Desastres" escribió en el mensaje
news:e8$
> Buenas tardes.
>
> Normalmente Excel escucha cuando le dices algo así como:
> Hoja1.cells(1,1)=Hoja1.cells(1,1) + 1 (contador sencillo)
>
> En la ayuda dicen:
> "El valor de un rango combinado es el valor especificado para la celda en
> la esquina superior
> izquierda del rango."
>
> Si al rango le doy nombre, "Pepito"
> Dim Pepito as Range
> Set Pepito = Hoja1.range(cells(1,1), cells(1,6))
> Pepito.merge
>
> ¿Porque no puedo decir Pepito = Pepito + 1 ?
> o ¿Como decir Pepito = Pepito + 1 ?
>
>
> Saludos
> Des
>
>
>
>


Respuesta Responder a este mensaje
#7 Desastres
13/06/2007 - 17:33 | Informe spam
Hola Hector. Gracias.

La verdad es que no me acordaba de lo de la astilla.
Pero me tenia loco, llevo 15 días sin entender lo que pasaba, hasta darme cuenta que el problema
era el rango combinado.
Solucione el problema saliéndome del bucle mental en que había caído ( solucionarlo como
Pepito=Pepito+1.)
La alternativa es simple pero me negaba a tomarla.Como en realidad no es un contador sino un posible
totalizador lo que hice fue hacerlo mediante una variable. Es caso real lo solucioné poco más o
menos así:

for bucPPI = zlePPI to cPPI.row + 1 step -1
set TaPºPPI = hPPI.Cells(bucPPI, çTaPPPI.column)
Total= Total + TaPºPPI
Pepito = Total
next bucPPI

Pero la verdad es que me dejo mal cuerpo no solucionarlo como yo quería.

Lo que no entiendo es porqué, si la aplicación "anula" todo lo que no sea la primera celda, o dicho
de otra manera, Pepito prácticamente es Hoja2.Cells(1,1), ¿porqué no Pepito=pepito + 1?

Saludos
Des



"Héctor Miguel" escribió en el mensaje
news:
hola, Des !

> Normalmente Excel escucha cuando le dices algo asi como:
> Hoja1.cells(1,1)=Hoja1.cells(1,1) + 1 (contador sencillo)
> En la ayuda dicen:
> "El valor de un rango combinado es el valor especificado para la celda en la esquina superior


izquierda del rango."
> Si al rango le doy nombre, "Pepito"
> Dim Pepito as Range
> Set Pepito = Hoja1.range(cells(1,1), cells(1,6))
> Pepito.merge
> Porque no puedo decir Pepito = Pepito + 1 ?
> o Como decir Pepito = Pepito + 1 ?

1) [hasta donde recuerdo]... "Pepito" nunca se ha *distinguido* por *hacer* [precisamente] lo que


le *solicitan*
[quizas necesites darle un nombre mas... *obediente* a tus rangos] :))

2) las celdas y rangos *combinados*, si recuerdas una conversacion de alla por marzo, te comentaba


que son...
" [algo asi como 'una astilla...' que no te deja permanecer 'comodamente sentado'] :D "

3) *bromas aparte*... lo que dice la ayuda es cierto...
"El valor de un rango combinado es el valor especificado para la celda en la esquina superior


izquierda del rango."
de hecho, si en la interfase de usuario *haces referencia* al rango que combinaste en las


lineas de codigo de tu ejemplo...
*veras* que la referencia queda *apuntando* [exclusivamente] a la celda 'A1' [es decir]...

4) para *administrar* por codigo la referencia a un rango combinado [como el contador que


necesitas incrementar]
es necesario *apuntar* [exclusivamente] a la primer celda del rango combinado [o sea, algo +/-


como lo siguiente]:

Sub Desastres_y_Pepito()
Dim Pepito As Range
Set Pepito = Hoja1.Range(Cells(1, 1), Cells(1, 6))
Pepito.Merge
Pepito.Cells(1) = Pepito.Cells(1) + 1
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.


Respuesta Responder a este mensaje
#8 Desastres
13/06/2007 - 21:50 | Informe spam
Hola Abraham.
Primero disculpas. No te di las gracias por tu respuesta.

Luego, releyendo tu respuesta, me asalta alguna duda de concepto o al menos eso creo.
Hablas de Pepito como de una variable.
En mi opinión no lo es, aunque varíe.
O de lo contrario debemos ver todas las celdas como variables.
Pepito es un rango cuya propiedad por defecto Value, cambia .
¿Me estoy haciendo la esa un lío?

Saludos
Des



"Abraham" escribió en el mensaje
news:
Hummm, despues de analizar mejor lo que quisiste decir:

Sub iii()
Dim Pepito As Range
Set Pepito = Hoja2.Range(Cells(1, 1), Cells(1, 6))
Pepito.Merge
Set Pepito = Nothing
Set Pepito = [a1]
Pepito = Pepito + 1
Set Pepito = Nothing
End Sub

Tiienes que "vaciar" la variable antes de intentar la suma. Porque?
Pues:

- El primer pepito tiene un rango como valor (Hoja2.Range(Cells(1,
1), Cells(1, 6))), como bien has colocado, la celda combinada,
"adopta" la direccion de la que esta mas a la izquierda y mas arriba,
en este caso A1, pero, ATENCION, la celda adopto la nueva direccion,
NO LA VARIABLE PEPITO, esta, hasta que le asignes un nuevo valor,
sigue siendo un rango.

abraham



Respuesta Responder a este mensaje
#9 Héctor Miguel
14/06/2007 - 07:00 | Informe spam
hola, Des !

... la verdad es que me dejo mal cuerpo no solucionarlo como yo querea.
Lo que no entiendo es porque, si la aplicacion "anula" todo lo que no sea la primera celda, o dicho de otra manera
Pepito practicamente es Hoja2.Cells(1,1), porque no Pepito=pepito + 1?



sencillo ? [basicamente] porque la aplicacion *lo anula* [de cara y solo] en la interfase con el usuario
[al *forzar* que las referencias a rangos combinados *asuman* -solo- la primer celda del mismo] PERO...
-> no te olvides que sigue siendo un rango [combinado si... pero] de varias celdas ;)

es como si pretendieras usar algo +/- como: -> Rango("a1:c15") = Rango("a1:c15") + 1 -???-

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#10 Desastres
14/06/2007 - 10:22 | Informe spam
Hola Héctor.

"> sencillo ? [basicamente] porque la aplicacion *lo anula* [de cara y solo] en la interfase con
el usuario
**este es uno de los puntos que yo pretendí analizar para intentar ver que es lo que pensaron en la
casa grande al diseñar el programa .
Lo que yo vi es que NO solo lo anula cara al usuario. Cuando descombinas las celdas no queda nada
que no estuviera en la primera celda ( y hasta donde se tampoco en variables internas de excel,
salvo para deshacer, que se pierden al guardar la hoja.).
Si quieres de otra forma, las otras celdas, al menos como yo las utilizo, son inutiles. No puedo
hacer nada con ellas en el estado de "combinadas", por lo que Pepito=Pepito + 1 tendría sentido.
Por otro lado si lo comparamos con la posibilidad de que pepito fuera solo la primera celda del
rango, hicieramos la operacion Pepito = Pepito +1 y luego combinaramos todo el rango (Otra
posibiñidad de hacerlo) quizas justificara la expectativa de que se pudiera hacer la operacion en
estado de combinacion

[al *forzar* que las referencias a rangos combinados *asuman* -solo- la primer celda del mismo]


PERO...
-> no te olvides que sigue siendo un rango [combinado si... pero] de varias celdas ;)



**como te digo aquí tengo la sensacion de que o esto puede dejar posibilidades de futuro, o...

es como si pretendieras usar algo +/- como: -> Rango("a1:c15") = Rango("a1:c15") + 1 -???-


** evidentemente esto tendría alguna posible dificultad.

Saludos
Des
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida