Libro compartido

Hola Fernando, me alegra muchísimo poder encontrarte disponible, estaba tratando de comunicarme con vos de hace días y no podía, así que como te dije muy contento de encontrarte.
Bueno paso a la pregunta:
Tengo un problema, quiero compartir un libro de excel con otra PC el cual tiene 2 formularios creados en VBA que básicamente son para realizar más rapido una tarea rutinaria de cargar datos y que se guarden en una base de datos en el mismo libro.
Bien el problema es que cuando comparto el libro, los cambios en el mismo son guardados y en la ultima PC que pongo que me lo guarde me pregunta sobre los cambios conflictivos, ya que en ambas PC se guardan en la misma fila, y termina sobrescribiendo dicha fila. Entonces:
- Es posible compartir un libro de excel desde VBA sin que me sobrescriba los registros de otra pc.
- Si se puede me puedas mandar el código, o si en la ayuda de VBA puedo encontrar algo al respecto.
Muchas gracias por todo, un saludo. Fernando Fontana.

1 Respuesta

Respuesta
1
En realidad, casi siempre estoy disponible, es sólo que desde que agregaron ese ícono en la descripción de cada experto, no se actualiza correctamente.
Por ello usé el espacio que dan para aclarar que ingresen a mi perfirl pra ver si realmente no estoy disponible(Si, a veces no estoy, por la enorme cantidad de preguntas sin finalizar que tengo).
OK, respecto a tu consulta estoy un tanto extrañado. No es necesario macro alguna para hacer lo que solicitas.
En realidad, es una opción que puedes elegir al momento de compartir el libro. En la solapa "Uso Avanzado" marca la opción "Prevalecen los cambios guardados"
Convengamos que algo hay que hacer con esos ingresos: O los aceptamos o lo rechazamos. No pueden convivir o superponerse, por ello esta opción toma una decisión por nosotros.
Espero que te haya sido útil.
Un abrazo!
Fernando
Hola Fernando, ante todo gracias por responder tan rapido. Te cuento que ya te había escrito hoy a la tarde pero, la página anda como la mona y no registro la pregunta, ahora te escribo nuevamente.
En realidad el problema de compartir el libro es justamente que me sobrescriba y no que convivan los datos ingresados.
Lo que pretendo como te dije es realizar más rapido una tarea rutinaria de cargar registros y que se guarden en una base de datos en el mismo libro no importa que sea en la fila 8 o 10 o 12, simplemente lo que ingresen los distintos usuarios sea guardado en el libro.
Por ejemplo como lo hacen los distintos sistemas contables (por ej. Tango) en el cual distintos usuarios ingresan facturas de ventas a la vez y estos son registrados en una base de datos, sin que se sobreescriban.
Como aquí el problema es que, cuando se ingresan los registros estos son guardados inmediatamente en la misma fila en ambas PC aquí se produce el conflicto, entonces lo que deseo, aunque resulte repetitivo, es que se guarde todo los registros ingresados en ambas PC.
Igualmente Fernando muchas gracias por tu ayuda.
Un saludo para vos y tu familia.
Fernando Fontana.
Esa es otra definición no incluida en tu primera explicación.
Bien visto que hablas de un formulario de VBA, deberías incorporarle al momento del vuelco a la base una rutina que considere cuál es la última celda ocupada. Así, supuesto que existan un textbox1 y un textbox2 en tu formulario, tal rutina será:
Private Sub CommandButton1_Click()
Dim CeldaIni As Range
Set CeldaIni = Range("E7")
Pegadato1 = TextBox1.Value
Pegadato2 = Val(TextBox2.Value)
If IsEmpty(CeldaIni) Then
CeldaIni.Value = Pegadato1
CeldaIni.Offset(0, 1).Value = Pegadato2
ElseIf CeldaIni.End(xlDown).Row > 50000 Then
CeldaIni.Offset(1).Value = Pegadato1
CeldaIni.Offset(1, 1).Value = Pegadato2
Else
CeldaIni.End(xlDown).Offset(1).Value = Pegadato1
CeldaIni.End(xlDown).Offset(1, 1).Value = Pegadato2
End If
'...
End Sub
Esta rutina es general y analiza si a partir de la celda E7 (puedes cambiarla, desde luego) existen datos en esa celda (si no los hay, pega allí lo ingresado en TextBox1 y en la celda a su derecha, lo de TextBox2).
Si fuera la única fila ocupada (como si fuera un titulo de columna), pega aquellos datos en la fila inmediata siguiente (en E8 y F8) y, finalmente, si hubiera más datos ingresados previamente, dejará la información en la celda inmendiata inferior a la última ocupada.
Creo que esto es lo que buscas, y con pocas modificaciones podrás adaptarlo a tu formulario particular.
Un abrazo!
Fernando

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas