Saltar al contenido

cuadrar offset en un formulario


Recommended Posts

hola

no logro cuadrar los datos en un formulario vb, estos datos se intruducen en una hoja de excel, el cual ya esta resuelto,, pero no puedo cuadrar los offset para q queden bien parejos debajos de los rotulos en el formulario,, y tampoco me listan, cuando llamo un dato,,

que tengo q mover para q me queden parejo

adjunto foto

este es el codigo

If ActiveCell.Value = 0 Then
ActiveCell.Offset(0, -50).Select
LISTACLI.ColumnCount = 4
LISTACLI.AddItem
LISTACLI.List(LISTACLI.ListCount - 1, 0) = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
LISTACLI.List(LISTACLI.ListCount - 1, 1) = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
LISTACLI.List(LISTACLI.ListCount - 1, 2) = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
LISTACLI.List(LISTACLI.ListCount - 1, 3) = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
LISTACLI.List(LISTACLI.ListCount - 1, 4) = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
'LISTACLI.List(LISTACLI.ListCount - 1, 5) = ActiveCell.Value
'ActiveCell.Offset(1, -5).Select
Else
ActiveCell.Offset(0, -50).Select
End If

 

gracias

 

Sin título.png

Enlace a comentario
Compartir con otras webs

Hace 3 horas, ikanni dijo:

Hola

Prueba con la propiedad ListBox


LISTACLI.ColumnWidths ="x;x;x;x"

 

te explico ,es decir, el formulario carga cuando se llama,, pero como le estoy modificando elcodigo para tratar de componerlo,, ya corregi el orden, pero ahora los datos se desaparecieron,,  cuando se digita aparecen pero no la tercera columna,, y tampoco inserta los datos en la hoja, llevo 3 dias con esto,,,

Enlace a comentario
Compartir con otras webs

Hace 4 horas, lug barry dijo:

te explico ,es decir, el formulario carga cuando se llama,, pero como le estoy modificando elcodigo para tratar de componerlo,, ya corregi el orden, pero ahora los datos se desaparecieron,,  cuando se digita aparecen pero no la tercera columna,, y tampoco inserta los datos en la hoja, llevo 3 dias con esto,,,

Si no subes tu archivo y explicas EXACTAMENTE lo que quieres, ni en 3 días, ni en 3 meses, ni en 3 años vas a tener una respuesta satisfactoria. :angry:

Enlace a comentario
Compartir con otras webs

Hace 5 horas, Antoni dijo:

Si no subes tu archivo y explicas EXACTAMENTE lo que quieres, ni en 3 días, ni en 3 meses, ni en 3 años vas a tener una respuesta satisfactoria. :angry:

jajajaa,, viejo antoni zorro de excell jaja tienes razon,, te acuerdas de mi?,,, me ayudaste en una aplicacion hace algunos años atras, para un hotel,, el Ancor,, te acuerdas??  ok,, subire mas bien el link pues aqui no me deja subir el archivo,,,

https://drive.google.com/open?id=1N9fzmTIiEXAqYskwwAuO_CVGAOrvcnOH

bueno te explico

para entrar al soporte tecnico,, hay un boton q dice SOPORTE,, alli das clic

usuario: lug

pasw: cretorno

ok,, el problema radica en el formulario  para busqueda de cliente q esta en la hoja de factura (principal) formularclien

la idea es ordenar el formulario para poder insertar datos en el hoja, los datos a ingresar son Nombre, direccion y telefono,, 

ya que como no pude hacerlo entonces lo hice manualmente por medio de la formula indice,, esa la dejas asi,, pues la idea es hacerlo de 2 formas diferente, una con el formulario y la otra manualmente digitando la cedula en la celda E5,, ok

en pocas palabras es ordenar el formulario

por favor abrir tambien el archivo comprimido, es una foto

 

nos os olvide habilitar las macros. 

las claves son para habilitar las cintas reboon y fichas y barra de formulas,,

me gusta aplicar estos codigos para darle una mejor presentacion alas aplicaciones

 

 

Sin título.rar

Enlace a comentario
Compartir con otras webs

Hola @lug barry!

Te modifico un poco el código, para que se carguen los datos en forma automática (incluídos los títulos).

Fíjate si es lo que deseas (es diferente de lo que estabas escribiendo).

Suerte!

Private Sub UserForm_Activate()
With Application
    .ScreenUpdating = False
    .DisplayAlerts = False
End With

