Solución de Excel en C#, VB, NET Y VBA

Información de Soluciones VSTO

Mediante el uso de Microsoft Office como front-end de soluciones, puede beneficiarse de las conocidas interfaces de usuario y herramientas de Microsoft Office, como las características de procesamiento de texto de Word, las características de análisis de datos de Excel y las características de administración de correo electrónico de Outlook. Puede desarrollar soluciones en Visual Studio para personalizar las aplicaciones de Office y agregar las características específicas que necesite para sus procesos empresariales. Por ejemplo, puede convertir Word en un generador de contratos que ensamble contratos a partir de elementos previamente existentes que se pueden hacer modificables o no modificables. Con Excel puede crear una hoja de cálculo de presupuestos automatizada y personalizada para distintos proyectos. Los usuarios pueden aprovechar las soluciones de Office sin conexión, lo que hace que soluciones complejas resulten más prácticas de lo que serían si utilizase una arquitectura basada en web. Fuente de Microsoft

VBA Excel es el mas Conocido lenguaje de programación usado al momento de Crear Macros, Formularios, Módulos, Clases y Objetos
Sin Embargo este lenguaje es tan antiguo desde Excel 2003,2007,2010,2013 y 2015 (Desconozco anteriores versiones de Excel por lo cual solo detalle las Siguientes)

Aun Así no podemos negar que este lenguaje de Programación VBA Viene incluido en el Libro de Excel , lo cual nos permite interactuar directamente con este lenguaje..

Veamos aquí un Ejemplo de Excel usando un Bucle For Next con un Select case para llenar las Columnas 4,5,6 dependiendo del Origen que en este caso es la Cuenta Contable.

Subscribe para Recibir Material y Convertirte en un Experto de Excel

  1. Option Explicit
  2. 'VISUAL BASIC APLICACIONES (VBA) - LENGUAJE VB 6.0
  3. Sub Ejecutar()
  4. Dim x As Integer
  5.  
  6. For x = 2 To Range("a5000").End(xlUp).Row
  7.  
  8. Select Case Mid(Cells(x, 1).Value, 1, 1)
  9. ' Tipo de Cuentas
  10. Case 0 'CUENTAS DE ORDEN
  11. Cells(x, 4) = "OR"
  12. Case 1, 2, 3, 4, 5 'BALANCE GENERAL
  13. Cells(x, 4) = "BG"
  14. End Select
  15. Select Case Mid(Cells(x, 1).Value, 1, 2)
  16. Case 60, 61, 62, 63, 64, 65, 67, 68 'RESULTADO POR NATURALEZA
  17. Cells(x, 4) = "EN"
  18.  
  19. Case 66, 69, 91, 94, 95, 97 'RESULTADO POR FUNCION
  20. Cells(x, 4) = "EF"
  21.  
  22. Case 70, 73, 74, 75, 76, 77, 78 'RESULTADO POR FUNCION Y NATURALEZA
  23. Cells(x, 4) = "NF"
  24.  
  25. Case 71, 72, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 92, 93, 96, 98, 99 'NINGUNO
  26. Cells(x, 4) = "N"
  27. End Select
  28.  
  29. Select Case Mid(Cells(x, 1).Value, 1, 1)
  30. 'Tipo de Elementos
  31. Case 1, 2, 3 'ACTIVO
  32. Cells(x, 5) = "A"
  33. Case 4, 5 'PASIVO
  34. Cells(x, 5) = "P"
  35. Case 7 'INGRESO
  36. Cells(x, 5) = "I"
  37. Case 6 'GASTOS
  38. Cells(x, 5) = "G"
  39. Case 8, 9 'NINGUNO
  40. Cells(x, 5) = "N"
  41. End Select
  42.  
  43. 'CUENTA DE REGISTRO
  44. Select Case Len(Cells(x, 1).Value)
  45. Case Is = 6
  46. Cells(x, 6) = 1
  47. Case Is < 6 Cells(x, 6) = 0 Case Is > 6
  48. Cells(x, 6) = 0
  49. End Select
  50.  
  51. Next
  52. End Sub

Este es el mismo Código en Visual Studio usando el VSTO, lo único que se Nota a simple Vista como Cambio es declarar el Objeto:

  1. Dim Worksheet As Excel.Worksheet = Globals.ThisWorkbook.Worksheets("PLAN")

Código Completo en Visual Studio – Solución VSTO Excel

  1. Option Explicit
  2. 'VISUAL ESTUDIO - VSTO EXCEL - LENGUAJE VB.NET
  3. Sub Aplicar_Formato()
  4. Dim Worksheet As Excel.Worksheet = Globals.ThisWorkbook.Worksheets("PLAN")
  5. With Worksheet
  6. For fila As Integer = 2 To .Range("a5000").End(Excel.XlDirection.xlUp).Row
  7.  
  8. ' Tipo de Cuentas
  9. Select Case Mid(Convert.ToString(.Cells(fila, 1).Value), 1, 1)
  10. Case 0 'ORDEN
  11. .Cells(fila, 4) = "OR"
  12. Case 1, 2, 3, 4, 5 'BALANCE GENERAL
  13. .Cells(fila, 4) = "BG"
  14. End Select
  15. Select Case Mid(Convert.ToString(.Cells(fila, 1).Value), 1, 2)
  16. Case 60, 61, 62, 63, 64, 65, 67, 68 'RESULTADO POR NATURALEZA
  17. .Cells(fila, 4) = "EN"
  18.  
  19. Case 66, 69, 91, 94, 95, 97 'RESULTADO POR FUNCION
  20. .Cells(fila, 4) = "EF"
  21.  
  22. Case 70, 73, 74, 75, 76, 77, 78 'RESULTADO POR FUNCION Y NATURALEZA
  23. .Cells(fila, 4) = "NF"
  24.  
  25. Case 71, 72, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 92, 93, 96, 98, 99 'NINGUNO
  26. .Cells(fila, 4) = "N"
  27. End Select
  28.  
  29. Select Case Mid(Convert.ToString(.Cells(fila, 1).Value), 1, 1)
  30. 'Tipo de Elementos
  31. Case 1, 2, 3 'ACTIVO
  32. .Cells(fila, 5) = "A"
  33. Case 4, 5 'PASIVO
  34. .Cells(fila, 5) = "P"
  35. Case 7 'INGRESO
  36. .Cells(fila, 5) = "I"
  37. Case 6 'GASTOS
  38. .Cells(fila, 5) = "G"
  39. Case 8, 9, 0 'NINGUNO
  40. .Cells(fila, 5) = "N"
  41. End Select
  42.  
  43. 'CUENTA DE REGISTRO
  44. Select Case Len(Convert.ToString(.Cells(fila, 1).Value))
  45. Case Is = 6
  46. .Cells(fila, 6) = 1
  47. Case Is < 6
  48. .Cells(fila, 6) = 0
  49. Case Is > 6
  50. .Cells(fila, 6) = 0
  51. End Select
  52. Next
  53. End With
  54. End Sub
Código mas Moderno en VSTO Excel – C#
Aquí el Código es muchos mas diferente y talvez Confuso ya que se Usan llaves de apertura y cierre.
 

  1. // Option Explicit
  2. //VISUAL ESTUDIO - VSTO EXCEL - LENGUAJE C#
  3. internal void Aplicar_Formato() {
  4. Excel.Worksheet Worksheet = Globals.ThisWorkbook.Worksheets("PLAN");
  5. for(int fila= 2; fila<= Worksheet.Range("a5000").End(Excel.XlDirection.xlUp).Row; fila++){
  6. // Tipo de Cuentas
  7. switch(Mid(Convert.ToString(Worksheet.Cells(fila, 1).Value), 1, 1)){
  8. case 0: //ORDEN
  9. Worksheet.Cells(fila, 4) = "OR";
  10. break;
  11. Case 1:
  12. case 2: case 3: case 4: case 5: //BALANCE GENERAL
  13. Worksheet.Cells(fila, 4) = "BG";
  14. break; }
  15. switch(Mid(Convert.ToString(Worksheet.Cells(fila, 1).Value), 1, 2)){
  16. case 60: case 61: case 62: case 63: case 64: case 65:                    break;
  17. Case 67:
  18. case 68: //RESULTADO POR NATURALEZA
  19. Worksheet.Cells(fila, 4) = "EN";
  20. Case 66:
  21. case 69: case 91: case 94: case 95: case 97: //RESULTADO POR FUNCION
  22. Worksheet.Cells(fila, 4) = "EF";
  23. Case 70:
  24. case 73: case 74: case 75: case 76: case 77: case 78: //RESULTADO POR FUNCION Y NATURALEZA
  25. Worksheet.Cells(fila, 4) = "NF";
  26. Case 71:
  27. case 72: case 79: case 80: case 81: case 82: case 83: case 84: case 85: case 86: case 87: case 88: case 89: case 90: case 92: case 93: case 96: case 98: case 99: //NINGUNO
  28. Worksheet.Cells(fila, 4) = "N";
  29. break; }
  30. switch(Mid(Convert.ToString(Worksheet.Cells(fila, 1).Value), 1, 1)){
  31. //Tipo de Elementos
  32. case 1: case 2: case 3: //ACTIVO
  33. Worksheet.Cells(fila, 5) = "A";
  34. break;
  35. Case 4:
  36. case 5: //PASIVO
  37. Worksheet.Cells(fila, 5) = "P";
  38. break;
  39. case 7: //INGRESO
  40. Worksheet.Cells(fila, 5) = "I";
  41. break;
  42. case 6: //GASTOS
  43. Worksheet.Cells(fila, 5) = "G";
  44. Case 8:
  45. case 9: case 0: //NINGUNO
  46. Worksheet.Cells(fila, 5) = "N";
  47. break; }
  48. //CUENTA DE REGISTRO
  49. switch(Len(Convert.ToString(Worksheet.Cells(fila, 1).Value))){
  50. Case Is = 6:
  51. Worksheet.Cells(fila, 6) = 1;
  52. break;
  53. Case Is < 6:
  54. Worksheet.Cells(fila, 6) = 0;
  55. break;
  56. Case Is > 6:
  57. Worksheet.Cells(fila, 6) = 0;
  58. break; }
  59. }
  60. }
Si estas Interesado en este Tipo de Artículos SUSCRIBETE AQUI

3 Comments to Solución de Excel en C#, VB, NET Y VBA

  1. DANNY MARTIN PACHAS GONZALES dice:

    AMIGO FERNANDO;

    BUEN DIA, NO ME PERMITE DESCARGAR LA PLANTILLA DE PLAN CONTABLE EN VBA EXCEL

  2. Danny Martin Pachas Gonzales dice:

    Estimado Fernando:

    Un favor me puede indicar el link para ingresar al Facebook de Excel Servicios no me es posible ingresar.

    Muchas gracias

    Danny Martin Pachas Gonzales

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *