Ejecutar macro sin afectar otras celdas(2)
Hola Experto hace un par de días le consulte una pregunta la cual consistía en ejecutar un un macro al modificar una celda, su respuesta fue sastisfactoria Solo que yo por error Finalice la consulta:
Esta es la pregunta que le hice:
En el rango "A1" pongo un articulo, al momento de yo escribir un valor por en B1 se ejecuta el macro y me pone un resultado en B2, si yo ingreso un dato en "C1" se ejecuta el macro y pone un resultado en C2.
El macro funciona perfectamente pero ahora me surge esta duda:
El macro debe funcionar también con referencia en la celda A19 y que al escribir un valor en B19 me ponga un resultado en B20 Y y así sucesivamente.
El problema que se me precentó es que si yo pongo un articulo en A19 el mecro se ejecuta pero me toma como referencia el valor que tiene "A1" yo quiero que tome como referencia el valor que tiene "A19", osea que A1 se independiente de A19.
Muchas Gracias.
Este es el macro que usted me ayudo a realizar
Public rgo As String ' SUJERENCIA DEL EXPERTO
Sub leer_fichero_de_texto()
On Error Resume Next
Dim Tabulacion As String
Dim Tabulacion2 As Long
Dim Resultado As Long
Application.ScreenUpdating = False
fichero_de_texto = "Prueba.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
ruta = ActiveWorkbook.Path
Set archivo = fso.OpenTextFile(ruta & "\" & fichero_de_texto, 1)
contenido = archivo.readall
archivo.Close
Set fso = Nothing
Set archivo = Nothing
contenido = Split(contenido, vbCrLf)
For i = 0 To UBound(contenido)
Tabulacion = contenido(i)
Tabulacion = Trim(Mid(contenido(i), 1, 8))
Tabulacion2 = Trim(Mid(contenido(i), 11, 4))
If Range("A8") = Tabulacion Then 'SUJERENCIA DEL EXPERTO
Resultado = Tabulacion2 * Range(rgo) 'SUJERENCIA DEL EXPERTO
Range(rgo).Offset(1, 0) = ResultadoEnd If
Next
Application.ScreenUpdating = True
========================
LO SIG LO PONGO EN LA HOJA1
========================
rgo = Target.Address(False, False) 'SUGERENCIA DEL EXPERTO
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$1" Then leer_fichero_de_texto
If Target.Address = "$C$1" Then leer_fichero_de_texto
If Target.Address = "$D$1" Then leer_fichero_de_texto
End Sub
========================
"DATOS EN ARCHIVO DE TEXTO
========================
Articulo Cantidad
M2150M1A 250
M27Q2M1A 251
M2752M1A 239
Esta es la pregunta que le hice:
En el rango "A1" pongo un articulo, al momento de yo escribir un valor por en B1 se ejecuta el macro y me pone un resultado en B2, si yo ingreso un dato en "C1" se ejecuta el macro y pone un resultado en C2.
El macro funciona perfectamente pero ahora me surge esta duda:
El macro debe funcionar también con referencia en la celda A19 y que al escribir un valor en B19 me ponga un resultado en B20 Y y así sucesivamente.
El problema que se me precentó es que si yo pongo un articulo en A19 el mecro se ejecuta pero me toma como referencia el valor que tiene "A1" yo quiero que tome como referencia el valor que tiene "A19", osea que A1 se independiente de A19.
Muchas Gracias.
Este es el macro que usted me ayudo a realizar
Public rgo As String ' SUJERENCIA DEL EXPERTO
Sub leer_fichero_de_texto()
On Error Resume Next
Dim Tabulacion As String
Dim Tabulacion2 As Long
Dim Resultado As Long
Application.ScreenUpdating = False
fichero_de_texto = "Prueba.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
ruta = ActiveWorkbook.Path
Set archivo = fso.OpenTextFile(ruta & "\" & fichero_de_texto, 1)
contenido = archivo.readall
archivo.Close
Set fso = Nothing
Set archivo = Nothing
contenido = Split(contenido, vbCrLf)
For i = 0 To UBound(contenido)
Tabulacion = contenido(i)
Tabulacion = Trim(Mid(contenido(i), 1, 8))
Tabulacion2 = Trim(Mid(contenido(i), 11, 4))
If Range("A8") = Tabulacion Then 'SUJERENCIA DEL EXPERTO
Resultado = Tabulacion2 * Range(rgo) 'SUJERENCIA DEL EXPERTO
Range(rgo).Offset(1, 0) = ResultadoEnd If
Next
Application.ScreenUpdating = True
========================
LO SIG LO PONGO EN LA HOJA1
========================
rgo = Target.Address(False, False) 'SUGERENCIA DEL EXPERTO
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$1" Then leer_fichero_de_texto
If Target.Address = "$C$1" Then leer_fichero_de_texto
If Target.Address = "$D$1" Then leer_fichero_de_texto
End Sub
========================
"DATOS EN ARCHIVO DE TEXTO
========================
Articulo Cantidad
M2150M1A 250
M27Q2M1A 251
M2752M1A 239
1 Respuesta
Respuesta de Elsa Matilde
1