Diseño de una Macro que me almacene los datos ingresados de un cliente desde una plantilla prediseñada

Agradezco a quien me pueda colaborar con mi siguiente solicitud.

Tengo una plantilla pre-diseñada en donde inicialmente ingreso los datos de un cliente, en las celdas E6, E8, E10, E12 (Los registros de color negro). Mas abajo ingreso los medicamentos que un cliente debe comprar, la cantidad a comprar y el modo como se lo debe aplicar o tomar en un formato pre-diseñado como se pueden dar cuenta según la imagen a continuación.

Los medicamentos pueden ser de 1 en adelante, para este ejemplo como se pueden dar cuenta fueron 3, pues el 4 espacio está vacío. Los registros de color negro son los datos a almacenar.

Si fuera una hoja de excel en donde todos los datos estuvieran contenidos ordenadamente uno debajo del otro y solo fuera darle copiar y en la hoja donde se fuera a trasladar simplemente fuera darle pegado especial valores y transponer, es sencillo, pido de su ayuda y colaboración es por que este caso para mis conocimientos es mas complejo pues están contenidos en distintas columnas y filas (Cada medicamento).

Agradezco quien me pueda ayudar con esta solicitud y almacenar los datos por paciente en la hoja llamada "BDFormulas" comenzando desde la fila 2. En "A2" colocar la fecha actual en formato "dd-mmm-yy" y a partir de la columna "B" en adelante los datos registrados en la presente hoja llamada "Registro"

1 Respuesta

Respuesta
2

Acabo de enviarte respuesta desde tu otra consulta porque allí se veían las columnas, cosa que en esta imagen no y por lo tanto no podía desarrollarte la macro correctamente.

Solo queda un tema a resolver: si además del texto del medicamento también necesitas que se agreguen col para la unidad y envase o presentación. Comentame.

Si todo está comprendido no olvides valorar las 2 respuestas. Sino valora la anterior y deja las aclaraciones aquí.

Sdos!

Hola Elsa.

Claro, me gustaría que aparte de registrar el nombre de cada medicamento, también se almacene en otra columna la cantidad del mismo, en otra columna la presentación del mismo y otra columna la manera como se debe ser aplicado o tomado (Dosis).

Gracias.

Listo Elsita revisando tu Macro, desarrolle que también tomara los otros datos, entonces me quedó así:

Sub PaseRecetario()
'x Elsamatilde
Set hbd = Sheets("BDFormulas")
'fila libre en hoja BD
filx = hbd.Range("A" & Rows.Count).End(xlUp).Row + 1
'control de contenidos. Verificar antes del pase si se encuentran todos los datos oblitatorios.
'si todo está correcto se inicia el pase
hbd.Range("A" & filx) = Date
hbd.Range("B" & filx) = [E7]
hbd.Range("C" & filx) = [E9]
hbd.Range("D" & filx) = [E11]
hbd.Range("E" & filx) = [E13]
'la cantidad de medicamentos lo indica la col K
ini = 17
fini = Range("K" & Rows.Count).End(xlUp).Row
'la 1er col de destino es la 6 (F)
Colx = 6
For x = ini To fini Step 4
    hbd.Cells(filx, Colx) = Range("C" & x) 'col de texto
    Colx = Colx + 1
    hbd.Cells(filx, Colx) = Range("J" & x)
    Colx = Colx + 1
    hbd.Cells(filx, Colx) = Range("K" & x)
    Colx = Colx + 1
    hbd.Cells(filx, Colx) = Range("D" & x + 1)
    Colx = Colx + 1
Next x
MsgBox "Fin del pase"
End Sub

Siendo asi, entonces queria saber si me regalas la macro contraria, es decir, que no sea de pasar los datos a la hoja "BDFormulas" si al contrario, una macro de consulta en la cual, en la celda "M11" coloco la fecha que deseo buscar (La cual está registrada en la columna "A" de la hoja "BDFormulas" y en la celda "M12" coloco el ID del paciente que deseo revisar (Que en la hoja "BDFormulas" está en la contenido en la columna "B". Al encontrarlo entonces me trae los datos necesarios a la hoja "Registro" en las mismas posiciones que ya tenemos de la macro anterior.

Esa es la idea: que Uds puedan resolver los pequeños detalles, por eso dejo todos mis códigos lo más explicados posible.

Bien, te haré solo una pequeña mejora que para este caso no tendría tanta importancia ya que son 3 items más pero imagina si te hubiesen faltado 10 o más. Y es la de no utilizar la suma de col en cada pase sino de este modo:

For x = ini To fini Step 4
    hbd.Cells(filx, Colx) = Range("C" & x) 'col de texto
    hbd.Cells(filx, Colx+1) = Range("J" & x)
    hbd.Cells(filx, Colx+2) = Range("K" & x)
    hbd.Cells(filx, Colx+3) = Range("D" & x + 1)
    Colx = Colx + 4
Next x

Con respecto a la macro de búsqueda con mucho gusto. Pero ya sabes cómo son las reglas aquí: cada tema se indica en su título. Mucha gente utiliza el buscador para encontrar las macros que necesitan. Deja una nueva en el tablón indicado que se trata de una búsqueda. En el cuerpo del mensaje indica que es: Para Elsa si te parece.

¡Gracias! 

No, lo siento. La consulta va dirigida a otro experto, ya te la responderá.

Sé que tenés un gran proyecto y te lo estamos desarrollando aquí.

Por lo tanto tené un poco de paciencia porque es un foro para todos... tratamos de ir respondiendo a cada uno con sus consultas para que puedan avanzar... mientras podés ir buscando consultas similares aquí en el foro para ir adaptándolas o leyendo sobre Macros en mi sitio donde en la sección Ejemplos también dejé bastante material de descarga.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas