Botón actualizar datos

24 envíos / 0 nuevos
Último envío
Marcela_ov
Imagen de Marcela_ov
Offline
última acción: Hace 9 meses 1 semana
alta: 16/07/2017 - 19:03
Puntos: 130
Botón actualizar datos

Buen día, tengo un problema parecido al que resuelves en este post... soy nueva en esto de VBA y buscando en tutoriales y libros e ido programando una base de datos solo que al querer hechar andar el boton de actualizar no e podido se me duplican los datos o bien se guardan en otras celdas...  el boton de buscar yo lo programe de la siguiente manera...

Private Sub CommandButton2_Click()

Worksheets("BASE_DATOS").Activate

Range("A4.JF1000").Select

 Cells.Find(What:=TextBox1, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _

   False, SearchFormat:=False).Activate

       

       

ActiveCell.Offset(0, 1).Select

TextBox2 = ActiveCell               'Nombre

 

Podrias ayudarme por favor... estoy desesperada , de ante mano gracias!!!

Llora

Cron
Imagen de Cron
Offline
última acción: Hace 12 horas 18 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 10130
Hola¿Qué es exactamente lo

Hola

¿Qué es exactamente lo que quieres hacer?

 

Un saludo

Marcela_ov
Imagen de Marcela_ov
Offline
última acción: Hace 9 meses 1 semana
alta: 16/07/2017 - 19:03
Puntos: 130
Hola Cron.. quiero programar

Hola Cron.. quiero programar un boton para actualizar datos... es decir los busco y quiero modificarlos... lo que me pasa es que al querer hacerlo se me duplican... y no e encontrado la forma para programarlo

Cron
Imagen de Cron
Offline
última acción: Hace 12 horas 18 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 10130
La idea general está clara.

La idea general está clara. Pero debes ser más precisa.

¿Quieres que al pulsar un botón en un formulario, los valores que hay en un textbox se copien a una celda?¿Quieres que la hoja actualice los datos que llegan desde otra hoja/libro? ¿Quieres que se recalcule la hoja porque no lo hace? ¿Qué es exactamente para ti "actualizar datos"?

 

Un saludo

Marcela_ov
Imagen de Marcela_ov
Offline
última acción: Hace 9 meses 1 semana
alta: 16/07/2017 - 19:03
Puntos: 130
Buen día Cron, tengo un boton

