Asignar un nombre a una columna

16/09/2007 - 15:58 por Daniel Pozzi | Informe spam
Hola, hay manera de asignarle un nombre a una columna de excel para hacer
referencia a ella desde vb usando el nombre y no la letra de la columna?
Gracias!

Preguntas similare

Leer las respuestas

#6 Daniel Pozzi
18/09/2007 - 15:18 | Informe spam
El código es largo, busca columnas q en la 1º línea tenga el mismo nombre q
lo q esta antes de "=" (Ej.: Type, Ej.:Routeparam) y agrega en la celda de
la línea correspondiente el valor q esta despues del "=", nada complicado.
Pero pensaba q quiza asignandole un nombre a la columna me podría ser mas
facil. En lugar de usar cells(L,15)=xxxxx podría usar algo como
cells(L,(Type))
Gracias por tu atencion!

Daniel


"Héctor Miguel" escribió en el mensaje
news:%23oF7QJf%
Mostrar la cita
#7 Héctor Miguel
18/09/2007 - 21:43 | Informe spam
hola, Daniel !

Mostrar la cita
puedes exponer [al menos] la parte de codigo que *busca* la columna correspondiente para lo que esta antes del "=" ?
y la contraparte que agrega en *la celda* lo que esta despues del "=" ?

saludos,
hector.
#8 Daniel Pozzi
19/09/2007 - 03:57 | Informe spam
Function miracol(Texto)
c = 1
inicol:
If Cells(1, c) = Texto Then
miracol = c
Exit Function
Else
If Cells(1, c) = "" Then
Cells(1, c) = Texto
miracol = c
Exit Function
Else
c = c + 1
GoTo inicol
End If
End If
End Function

con esto tengo el indice de la columna, si no existe, la crea.
despues le doy valor a la celda




"Héctor Miguel" escribió en el mensaje
news:uuqbywi%
Mostrar la cita
#9 Héctor Miguel
19/09/2007 - 04:42 | Informe spam
hola, Daniel !

Mostrar la cita
si lo que quieres es evitar que cada *busqueda* por algun titulo en columnas se re/inicie desde la columna 1
y asumiendo que no habra celdas vacias de por medio [segun el codigo que expones] -?-
prueba usando las funciones de hoja de calculo del objeto Application, que son [generalmente] *rapidas* :))
-> en el caso de VB, recuerda que se cambia al *Application* por la variable de su instanciacion [oExcel ?]

haz pruebas con la siguiente funcion [modificada/adaptada/...]

Function miracol(Texto) As Byte
With Application
If .CountIf(.Rows("1:1"), Texto) Then
miracol = .Match(Texto, .Rows("1:1"), 0)
Else
miracol = .CountA(.Rows("1:1")) + 1
.Cells(1, miracol) = Texto
End If
End With
End Function

saludos,
hector.

__ el codigo expuesto __
Mostrar la cita
#10 Daniel Pozzi
19/09/2007 - 23:32 | Informe spam
Gracias! funciona, ahora me queda probar si es mas rapido.
Saludos

Daniel



"Héctor Miguel" escribió en el mensaje
news:etdV9am%
Mostrar la cita
Ads by Google
Search Busqueda sugerida