ufila5 = 0: ufila5 = Hoja5.Cells(Rows.Count, 2).End(xlUp).Row
If ufila5 < 8 Then ufila5 = 8
LISTACLI.ColumnCount = 6
LISTACLI.Width = 480
LISTACLI.ColumnWidths = "30; 100; 100; 50; 50; 150"
LISTACLI.RowSource = Hoja5.Name & "!A7:F" & ufila5
Sheets("PRINCIPAL").Select
Range("D3").Select

'anulamos lo anterior
'Sheets("CLIENTES").Activate
'Range("B8").Select
'While ActiveCell.Value <> ""
'    ActiveCell.Offset(0, 50).Select
'    If ActiveCell.Value = 0 Then
'        ActiveCell.Offset(0, -5).Select
'        LISTACLI.ColumnCount = 3
'        LISTACLI.AddItem
'        LISTACLI.List(LISTACLI.ListCount - 1, 1) = ActiveCell.Value
'        ActiveCell.Offset(0, 1).Select
'        LISTACLI.List(LISTACLI.ListCount - 1, 2) = ActiveCell.Value
'        ActiveCell.Offset(0, 1).Select
'        LISTACLI.List(LISTACLI.ListCount - 1, 3) = ActiveCell.Value
'        ActiveCell.Offset(0, 1).Select
'        LISTACLI.List(LISTACLI.ListCount - 1, 4) = ActiveCell.Value
'        ActiveCell.Offset(0, 1).Select
'        'LISTACLI.List(LISTACLI.ListCount - 1, 4) = ActiveCell.Value
'        'ActiveCell.Offset(0, 1).Select
'        'LISTACLI.List(LISTACLI.ListCount - 1, 5) = ActiveCell.Value
'        'ActiveCell.Offset(1, -5).Select
'    Else
'        ActiveCell.Offset(1, -5).Select
'    End If
'Wend

With Application
    .ScreenUpdating = True
    .DisplayAlerts = True
End With
End Sub

 

Enlace a comentario
Compartir con otras webs

mmm,, hola tierra pampa, no entiendo cuando dices:

es diferente a lo q escribia por q modifico el codigo, pero el ultinmoo mensaje,, el q le escribi a antoni, es la explicacion correcta

lo q busco es ordenar el fomulario , q me liste los datos y los  inserte  en la hoja,  haciendo un doble clic, solo son 3 o 4 campos,,,,

el formulario debe listarme en su cuerpo de mensaje el dato del cliente, como nombre direccion e identidad y el telefono,, se puede buscar por nombre o por numero de indentidad,,,

probe el codigo pero solo me lista los datos, y no hace mas,, 

Enlace a comentario
Compartir con otras webs

A  ver... no entiendo... Parecía por tu explicación que querías dar de alta los clientes en la hoja CLIENTES.

Hace 6 minutos , lug barry dijo:

lo q busco es ordenar el fomulario , q me liste y q inserte los datos en la hoja,, solo son 3 o 4 campos,,,,

el formulario debe listarme en su cuerpo de mensaje el dato del cliente, como nombre direccion e identidad y el telefono,, se puede buscar por nombre o por numero de indentidad,,,

Es lo que hace. La única diferencia es que no subes los registros de a uno sino en bloque y con los títulos. Por eso, no tendrás problemas para la visualización de los datos.

post41655.thumb.png.7df43faf9263222242e27dd06772c0d2.png

Pruébalo y comentas.

Enlace a comentario
Compartir con otras webs

LOS ROTULOS O TITULOS NO VAN Dentro del cuerpo del mensaje,

no es asi lo q estoy buscando,,  es un poco diferente

te explico

con el boton buscar paciente de la hoja principal o factura,, llamo al form

ok

una ves abierto el form, debe listarme los datos de la hoja cliente,,,, en los campoc NOMBRE E IDENTIFICACION, debo digitar por nombre o indentficacion para buscar en la gran catindad de pacientes q van  a estar contenido en la hoja cliente,,,,  aunq

yo lo hago de forma manual, digitando en la celda E5 , digitando su numero de identicacion,,, es decir busco tener las 2 fomas,  por formulairo y por la formulas,, la fomula ya esta hecha,,,lo hice con la funcion INDICE,, 

es el formulario el q no puedo cuadrar

Enlace a comentario
Compartir con otras webs

te voy a pasar un video de lo q busco,,, ya q el codigo no es mio,, simplemente lo modifico y lo adapto a mis requerimientos

