VBA seleccionar página 2 y copiar al final del documento.

Max83830 Mensajes publicados 29 Estado Miembro -  
Max83830 Mensajes publicados 29 Estado Miembro -
Hola a todos y a todas,
Estoy empezando con VBA en Word.
Me gustaría crear una macro que seleccione la página dos completamente, la copie y la pegue al final del documento respetando el formato.

Estoy usando WORD 2016.
Gracias de antemano

Configuración: Windows / Edge 17.17134

1 respuesta

  1. cs_Le Pivert Mensajes publicados 8437 Estado Colaborador 730
     
    Hola,

    aquí tienes 2 sitios para empezar

    utilizar el grabador de macros:

    https://openclassrooms.com/fr/courses/1438346-redigez-facilement-des-documents-avec-word/1443761-macros-et-vba

    y para profundizar más:

    https://heureuxoli.developpez.com/office/word/vba-word/

    --
    @+ El Pivert
    1
    1. Max83830 Mensajes publicados 29 Estado Miembro 1
       
      Gracias por los enlaces, ya he probado con el grabador de macros, pero me siento más cómodo con Excel, necesito profundizar y estoy limitado con el tiempo.
      0
    2. cs_Le Pivert Mensajes publicados 8437 Estado Colaborador 730
       
      Has seleccionado el comienzo de tu texto: en la cinta de opciones Insertar Marcador que nombras debut
      El final del texto Insertar marcador fin
      Vas al lugar donde quieres pegar tu texto: Insertar Marcador copiar

      aquí están las macros:

      Sub selectiontexte() 'Declara los nombres de los marcadores Const UnSignet As String = "debut" Const DeuxSignet As String = "fin" 'Declara la variable Range Dim Signet1Rge As Range Dim Signet2Rge As Range Dim selection As Range 'Asigna las variables With ActiveDocument Set Signet1Rge = .Bookmarks(UnSignet).Range Set Signet2Rge = .Bookmarks(DeuxSignet).Range 'Asigna el texto a seleccionar '(Texto comprendido entre el final del primer marcador 'y el comienzo del segundo) Set selection = _ .Range(Signet1Rge.End, Signet2Rge.Start) 'selecciona el texto para copiar selection.Select selection.Copy 'copia el texto End With End Sub Sub copiertexte() 'Declara los nombres del marcador Const Troissignet As String = "copier" 'Declara la variable Range Dim Signet3Rge As Range Dim selection As Range 'Asigna la variable With ActiveDocument Set Signet3Rge = .Bookmarks(Troissignet).Range Set selection = _ .Range(Signet3Rge.Start) 'selecciona el inicio de la copia selection.Select selection.Paste 'pega el texto End With End Sub 


      Ahí está

      @+ El Pivert
      0
    3. Max83830 Mensajes publicados 29 Estado Miembro 1
       
      Gracias,
      macro funcional,
      pero ¿sería posible que copiara en la línea antes del marcador de copia, para poder repetir la operación tantas veces como sea necesario, ya que al copiar se sobrescribe el marcador y la operación solo se puede realizar una vez?
      Gracias de antemano
      0
    4. Max83830 Mensajes publicados 29 Estado Miembro 1
       
      Buenas noches,
      he encontrado una forma poco académica de abordar este problema.
      Dos macros, tus dos módulos en uno, y luego añado, después de haber bajado dos líneas, una macro que inserta tu marcador para el siguiente procesamiento. Por ahora, no tengo tiempo para ver más en detalle, pero te agradezco tu solución lista para usar.
      0