PDA

View Full Version : [vba word] dividere una cella in 3 colonne ed evitare propagazione


john_revelator
13-12-2007, 22:38
Buona serata a tutti.
Spiego rapidamente il mio problema. Ho una tabella costituita da x righe e 2 colonne. Voglio dividere una cella della seconda colonna in 3 celle e scrivere all'interno di queste del testo.
Qui sotto c'è il codice che ho scritto

objtable.Cell(i + 1, 2).Split NumColumns:=3
objtable.Cell(i + 1, 2).Select

objword.Selection.TypeText Text:="testo1"
objword.Selection.MoveRight Unit:=wdCell
objword.Selection.TypeText Text:="testo2"
objword.Selection.MoveRight Unit:=wdCell
objword.Selection.TypeText Text:="testo3"
objword.Selection.MoveRight Unit:=wdCell


Il problema consiste nel fatto che la suddivisione in 3 colonne non si limita alla cella in questione ma si propaga anche a tutte le celle sottostanti.
Come posso risolvere?
Grazie per l'attenzione. :)

john_revelator
14-12-2007, 16:06
Allora, ho cercato con questo piccolo codice di ricreare il mio problema.
Ovviamente l'indice i che in questo codice è superfluo nella mia vera applicazione è necessario perchè recupero i dati da una query.
Vorrei sapere perchè quando splitto una determinata cella, anche le righe sottostanti vengono suddivise in 3 colonne.
Grazie per l'attenzione.


Private Sub cmdGenCV_Click()
Set objword = CreateObject("Word.Application")
objword.Visible = True
Set objdoc = objword.Documents.Add

Set objRange = objdoc.Range()
objdoc.Tables.Add objRange, 1, 2
Set objtable = objdoc.Tables(1)

objtable.Columns(1).PreferredWidth = 150
objtable.Columns(2).PreferredWidth = 350

objtable.Cell(1, 1).Range.InlineShapes.AddPicture ("C:\mioPath\immagine.jpg")
objtable.Cell(1, 1).Range.ParagraphFormat.Alignment = wdAlignParagraphRight

objtable.Rows.Add
objtable.Cell(2, 1).Range.Text = "text"

i = 3

objtable.Rows.Add
objtable.Cell(i, 1).Range.Text = "Informazioni personali"


objtable.Cell(i, 2).Split NumColumns:=3
objtable.Cell(i, 2).Select
objword.Selection.TypeText Text:="primo"
objword.Selection.MoveRight Unit:=wdCell
objword.Selection.TypeText Text:="secondo"
objword.Selection.MoveRight Unit:=wdCell
objword.Selection.TypeText Text:="terzo"
i = i + 1

objtable.Rows.Add
objtable.Cell(i, 1).Range.Text = "testo"
objtable.Cell(i, 2).Range.Text = "altro testo
i = i + 1

objtable.Rows.Add
objtable.Cell(i, 1).Range.Text = "testo"
objtable.Cell(i, 2).Range.Text = "altro testo"
i = i + 1

objtable.Rows.Add
objtable.Cell(i, 1).Range.Text = "testo"
objtable.Cell(i, 2).Range.Text = "altro testo
i = i + 1

End Sub

john_revelator
14-12-2007, 21:38
Ho appena scoperto che se cancello la prima riga della tabella che contiene l'immagine, il codice funziona e solo la cella desiderata viene splittata in tre colonne.
Ciò cosa significa, che c'è un problema di compatibilità tra InlineShapes e lo split?

Confido in qualche guru. :)