solo mira los primero 50seg ,, el resto es explicaicon de como o hace, como tu eres un experto pues no pierdas tiempo viendo todo el video.

el problema es q no puedo cuadrar los rotulos  e insertarlos,,,

 

Enlace a comentario
Compartir con otras webs

Hace 14 horas, tierra_pampa dijo:

A  ver... no entiendo... Parecía por tu explicación que querías dar de alta los clientes en la hoja CLIENTES.

Es lo que hace. La única diferencia es que no subes los registros de a uno sino en bloque y con los títulos. Por eso, no tendrás problemas para la visualización de los datos.

post41655.thumb.png.7df43faf9263222242e27dd06772c0d2.png

Pruébalo y comentas.

ya lo probe, te deje un video, de como es q busco hacerlo

Enlace a comentario
Compartir con otras webs

Hace 1 hora, Gerson Pineda dijo:

Y si lo intentas tu, digo ya con el video completo, solo es que vayas poco a poco, mirando como aplicar a tu formulario

 

Saludos

hola,, sr gerson,, no estoy pidiendo q me hagan el formulario,, ya lo hice fijandome en el video del sr ramon,, solo q no me cuadran los datos q voy a insertar en la hoja,, nose manejar el offset, de hecho la aplicacion la hice fue asi, fijandome y adaptado los codigos,, no se programar, pero entiendo un poc el visual,,,  he intentado de todo y nose q pasa,, hay algun variacion en el cosfigo q hay q hacer y no se hacerla,,

Enlace a comentario
Compartir con otras webs

Hola @lug barry

Hace 23 horas, lug barry dijo:

LOS ROTULOS O TITULOS NO VAN Dentro del cuerpo del mensaje,

Recuerda que no debes escribir en mayúsculas (es lo mismo que gritar) https://ayudaexcel.com/foro/terms/

Prueba este código a ver si es lo que necesitas (reemplaza el código que tienes en el "FORMULARIOCLI" por éste)

Private Sub UserForm_Activate()
With Application
    .ScreenUpdating = False
    .DisplayAlerts = False
End With

Dim fila As String
Sheets("CLIENTES").Activate
Range("B8").Activate
fila = 0: fila = 8
LISTACLI.ColumnCount = 6
LISTACLI.Width = 500
LISTACLI.ColumnWidths = "5;80;80;50;50;50"
While Cells(fila, 2).Value <> ""
    If Cells(fila, 2).Value <> "" Then
        LISTACLI.AddItem
        LISTACLI.List(LISTACLI.ListCount - 1, 1) = ActiveSheet.Cells(fila, 1).Value
        LISTACLI.List(LISTACLI.ListCount - 1, 2) = ActiveSheet.Cells(fila, 2).Value
        LISTACLI.List(LISTACLI.ListCount - 1, 3) = ActiveSheet.Cells(fila, 3).Value
        LISTACLI.List(LISTACLI.ListCount - 1, 4) = ActiveSheet.Cells(fila, 4).Value
        LISTACLI.List(LISTACLI.ListCount - 1, 5) = ActiveSheet.Cells(fila, 5).Value
        LISTACLI.List(LISTACLI.ListCount - 1, 6) = ActiveSheet.Cells(fila, 6).Value
        fila = fila + 1
    End If
Wend
Sheets("PRINCIPAL").Activate

With Application
    .ScreenUpdating = True
    .DisplayAlerts = True
End With
End Sub

Si te ayudó la colaboración recibida, puedes agradecerlo con un click en el corazón que se encuentra en la parte inferior derecha del comentario.

Enlace a comentario
Compartir con otras webs

Hace 12 horas, tierra_pampa dijo:

Hola @lug barry

Recuerda que no debes escribir en mayúsculas (es lo mismo que gritar) https://ayudaexcel.com/foro/terms/

Prueba este código a ver si es lo que necesitas (reemplaza el código que tienes en el "FORMULARIOCLI" por éste)


Private Sub UserForm_Activate()
With Application
    .ScreenUpdating = False
    .DisplayAlerts = False
End With