Buen día Cron, tengo un boton "Actualizar".... Yo busco un dato (mediante el # de empleado) me aparece la información de este (Nombre, apellidos, examenes, fechas y calificaciones de los mismos... como estos tienen validez solo por un año requiero estar cambiando esta informacion.... entonces quiero buscar al empleado #4512 y modificar ciertos datos y que estas modificaciones sustituyan a las anteriores en la misma casilla.... cosa que no hace... busco al empleado #4512 me muestra toda la informacione cada casilla del formulario y al modificar algo me lo guarda en otras celdas como un empleado nuevo....

¿Podria adjuntar el archivo aqui mismo?

Marcela_ov
Imagen de Marcela_ov
Offline
última acción: Hace 9 meses 1 semana
alta: 16/07/2017 - 19:03
Puntos: 130
Te adjunto una captura de

Te adjunto una captura de pantalla del formulario... quiero cambiar datos desde el formulario y que se reflejen el mi archivo excel.

 

De ante mano gracias por tu tiempo.

AdjuntoTamaño
Image icon formulario.png141.59 KB
Cron
Imagen de Cron
Offline
última acción: Hace 12 horas 18 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 10130
Vale, entonces entiendo que

Vale, entonces entiendo que lo que tienes es un formulario y quieres que el valor del textbox se copie a la celda. Tu código está al revés. Cuando haces la búsqueda, copias el valor de la celda al textbox del formulario.

Cuando haces una asignación (un signo igual), el lado de la derecha es el que tiene el valor, y el de la izquierda es donde lo quieres poner.

En tu caso, sustituye:

ActiveCell.Offset(0, 1).Select

TextBox2 = ActiveCell

por lo siguiente:

ActiveCell.Offset(0, 1).Select

Activecell.value = TextBox2

Marcela_ov
Imagen de Marcela_ov
Offline
última acción: Hace 9 meses 1 semana
alta: 16/07/2017 - 19:03
Puntos: 130
Se siguen guardando los datos

Se siguen guardando los datos modificados como un dato totalmente nuevo, es decir, en otras casilla de la base de datos.. aque se debera esto?

Te adjunto el archivo espero puedas darle un vistaso.

De ante mano muchas gracias!

AdjuntoTamaño
File base_de_datos_proyecto.xlsm3.68 MB
Cron
Imagen de Cron
Offline
última acción: Hace 12 horas 18 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 10130
En el código asociado al

En el código asociado al botón "Actualizar datos" le dices que lo copie en la primera fila. Sin embargo, en el código que nos pasaste en tu primera pregunta, realizas una búsqueda con este código:

Cells.Find(What:=TextBox1, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate

Y que ahora ha desaparecido en el archivo que nos has mandado.

En cuanto lo pones en su sitio, el botón funciona perfectamente.

 

Un saludo

Marcela_ov
Imagen de Marcela_ov
Offline
última acción: Hace 9 meses 1 semana
alta: 16/07/2017 - 19:03
Puntos: 130
Cron, muchisimas gracias por

Cron, muchisimas gracias por tu ayuda me ha servido de mucho.

Saludos!!

Marcela_ov
Imagen de Marcela_ov
Offline
última acción: Hace 9 meses 1 semana
alta: 16/07/2017 - 19:03
Puntos: 130
Ayuda......

Buen día podria ayudarme con un problema que me ha surgido al crear una base de datos en excel con vba por favor.

He creado un formulario en excel contiene combobox y textbox's para capturar datos y guardarlos celdas especificas en una hoja excel ... lo que no logro hacer (y tampoco encontré algo similar que pudiese adaptar a mi situación) es:

Como puedo buscar informacion a partir de 2 datos introducidos en el formulario (en este caso en el ComboBox4 y texbox179 respectivamente) y al pulsar el botón  "consultar" (que lleva por nombre CONSULTARCAP...  se carguen los demás datos en los demás textbox ( que serian el: TextBox177 y TextBox178 ).

De ante mano muchas gracias por su ayuda.

Saludos :)

Cron
Imagen de Cron
Offline
última acción: Hace 12 horas 18 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 10130
¿Dónde están los datos que

¿Dónde están los datos que necesitas cargar a los otros combos?

Si la info ya está en la hoja, ¿de verdad necesitas cargarlos al formulario?

De todas maneras, para buscar el Cells.find que utilizabas está bien. Esto te da una celda, por lo que si lo asignas a un objeto tipo range, puedes obtener fila y columna. Algo así como:

 

Dim objeto as range

objeto = Cells.Find(What:=TextBox1, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate

fila = objeto.row

columna = objeto.column

 

Esto te puede servir si necesitas encontrar una celda y devolver el valor de dos celdas más a la derecha. Harías:

Valor = cells(fila,columna + 2)

 

Un saludo

pedro (no verificado)
Imagen de pedro
Pregunta

Clon yo tengo un problema igual para la actualizacion de una base de datos.. pero mi pregunta se puede hacer por medio de una grabacion de macro...

Cron
Imagen de Cron
Offline
última acción: Hace 12 horas 18 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 10130
El problema de las

El problema de las grabaciones de macro es que siempre trabajarán con la misma celda en la que encontraste el dato cuando la grabaste.

En realidad las grabaciones son una herramienta muy útil, pero salvo para cosas muy concretas y sencillas, yo no las utilizaría sin pasarles después de grabarlas el filtro del ojo del programador.

Pedro villa
Imagen de Pedro villa
Offline
última acción: Hace 3 semanas 3 días
alta: 28/04/2018 - 20:17
Puntos: 60
Como le puedo hacer...

Hola Cron espero expricarme en mi problema y sobre todo espero que me ayudes, realice un archivo el cual funciona capturando la informacion deseada en celdas y guardandolas por medio de una macro en un libro externo llamado base de dato, cada dato tiene un numero unico el cual al editar dichos datos con este numero los busco y me da la informacion requerida, pero quisiera actualizar los datos, por ejemplo si busco el codigo, 12345 y la informacion es Nombre:Mesa,Material:Madera, Proceso:Corte...Etc. Yo quisiera actualizar el Proceso de Corte a Barnizado, para que cuando pase algun inspector y escanee el codigo le aparesca en que proceso esta dicho producto, espero averme explicado y me puedas ayudar...

Cron
Imagen de Cron
Offline
última acción: Hace 12 horas 18 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 10130
Lo que suelo hacer cuando

Lo que suelo hacer cuando esto se realiza por código es una idea parecida a como funciona BUSCARV.

Cuando utilizas BUSCARV, lo primero que haces es ponerte en la primera columna, buscar el valor correspondiente, y luego desplazarte a la derecha x celdas y tomar ese dato.

En código es parecido, pero hay que hacer el proceso manualmente.

Busco en la primera columna con el método Range("A:A").find("loquequierobuscar")

En ocasiones puedo añadir más parámetros a find, en función de cómo quiera que se comporte.

Esta búsqueda la asigno a una variable de tipo range, y luego me desplazo hacia la derecha y hago la magia, algo así como:

Dim celda As Range
Set celda = Range("A:A").find("12345")
if not celda is nothing
    celda.offset(0,4).value = "valorquequieroañadir"
end if

En este ejemplo considero que quieres cambiar el valor de la columna D.

Espero que te sirva.

Pedro villa
Imagen de Pedro villa
Offline
última acción: Hace 3 semanas 3 días
alta: 28/04/2018 - 20:17
Puntos: 60
Gracias...

Ok lo pondré en práctica y espero y me funcione de antemano gracias...

Pedro villa
Imagen de Pedro villa
Offline
última acción: Hace 3 semanas 3 días
alta: 28/04/2018 - 20:17
Puntos: 60
Disculpa no tengo mucha

Disculpa no tengo mucha experiencia en las macros pero ya hice lo q me enviastes pero me envía algunos errores q fui solucionando pero aún así no obtengo resultado, cabe mencionar q mi archivo de Base de Datos y el de Captura de datos se encuentran en libros diferentes..

Cron
Imagen de Cron
Offline
última acción: Hace 12 horas 18 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 10130
¿Puedes poner aquí qué es lo

¿Puedes poner aquí qué es lo que has hecho exactamente?

Es más, ¿podrías subir los archivos? Por supuesto, antes de subirlos, elimina los datos o deja datos falsos.

 

Un saludo

Pedro villa
Imagen de Pedro villa
Offline
última acción: Hace 3 semanas 3 días
alta: 28/04/2018 - 20:17
Puntos: 60
Envio archivo

Ok.... mira este es mi archivo para capturar proyectos..

 

 

 

 

 

 

 

 

 

 

 

 

Cada que le doy guardar se envia a un nuevo libro que se llama Base de Datos.

 

 

 

 

 

 

 

 

 

 

 

 

Lo que necesito hacer es que cuando busque algun codigo (1,2,3,4) pueda cambiar el PROCESO (de SOLDAR a PINTURA) en el que se encuaentra dicho proyecto y eso realizarlo desde mi archivo de Captura de proyecto y que se cambie en el archivo de Base de datos, como te comente se encuentran en diferentes libros de exel.... espero y me ayudes

Cron
Imagen de Cron
Offline
última acción: Hace 12 horas 18 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 10130
Sí, la estructura más o menos

Sí, la estructura más o menos la tenía clara. Lo que no sé es qué es lo que has hecho en el código hasta ahora. Es decir, qué código es el que no te funciona.

Lo digo porque una cosa es desarrollar aquí todo el código y otra diferente es resolver alguna duda. Si tienes dudas concretas, estaré encantado de resolvértelas.

Ya te he dicho cómo lo haría yo. Y tú me has dicho que lo has intentado y que te da error. Si quieres, sube el código que te da error y vemos dónde puede estar el problema, pero un foro no es el lugar donde se desarrolle el código.

Espero que me entiendas.

Pedro villa
Imagen de Pedro villa
Offline
última acción: Hace 3 semanas 3 días
alta: 28/04/2018 - 20:17
Puntos: 60
Ok Mira segun alo que entendi

Ok Mira segun alo que entendi fue sobre el codigo que me enviaste

Dim celda As Range
Set celda = Range("[BASE DE DATOS PROYECTOS.xlsm]BASE DATOS DE PROYECTOS'!B3:F100").find("CAPTURA PROYECTOS.xlsm'!C4")
if not celda is nothing
    celda.offset(0,6).value = "CAPTURA PROYECTOS.xlsm'!C8"
end if

 

Cron
Imagen de Cron
Offline
última acción: Hace 12 horas 18 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 10130
Ok¿Esto te funciona

Ok

¿Esto te funciona correctamente?

 

Un saludo

Pedro villa
Imagen de Pedro villa
Offline
última acción: Hace 3 semanas 3 días
alta: 28/04/2018 - 20:17
Puntos: 60
No...

No realiza ninguna función...