Jump to content

manzano

Members
  • Content Count

    15
  • Joined

  • Last visited

About manzano

  • Rank
    Member

Converted

  • Campos
    ;

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Muchas gracias @Haplox , quedo perfecto! Saludos!
  2. Vale, vine a aprender, y en este mismo post ya estoy aprendiendo a como pedir ayuda correctamente 😂 Favor comprende, tengo conocimiento precario de vba, y quiza formulé la pregunta sin yo mismo entenderla al no conocer la base teoria....
  3. Te comparto los dos archivos que están dentro de la carpeta Excel. 1.csv 2.csv
  4. Aquí te adjunto el excel base, el directorio donde tengo los archivos es C:\Users\a0m01cb\Desktop\EXCEL Quiero que después de abrir el archivo 1, pase a abrir el archivo 2, así consecutivamente hasta el archivo 5. PRUEBA.xlsm
  5. Mira, he re formulado todo. Quiero que la formula que indiqué abajo se aplique abriendo otros libros excel, los cuales estarán enumerados del 1 al 5. La idea es que abra el libro 1, copie su contenido y lo pegue en mi libro base, luego que lo cierre y pase al libro 2, copie y pegue una celda mas abajo de lo que ya pegue con el libro 1. Así sucesivamente. Esta el caso que un día solo tenga el libro 1, 2 y 3, y que el 4 y 5 no estén presentes. El directorio donde guardare los archivos es \Users\a0m01cb\Desktop\EXCEL Range(Selection, Selection.End(xlDown)).Select Selection.Copy ThisWorkbook.Activate Range("A1").Select ActiveSheet.Paste wbDestino.Close Selection.End(xlDown).Select ActiveCell.Offset(1, 0).Range("A1").Select Espero que ahora se entienda, la formula con mucho jaleo anterior la saque de una pagina web, y tienes razon, ni yo mismo lo entendía. Ahora puse la información exacta, sin códigos que quizá no eran necesarios.
  6. Estimado, Arme toda el código tal cual y no me abre ningún archivo, solo hace el bucle 5 veces y se devuelve al principio. Alguna idea de porque no funciona? se supone que el directorio esta bien ya que probé quitando la formula If Fichero <> "" Then y la macro abría correctamente el archivo... Sub CopiarCeldas() 'Definir objetos a utilizar Dim wbDestino As Workbook, _ wsOrigen As Excel.Worksheet, _ wsDestino As Excel.Worksheet, _ rngOrigen As Excel.Range, _ rngDestino As Excel.Range For i = 1 To 5 Fichero = Dir(ThisWorkbook.Path & "\EXCEL\" & i & ".xlsx", vbArchive) If Fichero <> "" Then Set wbDestino = Workbooks.Open(ThisWorkbook.Path & "\EXCEL\" & Fichero) Set wbDestino = Workbooks.Open(ActiveWorkbook.Path & "/EXCEL/", Local:=True) Set wsDestino = wbDestino.Worksheets("1") Set wsOrigen = Worksheets("1") Const celdaOrigen = "A1" Const celdaDestino = "A1" Set rngOrigen = wsOrigen.Range(celdaOrigen) Set rngDestino = wsDestino.Range(celdaDestino) rngOrigen.Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy ThisWorkbook.Activate ActiveSheet.Paste Selection.End(xlDown).Select ActiveCell.Offset(1, 0).Range("A1").Select End If Fichero = Dir() Next i End Sub
  7. Perdona, al llegar a la linea marcada arroja una alerta de sintaxis. En cuanto al error anterior,
  8. Estimado, hice la formula como me sugeriste pero no abre el archivo 1, se salta el codigo y al final arroja una alerta. Sub Makro1() ' Dim Fichero As String For i = 1 To 5 Fichero = Dir(ThisWorkbook.Path & "\EXCEL\" & i & ".xlsx", vbArchive) If Fichero <> "" Then Set wbDestino = Workbooks.Open(Fichero) Set wsDestino = wbDestino.Worksheets("1") Set wsOrigen = Worksheets("1") Const celdaOrigen = "A1" Const celdaDestino = "A1" Set rngOrigen = wsOrigen.Range(celdaOrigen) Set rngDestino = wsDestino.Range(celdaDestino) rngOrigen.Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy ThisWorkbook.Activate ActiveSheet.Paste Selection.End(xlDown).Select ActiveCell.Offset(1, 0).Range("A1").Select End If Fichero = Dir() Next i End Sub
  9. @Haplox disculpa mi ignorancia, pero el directorio del archivo en que parte se coloca?
  10. Dios mio, leer esos comentarios me hace ver que soy menos que un novato jeje, pero es excelente saber que se puede aprender un monton cambiando mi logica. Volviendo al tema, como se aplica Dir en ese codigo en especifico? Y para ir mas alla, hay algun tema del foro en donde haya un glosario con ese tipo de funciones (si esque realmente se llama funcion). Como dije, he estado haciendo macros con un conocimiento nulo y ahora estoy aprendiendo mas para que mi equipo de trabajo optimize sus tiempos productivos. Saludos.
  11. Puedes probar dejando solo el archivo "1" a ver si te pasa al final de la macro sin error?
  12. Estimados, muy buen dia. Les comento que estoy trabajando a una macro, la cual consiste en buscar datos de otro libro de excel, mediante el comando ActiveWorkbook.Path. Necesito que busque 5 archivos distintos, los cuales están nombrados con números del 1 al 5. Para hacer esto, copie 5 veces el código ActiveWorkbook. El problema es que si un día solo tengo 3 archivos, la macro arroja un error al no encontrar el cuarto archivo. Probe utilizando el comando On Error GoTo "primero" , y al final primero: Funcionó con el primer codigo, pero el segundo utilice On Error GoTo "segundo, y no lo considera. Sub TEST() ' ' TEST Macro Dim wbDestino As Workbook, _ wsOrigen As Excel.Worksheet, _ wsDestino As Excel.Worksheet, _ rngOrigen As Excel.Range, _ rngDestino As Excel.Range Sheets("DATA").Select Range("A1").Select On Error GoTo primero Set wbDestino = Workbooks.Open(ActiveWorkbook.Path & "/EXCEL/1", Local:=True) Set wsDestino = wbDestino.Worksheets("1") Set wsOrigen = Worksheets("1") Const celdaOrigen = "A1" Const celdaDestino = "A1" Set rngOrigen = wsOrigen.Range(celdaOrigen) Set rngDestino = wsDestino.Range(celdaDestino) rngOrigen.Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy ThisWorkbook.Activate ActiveSheet.Paste Selection.End(xlDown).Select ActiveCell.Offset(1, 0).Range("A1").Select wbDestino.Close primero: 'SEGUNDO ARCHIVO' On Error GoTo segundo Set wbDestino = Workbooks.Open(ActiveWorkbook.Path & "/EXCEL/2", Local:=True) Set wsDestino = wbDestino.Worksheets("2") Set wsOrigen = Worksheets("2") Set rngOrigen = wsOrigen.Range(celdaOrigen) Set rngDestino = wsDestino.Range(celdaDestino) rngOrigen.Select ActiveCell.Offset(1, 0).Range("A1").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy ThisWorkbook.Activate ActiveSheet.Paste Selection.End(xlDown).Select ActiveCell.Offset(1, 0).Range("A1").Select wbDestino.Close segundo: 'TERCER ARCHIVO' On Error GoTo tercero Set wbDestino = Workbooks.Open(ActiveWorkbook.Path & "/EXCEL/3", Local:=True) Set wsDestino = wbDestino.Worksheets("3") Set wsOrigen = Worksheets("3") Set rngOrigen = wsOrigen.Range(celdaOrigen) Set rngDestino = wsDestino.Range(celdaDestino) rngOrigen.Select ActiveCell.Offset(1, 0).Range("A1").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy ThisWorkbook.Activate ActiveSheet.Paste Selection.End(xlDown).Select ActiveCell.Offset(1, 0).Range("A1").Select wbDestino.Close tercero: End Sub Saludos!
  13. Que tal? buenos días, Como nuevo usuario, espero que todo vaya excelente. Les comento que mi nivel de excel es intermedio, y hace un par de meses adentrándome a VBA, con lo cual he creado macros para mi equipo de trabajo, facilitándoles mucho su trabajo diario. Dicho esto, quiero seguir aprendiendo, y la mejor forma es poder aclarar algunas dudas al momento de escribir códigos. En fin, espero que todo sea entretenido y puedas ayudarme con dudas, de igual forma espero aportar con el conocimiento que tengo. Saludos!
×
×
  • Create New...

Important Information

Privacy Policy