Buenas tardes necesitaria hacer una macro que me cambie el valor de las celdas segun dos criterios y no lo logro hacer esto es lo que realice
'Declaraciones de vaiable
Dim Final As Long
Dim grupo As String
Dim marca As String
Dim sucursal As Long
Dim iniciofila As Long
'Me posiciono en la fila ultima
Final = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row
'Recorro los registros
For iniciofila = 2 To Final
'Aca obtengo los valores de las celda
sucursal = Sheets("hoja1").Cells(iniciofila, 2)
marca = Sheets("hoja1").Cells(iniciofila, 3)
grupo = Sheets("hoja1").Cells(iniciofila, 1)
' Aca comparo los valoes de las variables
If sucursal = 17 And marca = adidas Then
' Aca quiero cambiar el valor de la celda si se cumple la concion
'pero no lo realiza al pa
Sheets("hoja1").Cells(d, 1).Value = " btter"
End If
Next iniciofila
End Sub
GRUPOSUCURSALMARCA
sur17ADIDAS
sur12ADIDAS
sur17ADIDAS
Tienes que tener en cuenta el tipo de dato que hay en la celda. Si quieres comparar con texto, debes ponerlo entre comillas. También es importante que las mayúsculas estén igual. Prueba esto:
If (sucursal = 17) And (marca = "ADIDAS") Then
Los paréntesis los pongo porque VBA evalúa primero el operador AND y posteriormente los operadores =
Así me aseguro de que primero realice las comparaciones y luego el operador AND.
Un saludo
Sub cambiargrupo()
'Declaraciones de vaiable
Dim Final As Long
Dim grupo As String
Dim marca As String
Dim sucursal As Long
Dim iniciofila As Long
'Me posiciono en la fila ultima
Final = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row
'Recorro los registros
For iniciofila = 2 To Final
'Aca obtengo los valores de las celda
sucursal = Sheets("hoja1").Cells(iniciofila, 2)
marca = Sheets("hoja1").Cells(iniciofila, 3)
grupo = Sheets("hoja1").Cells(iniciofila, 1)
' Aca comparo los valoes de las variables
If (sucursal = 17) And (marca = "ADIDAS") Then
' Aca quiero cambiar el valor de la celda si se cumple la concion
'pero no lo realiza al pa
'Aca cuando quiero darle el valor a la celda me pone error en tiempo de ejecucion 1004
Sheets("hoja1").Cells(A, 1).Value = " btter"
End If
Next iniciofila
End Sub
lo que me brindaste anduvo barvaro, aora me tira error en tiempo de ejecucion 1004en la parte que quieero darle el valor a la celda despues de las sentencia if que me enseñaste.
Te agradezco mucho por la informacion, sos un maestro
Cuando haces referencia a una celda, normalmente suele hacerse de dos maneras: con Range o con Cells.
Cuando lo haces con Range, se hace poniendo entre comillas la dirección de la celda en notación A1, por ejemplo así:
Range("J5").value = "valor dentro de la celda J5"
Cuando lo haces con Cells, tiene dos parámetros separados por coma. El primero es un número que indica la fila. El segundo es un número que indica la columna. Para la misma celda de antes, el ejemplo sería:
Cells(5, 10).value = "valor dentro de la celda J5"
Espero que esto te lo solucione.
Un saludo
Muchisimas gracias por tu solaridad y eseñanza, sos un maestro!!!!!