Dim fila As String
Sheets("CLIENTES").Activate
Range("B8").Activate
fila = 0: fila = 8
LISTACLI.ColumnCount = 6
LISTACLI.Width = 500
LISTACLI.ColumnWidths = "5;80;80;50;50;50"
While Cells(fila, 2).Value <> ""
    If Cells(fila, 2).Value <> "" Then
        LISTACLI.AddItem
        LISTACLI.List(LISTACLI.ListCount - 1, 1) = ActiveSheet.Cells(fila, 1).Value
        LISTACLI.List(LISTACLI.ListCount - 1, 2) = ActiveSheet.Cells(fila, 2).Value
        LISTACLI.List(LISTACLI.ListCount - 1, 3) = ActiveSheet.Cells(fila, 3).Value
        LISTACLI.List(LISTACLI.ListCount - 1, 4) = ActiveSheet.Cells(fila, 4).Value
        LISTACLI.List(LISTACLI.ListCount - 1, 5) = ActiveSheet.Cells(fila, 5).Value
        LISTACLI.List(LISTACLI.ListCount - 1, 6) = ActiveSheet.Cells(fila, 6).Value
        fila = fila + 1
    End If
Wend
Sheets("PRINCIPAL").Activate

With Application
    .ScreenUpdating = True
    .DisplayAlerts = True
End With
End Sub

Si te ayudó la colaboración recibida, puedes agradecerlo con un click en el corazón que se encuentra en la parte inferior derecha del comentario.

buen dia,, disculpa,, pero es q yo escribo viendo el teclado,, no me di cuenta,, y no sabia q escribir en mayuscula es gritar, en serio no sabia,, y gracias,, por aveces escribo entre mayus y minus,,  a veces veo y cuando me doy cuenta tengo escrito mucho, y para no borrar pues lo envio asi,  bueno voy a probar el codigo, si viste el video?

Enlace a comentario
Compartir con otras webs

ok,, bueno gracias por tu ayuda, pero nada,asi No es, no insertan los datos,, y el campo direccion esta muy cerrado o muy estrecho, y tambien debria listar por numero de identificacion o nombre

por eso te comente q vieras el video,,, los primero 40seg..

me da pena estar molestandote, asi q preferi quitar ese formulario, y hacerlo de forma manual digitando el ID, en la celda E5

hasta q el sr ramon(el q hizo el video y creador del cod) me consteste, lo seguire intentando hasta lograr lo q busco,, q es exactemen como el video,,,y se q todo esta en el offset..

gracias

Enlace a comentario
Compartir con otras webs

Hola @lug barry

No te desanimes. Siempre se aprende algo.

En el post anterior,  mo modifiqué el código que inserta los valores en la hoja "PRINCIPAL", solo modifiqué el código que muestra el formulario con los campos que tu solicitabas. El paso que inserta los valores es simple.

Hace 7 horas, lug barry dijo:

LISTACLI.Width = 500
LISTACLI.ColumnWidths = "5;80;80;50;50;50"

Revisa la ayuda de Excel VBA y podrás ver que significan cada una de las órdenes. Con la primera,estableces el ancho del listbox; con la segunda estableces el ancho de los campos del listbox. Si alguno queda chico, pues aumentas el número puesto en el orden que corresponda (si quieres aumentar el ancho del campo de la columna "C", aumenta el tercer valor de la orden).

Suerte!

Enlace a comentario
Compartir con otras webs

Hace 15 minutos , tierra_pampa dijo:

Hola @lug barry

No te desanimes. Siempre se aprende algo.

En el post anterior,  mo modifiqué el código que inserta los valores en la hoja "PRINCIPAL", solo modifiqué el código que muestra el formulario con los campos que tu solicitabas. El paso que inserta los valores es simple.

Revisa la ayuda de Excel VBA y podrás ver que significan cada una de las órdenes. Con la primera,estableces el ancho del listbox; con la segunda estableces el ancho de los campos del listbox. Si alguno queda chico, pues aumentas el número puesto en el orden que corresponda (si quieres aumentar el ancho del campo de la columna "C", aumenta el tercer valor de la orden).

Suerte!

ASI es TIERRA pampa, ya organice el formulario, lo descubbri hace poco, antes de ver tu mensaje,, gracias,

 pero por q no inserta los datos en la hoja?? le doy doble clic y no hace nada,,, cuando voy a buscar por nombre o por cedula, deberia listar y filtrar pero tampoco lo hace, es decir si te das cuenta en la hoja donde esta la factura, hay 3 campos - Nombre-direcion y telefono y numero de cedula, el solo me deberia insertar el numero de indetificacion en la celda E5 autmaticamente aparecen los datos, ya q estan con formula

q instrucccion tengo q modificar?

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.