• Domingo 22 de Diciembre de 2024, 13:12

Autor Tema:  macro visual basic  (Leído 2174 veces)

mrocli

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
macro visual basic
« en: Jueves 21 de Julio de 2011, 12:36 »
0
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

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re:macro visual basic
« Respuesta #1 en: Viernes 22 de Julio de 2011, 12:36 »
0
Bueno, primero las condiciones estan incorrectas

Código: Visual Basic
  1. If 17 < x < 18 And y = 7 Then

seria algo asi

Código: Visual Basic
  1. 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
  1. function NombreCompleto (Nombre as String,Apellido As String) As String
  2.       NombreCompleto  = Nombre &" " &Apellidos
  3. end 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
  1.   Private Sub Command1_Click()
  2.         Dim NC as String,N as String,A as string
  3.        
  4.        N =InputBox("Cual es tu nombre?")
  5.        A =InputBox("y tus Apellidos?")
  6.        NC = NombreCompleto(N,A)
  7.  
  8.        MsgBox("Hola, " & NC)
  9.   End Sub
  10.  

Mira este es un metodo (hay mas) para tomar un valor de una celda

Código: Visual Basic
  1. Function QueHayEnLaCelda(Celda) as String
  2.       QueHayEnLaCelda = Excel.Range(Celda).Value   ' Hoja Activa como ejemplo . se puede referenciar navegando en  Workbooks, Sheets...
  3. End Funcion

Código: Visual Basic
  1.   Private Sub Command1_Click()
  2.        Dim Resultado As String,LaCelda As String
  3.        Dim Columna As String, Fila as Integer
  4.        
  5.        Columna = "A"
  6.        Fila=4
  7.        LaCelda =Columna & Fila
  8.  
  9.        Resultado =QueHayEnLaCelda("A1")
  10.        MsgBox("A1:" & Resultado )
  11.  
  12.        Resultado =QueHayEnLaCelda("A2")
  13.        MsgBox("A2:" & Resultado )
  14.  
  15.        Resultado =QueHayEnLaCelda("A2")
  16.        MsgBox("A12:" & Resultado )
  17.  
  18.        Resultado =QueHayEnLaCelda(LaCelda) ' Como veras es una simple cadena
  19.       MsgBox(LaCelda &" :" & Resultado )
  20.  
  21.   End Sub
  22.  

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
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

mrocli

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re:macro visual basic
« Respuesta #2 en: Viernes 22 de Julio de 2011, 19:01 »
0
ok, gracias