Excel - llenar datos impares

 
Vista:
sin imagen de perfil

llenar datos impares

Publicado por Ronal (8 intervenciones) el 08/05/2014 21:52:20
buen dia.....

tengo un formulario que me llena muy bien los datos al introducirlos, los que sucede que es hay dos usuarios usando el archivo, entonces genera conflicto al momento de grabar........ lo que pienso es que seria bueno que la usuario 1 le grabe en filas impares y el usuario 2 le grabe en las pares.

no se como modificar el cod que ya tengo para que me grabe así, cabe decir que la usuaria 1 tendría un formulario y la usuaria dos tiene otro.

el cod que tengo para el formulario es el siguiente.

Private Sub Agregadat_Click()
Dim ifila As Long, R As Worksheet, mes As Date

Set R = ActiveSheet

'Encuentra la siguiente fila vacía
ifila = R.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

If Me.Textced.Value = "" Then
Me.Textced.SetFocus
MsgBox "Por favor, digite una cédula.", vbCritical, "Actualizar datos"
Exit Sub
End If

Call Bordes

On Error Resume Next

R.Cells(ifila, 1).Value = Date

mes = Month(R.Cells(ifila, 1).Value)

R.Cells(ifila, 2).Value = UCase(MonthName(mes))
R.Cells(ifila, 3) = Me.Textced.Value
R.Cells(ifila, 4) = Me.Textnom.Value
R.Cells(ifila, 5) = Me.Combalm.Value
R.Cells(ifila, 6) = Me.Combemp.Value
R.Cells(ifila, 7) = Me.Textvals.Value
R.Cells(ifila, 8) = Me.Textvalo.Value
R.Cells(ifila, 9) = CDate(Me.Textfecho.Value)
R.Cells(ifila, 10) = Me.Combobser.Value
R.Cells(ifila, 12) = Me.Combaser.Value
R.Cells(ifila, 13).Value = "1"

If R.Cells(ifila, 10) = "APROBADO" Then
R.Cells(ifila, 11).Value = "APROBADO"
ElseIf R.Cells(ifila, 10) = "" Then
R.Cells(ifila, 11).Value = "PENDIENTE"
Else
R.Cells(ifila, 11).Value = "NEGADO"
End If

R.Cells(ifila, 7).NumberFormat = "$ #,##0"
R.Cells(ifila, 8).NumberFormat = "$ #,##0"
R.Cells(ifila, 9).NumberFormat = "dd/MM/yyyy"

Me.Combalm.Clear
Me.Combemp.Clear
Me.Combobser.Clear

Me.Textced.Value = ""
Me.Textnom.Value = ""
Me.Combalm.Value = ""
Me.Combemp.Value = ""
Me.Textvals.Value = ""
Me.Textvalo.Value = ""
Me.Textfecho.Value = ""
Me.Combobser.Value = ""
Me.Combaser.Value = ""

Me.Textfech.Text = Format(Now, "dd/MM/yyyy")
Call cargar
ActiveWorkbook.Save

End Sub

mil gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

llenar datos impares

Publicado por Juanjo (494 intervenciones) el 09/05/2014 09:03:52
Muy buenas.

Una posibilidad sería controlar el valor de ifila. Por ejemplo para un formulario pondrías:

'Encuentra la siguiente fila vacía
ifila = R.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

If Application.WorksheetFunction.IsOdd(ifila) Then
ifila = ifila + 1
End If

Y para el otro:
'Encuentra la siguiente fila vacía
ifila = R.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

If not Application.WorksheetFunction.IsOdd(ifila) Then
ifila = ifila + 1
End If

El problema de esto, es que crearía filas vacías cuando no se fueses alternando al introducir datos. Si, por ejemplo empieza usuaria1 en la fila 1000 y el siguiente dato lo vuelve a meter otra vez usuaria1, escribiría en 1002, lo cual está bien, pero luego usuaria2 escribiría en 1003, con lo que 1001 quedaría vacío. Esto hay varias formas de intentar solucionarlo, mira ver si lo anterior te funciona y luego intenta arreglarlo y si no puedes, me lo dices.

Un saludo. Juanjo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

llenar datos impares

Publicado por Ronal (8 intervenciones) el 09/05/2014 15:06:35
juanjo, compa en que parte de la macro debo de introducir el cod........ el que quede celdas vacías no me importa tanto ya que le genero un dinámico, y le digo que ignore lo vació.

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

llenar datos impares

Publicado por Juanjo (494 intervenciones) el 09/05/2014 17:31:05
Las dos primeras filas son las que ya tienes tú en el código, al principio de la macro.

Las otras tres líneas, son las que tienes que agregar a continuación. O sea, que el inicio del código quedaría así:

Private Sub Agregadat_Click()
Dim ifila As Long, R As Worksheet, mes As Date

Set R = ActiveSheet

'Encuentra la siguiente fila vacía
ifila = R.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

If Application.WorksheetFunction.IsOdd(ifila) Then
ifila = ifila + 1
End If

If Me.Textced.Value = "" Then
Me.Textced.SetFocus
MsgBox "Por favor, digite una cédula.", vbCritical, "Actualizar datos"
Exit Sub
End If

Esas tres líneas añadidas son las que tienes que cambiar en el otro formulario.

Un saludo. Juanjo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar