Entiendo que en el momento que tuviera dos celdas consecutivas sin fórmula que tuviera que recuperar ese código que planteas no me valdría, porque estoy copiando una fórmula que no existe de la celda de arriba en la celda de abajo de ella.
imagino que con borrar unas lineas te refieres a eliminar esos registros, estirar hacia abajo la tabla y en las nuevas líneas creadas añadirlos al final con los datos que tuvieran los antiguos, con las fórmulas arrastradas y creadas de nuevo. Entonces habria que escribir a mano todos los datos de cada columna a rellenar de todas las filas nuevas, dando lugar a cometer errores de copia/pega o reeescritura. Además, los registros los tengo ordenados con cierto orden , le perdería.
es lo que comentaba antes, era solución funcional trabajando con un excel en el mismo idioma en los dos ordenadores, por eso esto queda descartado, ya que por lo que veo excel no reconoce las funciones de un idioma a otro.
No sé, la verdad que me sorprende un poco que no se pueda hacer lo que planteo aquí al inicio.. Al final me voy a conocer todos los foros, ajja. Un saludo!
Por
MANTONIOPM, · publicado
Hola gente soy nuevo y estoy tratando de adaptar un programa vba a mi necesidad pero al momento de ejecutarlo me da el erro 3709
Option Explicit
Public CN As ADODB.Connection
Dim Cod_Prod, Nombre, Existencia
Dim Fila, Final As Integer
Function Connect(Server As String, User As String, Pass As String, Database As String) As Boolean
Set CN = New ADODB.Connection
On Error Resume Next
With CN
.ConnectionString = "Provider=SQLOLEDB.1;" & _
"Password=" & Pass & ";" & _
"Persist Security Info=True;" & _
"User ID=" & User & ";" & _
"Initial Catalog=" & Database & ";" & _
"Data Source=" & Server
.Open
End With
If CN.State = 0 Then
Connect = False
Else
Connect = True
End If
End Function
Function Query()
Dim SQL As String
Dim RS As ADODB.Recordset
Dim Field As ADODB.Field
Dim Col As Long
Set RS = New ADODB.Recordset
Final = GetUltimoR(Hoja1)
For Fila = 2 To Final
Cod_Prod = Hoja1.Cells(Fila, 2)
Nombre = Hoja1.Cells(Fila, 3)
Existencia = Hoja1.Cells(Fila, 4)
SQL = "insert into productos values('" & Cod_Prod & "','" & Nombre & "'," & Existencia & ");"
RS.Open SQL, CN el error me lo marca en esta linea
Next
RS.Open "SELECT * FROM PRODUCTOS", CN
If RS.State Then
Col = 1
For Each Field In RS.Fields
Cells(1, Col) = Field.Name
Col = Col + 1
Next Field
Cells(2, 1).CopyFromRecordset RS
Set RS = Nothing
End If