Problema de impresión de valor en celdas de un rango
Hola! Tengo el siguiente código en VBA (versión Excel 2010) que dependiendo del valor de una celda de un rango e imprime un valor en la celda equivalente de otro rango, es decir, dependiendo del valor de, digamos, "D2" en la celda "A2" pongo "algo" y así sucesivamente, lo único que no imprime el valor en el ninguna celda del rango "A:A"
He intentado enfrentar el bucle (loop) de dos formas distintas y en ninguno de ambos casos imprime los valores y, la verdad, no encuentro el error. VB compila la macro, por lo que no hay problemas de sintaxis.
Más adelante adjunto el códgio. Sé que no hay end if después de los if. Siempre que los ponía me generaba Error de COmpilación bajo el error "Se necesita Bloque IF"
De antemano, gracias!
El código que desarrollé es el siguiente:
Sub Sociedad()
Dim cell As Object
Dim rango_R As Range
Dim rango2_R As Range
Dim rango3_R As Range
Dim rango_P As Range
Dim rango2_P As Range
Dim celda As Object
Dim Filas_Renting As Integer
Dim Filas_Propias As Integer
Dim i As Integer
Worksheets("Flota Renting").Activate
Range("A:A").Insert shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A1").Value = "Sociedad"
Set rango2_R = Range("B:B")
Filas_Renting = WorksheetFunction.CountA(rango2_R)
Set rango_R = Range("F2:F" & Filas_Renting)
Set rango3_R = Range("A2:A" & Filas_Renting)
'Range("F1").Select
For Each celda In rango_R.Cells
If Left(celda.Value, 3) = "z10" Then rango3_R.Cells.Value = "Empresa1"
If Left(celda.Value, 3) = "z20" Then rango3_R.Cells.Value = "Empresa2"
If Left(celda.Value, 3) = "z31" Then rango3_R.Cells.Value = "Empresa3"
If Left(celda.Value, 3) = "z41" Or Left(celda.Value, 4) = "z041" Then rango3_R.Cells = "Empresa4"
If Left(celda.Value, 3) = "z42" Or Left(celda.Value, 4) = "z042" Then rango3_R.Cells = "Empresa5"
If Left(celda.Value, 3) = "z43" Or Left(celda.Value, 4) = "z043" Then rango3_R.Cells = "Empresa6"
Next
'For i = 2 To Filas_Renting
'If Left(Cells(i, 6).Value, 3) = "z10" Then Cells(i, 1).Value = "Empresa1"
'If Left(Cells(i, 6).Value, 3) = "z20" Then Cells(i, 1).Value = "Empresa2"
'If Left(Cells(i, 6).Value, 3) = "z31" Then Cells(i, 1).Value = "Empresa3"
'If Left(Cells(i, 6).Value, 3) = "z41" Or Left(Cells(i, 6).Value, 4) = "z041" Then Cells(i, 1).Value = "Empresa4"
'If Left(Cells(i, 6).Value, 3) = "z42" Or Left(Cells(i, 6).Value, 4) = "z042" Then Cells(i, 1).Value = "Empresa5"
'If Left(Cells(i, 6).Value, 3) = "z43" Or Left(Cells(i, 6).Value, 4) = "z043" Then Cells(i, 1).Value = "Empresa6"
'If Cells(i, 6).Value = " " Then Cells(i, 1).Select.Value = Cells(i, 4).Value
'Next i
Worksheets("Flota Propia").Activate
Range("A:A").Insert shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A1").Value = "Sociedad"
Set rango2_P = Range("B:B")
Filas_Propias = WorksheetFunction.CountA(rango2_P)
Set rango_P = Range("G:G" & Filas_Propias)
For i = 2 To Filas_Propias
If Left(Cells(i + 1, 7).Value, 3) = "z10" Then Cells(i + 1, 1).Value = "Empresa1"
If Left(Cells(i + 1, 7).Value, 3) = "z20" Then Cells(i + 1, 1).Value = "Empresa2"
If Left(Cells(i + 1, 7).Value, 3) = "z31" Then Cells(i + 1, 1).Value = "Empresa3"
If Left(Cells(i + 1, 7).Value, 3) = "z41" Or Left(Cells(i + 1, 7).Value, 4) = "z041" Then Cells(i + 1, 1).Value = "Empresa4"
If Left(Cells(i + 1, 7).Value, 3) = "z42" Or Left(Cells(i + 1, 7).Value, 4) = "z042" Then Cells(i + 1, 1).Value = "Empresa5"
If Left(Cells(i + 1, 7).Value, 3) = "z43" Or Left(Cells(i + 1, 7).Value, 4) = "z043" Then Cells(i + 1, 1).Value = "Empresa6"
If Cells(i + 1, 7).Value = " " Then Cells(i + 1, 1).Value = Cells(i, 4).Value
Next i
End Sub