Programación General > Visual Basic 6.0 e inferiores
macro visual basic
(1/1)
mrocli:
Hola :
Quería hacer una macro en el Visual Basic del Excel (tengo la versión del 2003), y he probado de distintas formas pero en algo me equivoco, por lo que me gustaría pediros ayuda
La cuestión que quiero hacer es que coja los datos de dos columnas, y según lo que ponga en ellas, poner un dato en una tercera columna. Es decir, según A1 y B1, escribir el dato correspondiente en C1. Lo mismo con A2 y B2 en C2, etc. Así las cosas, la parte central creo que la tengo bien :
If 17 < x < 18 And y = 7 Then
z = "1,5"
ElseIf 19 < x < 20 And y = 7 Then
z = "1"
...
...
ElseIf x = "" And y = "" Then
z = ""
Pero el inicio y el final lo he probado de distintas maneras y no se exactamente como ponerlo... Primero, no se muy bien si debería ser Sub o Function.
Y después, a la hora de definir x, y, z, no se muy bien si ponerlo como "x = A1" ó "x = Column.A" o de otra manera.
Y en la parte final, no se si es "Next x" y "Next y" o si por el contrario es "Nextfor x" y "Nextfor y", o si también tengo que ponerlo para "z".
Muchas gracias por vuestra ayuda.
F_Tanori:
Bueno, primero las condiciones estan incorrectas
--- Código: Visual Basic ---If 17 < x < 18 And y = 7 Then
seria algo asi
--- Código: Visual Basic ---If x > 17 and x < 18 and y = 7 Then
Se utiliza function cuando es necesario retornar un valor, y sub cuando es solo una SUBrutina o procedimiento o accion, la cual no es necesario que retorne nada
Ejemplo:
Funcion, realiza un procedimiento y retorna un valor (resultado)
--- Código: Visual Basic ---function NombreCompleto (Nombre as String,Apellido As String) As String NombreCompleto = Nombre &" " &Apellidosend function
Llamado, al darle clic a un boton desde un formulario
Procedimiento (realiza un procedimiento o ejecuta una accion pero no retorna ningun valor)
--- Código: Visual Basic --- Private Sub Command1_Click() Dim NC as String,N as String,A as string N =InputBox("Cual es tu nombre?") A =InputBox("y tus Apellidos?") NC = NombreCompleto(N,A) MsgBox("Hola, " & NC) End Sub
Mira este es un metodo (hay mas) para tomar un valor de una celda
--- Código: Visual Basic ---Function QueHayEnLaCelda(Celda) as String QueHayEnLaCelda = Excel.Range(Celda).Value ' Hoja Activa como ejemplo . se puede referenciar navegando en Workbooks, Sheets...End Funcion
--- Código: Visual Basic --- Private Sub Command1_Click() Dim Resultado As String,LaCelda As String Dim Columna As String, Fila as Integer Columna = "A" Fila=4 LaCelda =Columna & Fila Resultado =QueHayEnLaCelda("A1") MsgBox("A1:" & Resultado ) Resultado =QueHayEnLaCelda("A2") MsgBox("A2:" & Resultado ) Resultado =QueHayEnLaCelda("A2") MsgBox("A12:" & Resultado ) Resultado =QueHayEnLaCelda(LaCelda) ' Como veras es una simple cadena MsgBox(LaCelda &" :" & Resultado ) End Sub
Espero te sirva, procura utilizar las etiquetas CODE
Nota: Ningun codigo ha sido compilado por falta de esas herramientas, pero la idea es esa .
Saludos
mrocli:
ok, gracias
Navegación
Ir a la versión completa