Ver Mensaje Individual
  #11 (permalink)  
Antiguo 02/07/2010, 07:17
Avatar de mrocf
mrocf
 
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
De acuerdo Macro VBA Excel

Hola! KonnaN. Al mirar el código que tienes:
Código:
Private Sub btn_insertar_Click()

Dim marca As String
Dim maxrow As Double
 
marca = txt_insertar_marca.Value
maxrow = maxrow = Cells.SpecialCells(xlLastCell).Row + 1

With Range("b" & Rows.Count).End(xlUp).Offset(1)
  .Value = 1 + .Offset(-1)
  .Offset(, 1) = txt_insertar_marca.Value
End With

Cells(maxrow, 3) = marca

End Sub

y compararlo con el código que te sugerí, se advierten 5 líneas de más:

Código:
Dim marca As String
Dim maxrow As Double
marca = txt_insertar_marca.Value
maxrow = maxrow = Cells.SpecialCells(xlLastCell).Row + 1
Cells(maxrow, 3) = marca

Ello me indica que te encuentras en los niveles iniciales del tema, y ése es un dato muy importante de conocer.
En efecto: al saberlo, no doy por sentado que conoces ciertas cuestiones básicas y -por el contrario- te las explico.

Por ejempo: hubiese sido muy importante que aclararas que en la fila 2 tienes los encabezados de columna.
Al saberlo, te hubiese sugerido lo siguiente:
Código:
Private Sub btn_insertar_Click()
With Range("b" & Rows.Count).End(xlUp)
  .Offset(1) = 1 + IIf(IsNumeric(.Cells), .Cells, 0)
  .Offset(1, 1) = txt_insertar_marca
End With
End Sub

COMENTARIOS
- Range("b" & Rows.Count).End(xlUp)
Localiza la última celda ocupada de la columa B

- .Offset(1)
Es la celda inmediata inferior a la anterior

- IsNumeric(.Cells)
Esta función devuelve Verdadero ó Falso según si la última celda ocupada de la columna B se puede evaluar como un número.

- IIf()
Es la clásica función SI() ó IF() del Excel. Como se ve: si la última celda ocupada de la columna B es numérica, obtenemos su valor. Y si no es numérica (o sea que estamos viendo el encabezado de columna), obtenemos un cero.

- .Offset(1, 1)
Respecto de la última celda ocupada de la columna B, esta celda está una fila abajo y una columna a su derecha.

Espero que te haya sido de utilidad.
Saludos, Cacho.