elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Mensajes
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 18
1  Programación / Programación Visual Basic / Re: Crear archivo WORD con columnas en: 2 Mayo 2021, 19:33 pm
Es ese caso puedes buscar (.Find) en el documento la palabra que quieras, obtener a partir de esa palabra un nuevo Rango e insertar ahí tu tabla:

Código
  1. Private Sub mkdoc2()
  2.  Dim word_app As Word.Application
  3.  Dim word_doc As Word.Document
  4.  Dim tbl As Word.Table
  5.  Dim rng As Word.Range
  6.  
  7.  Set word_app = New Word.Application
  8.  Set word_doc = word_app.Documents.Add(DocumentType:=wdNewBlankDocument)
  9.  
  10.  ' Inserta un título al final del documento (al inicio porque está vacío)
  11.  word_doc.Content.InsertAfter "Son escasas las casas, pero mi casa es mi casa"
  12.  
  13.  ' Inserta una tabla despues de la primera palabra "casa"
  14.  Set rng = word_doc.Content
  15.  rng.Find.Execute FindText:="casa", MatchWholeWord:=True
  16.  
  17.  If rng.Find.Found = True Then
  18.    Set rng = word_doc.Range(Start:=rng.End, End:=rng.End)
  19.    Set tbl = word_doc.Tables.Add(Range:=rng, NumRows:=3, NumColumns:=4)
  20.    tbl.AutoFormat Format:=wdTableFormatElegant
  21.  End If
  22.  
  23.  word_doc.SaveAs FileName:="docu"
  24.  word_doc.Close True
  25.  word_app.Quit False
  26. End Sub
  27.  

Estimado, agradezco la ayuda, funcionó perfecto, muchas gracias amigo  ;-)
2  Programación / Programación Visual Basic / Re: Crear archivo WORD con columnas en: 2 Mayo 2021, 09:31 am
Siempre puedes referirte a objetos del documento como palabras o párrafos para obtener un Rango adecuado, por ejemplo tomemos como primer párrafo a tu Título, entonces obtenemos un Rango que sea el último elemento de dicho párrafo (el salto de línea) e insertamos ahí la tabla:

Código
  1. Private Sub mkdoc()
  2.  Dim word_app As Word.Application
  3.  Dim word_doc As Word.Document
  4.  Dim tbl As Word.Table
  5.  Dim rng As Word.Range
  6.  
  7.  Set word_app = New Word.Application
  8.  Set word_doc = word_app.Documents.Add(DocumentType:=wdNewBlankDocument)
  9.  
  10.  ' Inserta un título al final del documento (al inicio porque está vacío)
  11.  word_doc.Content.InsertAfter "Mi Título"
  12.  
  13.  ' Inserta una tabla despues del primer párrafo (despues del título)
  14.  Set rng = word_doc.Range(word_doc.Paragraphs(1).Range.End - 1, word_doc.Paragraphs(1).Range.End)
  15.  Set tbl = word_doc.Tables.Add(Range:=rng, NumRows:=3, NumColumns:=4)
  16.  tbl.AutoFormat Format:=wdTableFormatElegant
  17.  
  18.  word_doc.SaveAs FileName:="docu"
  19.  word_doc.Close True
  20.  word_app.Quit False
  21. End Sub

Entiendo, el problema es que el contenido del word va variando y los párrafos van cambiando, hay alguna manera de que por ejemplo el rango se defina a través de una palabra? por ejemplo, que inserte la tabla después de la palabra "casa".

Gracias por la ayuda amigo
3  Programación / Programación Visual Basic / Re: Crear archivo WORD con columnas en: 2 Mayo 2021, 03:17 am
Saludos,

Debes tener la referencia a mano: https://docs.microsoft.com/es-es/office/vba/api/word.table

Para tu ejemplo quedaría más o menos así:

Código
  1. Private Sub mkdoc()
  2.  Dim word_app As Word.Application
  3.  Dim word_doc As Word.Document
  4.  Dim tbl As Word.Table
  5.  Dim rng As Word.Range
  6.  
  7.  Set word_app = New Word.Application
  8.  Set word_doc = word_app.Documents.Add(DocumentType:=wdNewBlankDocument)
  9.  
  10.  Set rng = word_doc.Range(Start:=0, End:=0)
  11.  Set tbl = word_doc.Tables.Add(Range:=rng, NumRows:=3, NumColumns:=4)
  12.  tbl.AutoFormat Format:=wdTableFormatElegant
  13.  
  14.  word_doc.SaveAs FileName:="docu"
  15.  word_doc.Close True
  16.  word_app.Quit False
  17. End Sub

Estimado, como puedo hacer para crear la tabla como continuación de otro elemento. al establecer el rango (.Range(Start:=0, End:=0)) la tabla se crea al principio del documento. mi idea es que la tabla salga después de un título por ejemplo, pero no a través de un rango especifico, por que el texto previo va variando y por ende el rango irá cambiando también, espero me haya dado a entender.

Gracias por tu ayuda.
4  Programación / Programación Visual Basic / Re: Crear archivo WORD con columnas en: 27 Abril 2021, 22:15 pm
Saludos,

Debes tener la referencia a mano: https://docs.microsoft.com/es-es/office/vba/api/word.table

Para tu ejemplo quedaría más o menos así:

Código
  1. Private Sub mkdoc()
  2.  Dim word_app As Word.Application
  3.  Dim word_doc As Word.Document
  4.  Dim tbl As Word.Table
  5.  Dim rng As Word.Range
  6.  
  7.  Set word_app = New Word.Application
  8.  Set word_doc = word_app.Documents.Add(DocumentType:=wdNewBlankDocument)
  9.  
  10.  Set rng = word_doc.Range(Start:=0, End:=0)
  11.  Set tbl = word_doc.Tables.Add(Range:=rng, NumRows:=3, NumColumns:=4)
  12.  tbl.AutoFormat Format:=wdTableFormatElegant
  13.  
  14.  word_doc.SaveAs FileName:="docu"
  15.  word_doc.Close True
  16.  word_app.Quit False
  17. End Sub

Muchas gracias estimado, funcionó de maravilla.
5  Programación / Programación Visual Basic / Crear archivo WORD con columnas en: 26 Abril 2021, 16:53 pm
Estimados, tengo la siguiente función con la cual creo un archivo word (.doc) pero no consigo dar con el codigo para insertar una tabla.

Agradecería su ayuda.  :rolleyes:
Gracias amigos

Código
  1. Private Sub MakeWordDoc(ByVal file_name As String, ByVal title As String, ByVal body As String)
  2. On Error Resume Next
  3. Dim word_app As Word.Application
  4. Dim word_doc As Word.Document
  5.  
  6. ' Open Word and create a document.
  7. Set word_app = New Word.Application
  8. Set word_doc = word_app.Documents.Add(DocumentType:=wdNewBlankDocument)
  9.  
  10.  
  11.    ' Write the title.
  12.  
  13.  
  14.    word_app.ActiveWindow.Selection.Font.Size = 25
  15.    word_app.ActiveWindow.Selection.Font.Name = "Arial"
  16.        word_app.Selection.TypeText title
  17.    'word_app.ActiveWindow.Selection.Font.Size = 24
  18.  
  19.  
  20.    ' Save the file.
  21.    word_doc.SaveAs FileName:=file_name
  22.  
  23.    ' Close the document and Word.
  24.    word_doc.Close True
  25.    word_app.Quit False
  26. End Sub
  27.  

6  Programación / Programación Visual Basic / Extraer determinada linea de un textbox multilinea en: 6 Diciembre 2019, 17:39 pm
Estimados, recurro a su sapiencia, tengo un textbox multilinea con la siguiente estructura:

hola
mundo
nuevo

y lo que quiero es poder extraer cada linea por separada, por ejemplo en una variable, la linea 1 en otra la 2 y en otra la 3, pero no encuentro la forma de hacerlo.

Espero me puedan ayudar con eso.
Muchas gracias
7  Programación / Programación Visual Basic / Colorear celda de msflexgrid según condición en: 21 Diciembre 2017, 21:22 pm
Hola amigos, acudo a sus conocimientos, tengo un msflegrid, en la primera columna tengo algunos número, la idea es que todos los números mayores a 25 queden con el fondo color rojo, elaboré este codigo:

Código
  1. 'Problemas
  2. MSFlexGrid3.Col = 0
  3. For i = 0 To 23
  4. MSFlexGrid3.Row = i
  5. If MSFlexGrid3.Text > "25" Then
  6. MSFlexGrid3.CellBackColor = RGB(255, 127, 100)
  7. Exit Sub
  8. End If
  9. Next
  10.  
  11.  

El problema es que solo colorea la celda del primer valor encontrado en este caso el "28 del AC Milan (ver imagen) y la idea es que lo haga con todos los valores sobre 25 de la columna. Es decir Napoly, Toteham, etc.




Alguna idea amigos??
Muchas gracias
8  Programación / Programación Visual Basic / Obtener valor en MSFlexGrid en: 7 Noviembre 2017, 23:55 pm
Estimados, estoy trabajando con el control "MSFlexGrid" el tema es que necesito obtener el valor derecho de la celda seleccionada, es decir por ejemplo si selecciono "Mehta" (Ver imagen) me muestre en un msgbox el valor "100"



Se puede??
Muchas gracias amigos
9  Programación / Programación Visual Basic / Re: Buscar y contar palabras en un listbox en: 10 Agosto 2017, 16:44 pm
No existe ninguna otra manera que recorrer la lsita mediante un bucle.

Código:
Recorre la lista con un bucle,
- Si el elemento acaba en "[1]" añade 1 al contador de ese tipo...
- Si el elemento acaba en "[2]" añade 1 al contador de este otro elemento...
- Si no acaba en ninguno de estos (suponiendo que tengas también algún "[0]", no haces nada, o quizás debas también sumarlo si por ejemplo acaban en "[2]"...
Fin del bucle

...que en VB6 sería más o menos:
Código
  1. Dim k as integer
  2.  
  3. For k = 0 to Listbox1.Listcount-1
  4.    If (Instrrev(Listbox1.List(k) = "[1]" then
  5.        Cuenta1 = (Cuenta1 + 1)
  6.    Elseif Instrrev(Listbox1.List(k) = "[2]" then
  7.        Cuenta2 = (Cuenta2 + 1)
  8.    End if
  9. Next
  10.  
  11. Msgbox "Cuenta de [1]: " & cstr(Cuenta1) & vbcrlf & _
  12.       "Cuenta de [2]: " & cstr(cuenta2)

Ahora, coincido con Elektro, cuandio te reclama:

Amigos, en primer lugar les agradezco por darse el tiempo de ayudarme, he aprendido de vb6 pero aún hay cosas que no entiendo del todo, si bien no es el mejor control, dadas las características de mi programa, necesito que sea de esa manera.

Intenté con el código, pero me marca un error, al parecer falta un separador de listas, intenté agregando un ")" pero me dice que "El argumento no es opcional" sobre "InStrRev".



Gracias nuevamente amigos
10  Programación / Programación Visual Basic / Re: Buscar y contar palabras en un listbox en: 8 Agosto 2017, 23:28 pm
¿Cómo dices, la cantidad de "[1]" y [2]" en total?. y ¿VB6, o VB.NET?.

Amigo es para VB6,  :-(
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 18
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines