Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
Macro da Word ad Excel
Nuovo argomento   Rispondi    Indice del forum -> Office e LibreOffice
Precedente :: Successivo  
Autore Messaggio
zazza
Comune mortale
Comune mortale


Registrato: 27/03/13 09:39
Messaggi: 2

MessaggioInviato: 27 Mar 2013 19:20    Oggetto: Macro da Word ad Excel Rispondi citando

Ciao,
sarebbe possibile implementare una macro per la copiatura di determinati paragrafi da un foglio Word ad Excel?

Come vedete i paragrafi legati agli elementi dovrebbero essere copiati in determinate parti Excel..

Ho un codice che potrebbe aiutare per quanto riguarda in particolare l'identificazione dell'area da copiare. Posso riportarlo se pensate aiuti ma andava bene per Excel! Non so se possa aiutare per word..

Grazie!

P.s.
per uplodare?
Top
Profilo Invia messaggio privato
GrayWolf
Dio maturo
Dio maturo


Registrato: 03/07/05 16:24
Messaggi: 2325
Residenza: ... come frontiera i confini del mondo...

MessaggioInviato: 28 Mar 2013 01:10    Oggetto: Rispondi citando

Occorre fare delle prove...

due ipotesi:
.1 con codice vba:
.1.1 creare un'istanza di excel nella macro di word,
.1.2 catturare i paragrafi
.1.3 posizionarli nelle celle con il codice exel

.2 utilizzare un "ponte" in vbscript
.2.1 creare un'istanza di word
.2.2 creare un'istanza di excel
.2.3 con l'istanza di word catturare i paragrafi
.2.4 con l'istanza di excel alimentare le celle

NOTA: word ed excel fanno riferimento a oggetti diversi

ora ho poco tempo, ma in questi giorni provo a fare qualche esperimento
[certo che una spiegazione più esauriente delle tue esigenze,
magari accompagnata da un esempio, non guasterebbe]


non hai bisogno di uploadare
è sufficiente incollare il codice della macro fra i due tag code

esempio:
Codice:

incolla qui il codice
Top
Profilo Invia messaggio privato
zazza
Comune mortale
Comune mortale


Registrato: 27/03/13 09:39
Messaggi: 2

MessaggioInviato: 18 Apr 2013 11:36    Oggetto: Rispondi

Ciao,
l'albero che avevo immaginato era il classico del tipo:
1. paragrafo
1.1 sub - paragrafo

e lo vorrei riportare in Excel per poter poi utilizzare dei filtri evenutalmente.. Non ho niente di piu preciso da darti al momento..

Cmq ti giro una traccia di un codice che utilizzamo per copiare in altri file (sempre Excel) degli elementi che ci interessavano.



Codice:


Sub copia()

Dim ws1 As Worksheet
Dim ultD As Long
Dim cl As Range
Dim cl2 As Range
Dim ColC As Range
Dim NAlfredo As Long
Dim NBarbara As Long
Dim NBruno As Long
Dim NClaudia As Long
Dim area1 As Range
Dim area2 As Range
Dim area3 As Range
Dim area4 As Range
Set ws1 = ThisWorkbook.Sheets("Book1.xls")
ultD = ws1.Range("C" & Rows.Count).End(xlUp).Row
Set ColC = ws1.Range("B1:B" & ultD)

For Each cl In ColC
    If CStr(cl) = "Alfredo" Then NAlfredo = cl.Row
    If CStr(cl) = "Barbara" Then NBarbara = cl.Row
    If CStr(cl) = "Bruno" Then NBruno = cl.Row
    If CStr(cl) = "Claudia" Then NClaudia = cl.Row
Next cl

Set area1 = ws1.Range("C" & NAlfredo + 1, "C" & NBarbara - 1)
Set area2 = ws1.Range("C" & NBarbara + 1, "C" & NBruno - 1)
Set area3 = ws1.Range("C" & NBruno + 1, "C" & NClaudia - 1)
Set area4 = ws1.Range("C" & NClaudia + 1, "C" & ultD)

For Each cl In area1
    If cl <> "" Then
        For Each cl2 In Workbooks("Scheda").Worksheets("MA").Range("M5:M8")
            If CStr(cl) = CStr(cl2) Then
                cl2.Offset(1, 0).Value = cl.Offset(0, 6).Value
                Exit For
            End If
        Next cl2
    End If
Next cl
For Each cl In area2
    If cl <> "" Then
        For Each cl2 In Sheets("Barbara").Range("C17:F17")
            If CStr(cl) = CStr(cl2) Then
                cl2.Offset(1, 0).Value = cl.Offset(0, 6).Value
                Exit For
            End If
        Next cl2
    End If
Next cl
For Each cl In area3
    If cl <> "" Then
        For Each cl2 In Sheets("Bruno").Range("C17:F17")
            If CStr(cl) = CStr(cl2) Then
                cl2.Offset(1, 0).Value = cl.Offset(0, 6).Value
                Exit For
            End If
        Next cl2
    End If
Next cl
For Each cl In area4
    If cl <> "" Then
        For Each cl2 In Sheets("Claudia").Range("C17:F17")
            If CStr(cl) = CStr(cl2) Then
                cl2.Offset(1, 0).Value = cl.Offset(0, 6).Value
                Exit For
            End If
        Next cl2
    End If
Next cl


Set ws1 = Nothing
Set ColC = Nothing
Set area1 = Nothing
Set area2 = Nothing
Set area3 = Nothing
Set area4 = Nothing
End Sub

[/code]
Top
Profilo Invia messaggio privato
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Office e LibreOffice Tutti i fusi orari sono GMT + 1 ora
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi