Risultati da 1 a 18 di 18

Discussione: leggere penultima linea di file word da excel



  1. #1
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    72
    Messaggi
    1119
    Versione Office
    2010
    Likes ricevuti
    146
    Likes dati
    1

    leggere penultima linea di file word da excel

    riesco ad aprire il file con questo codice, ma non so come leggere la penultima linea
    Codice: 
    Sub aa()
    Filepath = "F:\Download\"
    On Error Resume Next
    Set wdApp = GetObject(, "Word.Application") 'utilizziamo eventuale word già aperto
    If wdApp Is Nothing Then Set wdApp = CreateObject("word.application") 'altrimenti creiamo la sessione
    Set wdDoc = wdApp.Documents(Filepath & "prova.docx")  'se il file è già aperto
    Set wdDoc = wdApp.Documents.Open(Filepath & "prova.docx") 'altrimenti lo apro
    On Error GoTo 0
    wdApp.Visible = True
    'texttofind = "@"
    'wdDoc.Content.Find.Execute FindText:=texttofind
    ' inizio codice non funzionante
    With wdDoc
          .EndKey Unit:=wdStory
          .HomeKey Unit:=wdLine
          .EndKey Unit:=wdLine, Extend:=wdExtend
          mmail = .Selection
    End With
    wdDoc.Close
    Set wdApp = Nothing
    Set wdDoc = Nothing
    End Sub
    lo scopo finale è leggere l'indirizzo email nella penultima linea

  2. #2
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    72
    Messaggi
    1119
    Versione Office
    2010
    Likes ricevuti
    146
    Likes dati
    1

    Re: leggere penultima linea di file word da excel

    per il momento ho risolto così, non è molto elegante ma .....
    Codice: 
    Sub inviaelenco()
    Dim MyWd As Object
    fname = "nomefile"
    Set MyWd = GetObject(fname)
      MyWd.ActiveWindow.Selection.WholeStory
      MyWd.ActiveWindow.Selection.Copy
      With Sheets(2)
           .Range("A1").PasteSpecial xlPasteValues
           LR = .Cells(.Rows.Count, "A").End(xlUp).Row 
           mmail = .Range("A" & LR - 1)
           mmail = Trim(Right(mmail, Len(mmail) - 7))
      End With
      Sheets(1).Range("B2") = mmail
      Sheets(1).Range("C2") = fname
    MyWd.Close
    End Sub

  3. #3

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4024
    Versione Office
    2013
    Likes ricevuti
    1229
    Likes dati
    923

    Re: leggere penultima linea di file word da excel

    Ciao patel,

    premetto che questa è la prima volta che uso il vba per un documento word (infatti non avevo ancora le librerie attive).
    Sbattendo un pò in giro (dove dicono che basta scrivere "Selection" per riferirsi al documento) ma soprattutto vedendo il tuo ultimo codice,
    sembra funzionare in questo modo.... nel senso che non da errori e viene in effetti selezionata l'ultima riga del documento, ma non so il perchè non riesco ad assegnare il testo dell'ultima riga alla variabile "mmail".

    Comunque:

    Codice: 
    Option Explicit
    
    
    Sub aa()
    Dim Filepath As String, wdapp As Word.Application, wddoc As Word.Document, mmail As String
    
    
    Filepath = "D:\" '<<<<< da modificare
    On Error Resume Next
    Set wdapp = GetObject(, "Word.Application") 'utilizziamo eventuale word già aperto
    If wdapp Is Nothing Then Set wdapp = CreateObject("word.application") 'altrimenti creiamo la sessione
    Set wddoc = wdapp.Documents(Filepath & "prova.docx")  'se il file è già aperto
    Set wddoc = wdapp.Documents.Open(Filepath & "prova.docx") 'altrimenti lo apro
    On Error GoTo 0
    wdapp.Visible = True
    'texttofind = "@"
    'wdDoc.Content.Find.Execute FindText:=texttofind
    
    
    With wddoc.ActiveWindow.Selection
          .EndKey Unit:=wdStory
          .HomeKey Unit:=wdLine
          .EndKey Unit:=wdLine, Extend:=wdExtend
          mmail = Selection.Text   '<<< Non so perchè non prende il valore
    End With
    wddoc.Close
    Set wdapp = Nothing
    Set wddoc = Nothing
    End Sub
    fammi sapere se riesci ad assegnare il testo alla variabile...

    [EDIT]
    occhio che il percorso del file è modificato...

    Ciao
    Tore

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  4. #4
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    72
    Messaggi
    1119
    Versione Office
    2010
    Likes ricevuti
    146
    Likes dati
    1

    Re: leggere penultima linea di file word da excel

    mi va in errore nella riga .EndKey Unit:=wdStory
    la cosa strana è che lo stesso codice funziona bene su word
    Codice: 
    Sub Macro1()
        Selection.EndKey Unit:=wdStory
        Selection.HomeKey Unit:=wdLine
        Selection.EndKey Unit:=wdLine, Extend:=wdExtend
        a = Selection
        MsgBox a
    End Sub

  5. #5

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4024
    Versione Office
    2013
    Likes ricevuti
    1229
    Likes dati
    923

    Re: leggere penultima linea di file word da excel

    Ciao,
    ma le librerie di word le hai attivate in excel?

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  6. #6

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4024
    Versione Office
    2013
    Likes ricevuti
    1229
    Likes dati
    923

    Re: leggere penultima linea di file word da excel

    Per assegnare il testo alla variabile "mmail" non dovevo scrivere così:

    Codice: 
    mmail = Selection.Text
    ma semplicemente così (essendo già in "Selection" grazie al "With"):

    Codice: 
    mmail = .Text

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  7. #7
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    72
    Messaggi
    1119
    Versione Office
    2010
    Likes ricevuti
    146
    Likes dati
    1

    Re: leggere penultima linea di file word da excel

    ora le ho attivate, bravo Cromagno, ora funziona per l'ultima linea, ma la penultima ?

    Tempo fa le avevo attivate le librerie di word, come si fa a renderle permanenti ?

  8. #8

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4024
    Versione Office
    2013
    Likes ricevuti
    1229
    Likes dati
    923

    Re: leggere penultima linea di file word da excel

    Citazione Originariamente Scritto da patel Visualizza Messaggio
    ora le ho attivate, ma mmail rimane vuota
    Puoi ri-postare il codice che stai usando (o solo la parte del With...end with)?

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  9. #9

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4024
    Versione Office
    2013
    Likes ricevuti
    1229
    Likes dati
    923

    Re: leggere penultima linea di file word da excel

    Mi sono accorto solo adesso che a te serviva la penultima riga e non l'ultima.

    Il codice seleziona il testo dell'ultima riga e probabilmente nel tuo documento l'ultima riga è vuota.
    Dovresti poter controllare eseguendo il codice riga per riga e vedere cosa ti seleziona nel documento word con questa istruzione:

    Codice: 
    .EndKey Unit:=wdLine, Extend:=wdExtend

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  10. #10

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4024
    Versione Office
    2013
    Likes ricevuti
    1229
    Likes dati
    923

    Re: leggere penultima linea di file word da excel

    Citazione Originariamente Scritto da patel Visualizza Messaggio
    ora le ho attivate, bravo Cromagno, ora funziona per l'ultima linea, ma la penultima ?

    Tempo fa le avevo attivate le librerie di word, come si fa a renderle permanenti ?
    uhmmmm...
    in effetti adesso ho aperto un altro file e le librerie non erano attive
    Al momento non saprei, se lo scopro ti faccio sapere (se riesci prima tu... aspetto istruzioni ).

    Per la penultima riga...
    faccio delle prove; come ti ho detto (purtroppo) non ho mai usato le istruzioni VBA per word

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  11. #11
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    72
    Messaggi
    1119
    Versione Office
    2010
    Likes ricevuti
    146
    Likes dati
    1

    Re: leggere penultima linea di file word da excel

    la macro definitiva è
    Codice: 
    Sub wordUltimaLinea()
    Dim Filepath As String, wdapp As Word.Application, wddoc As Word.Document, mmail As String
    Filepath = "F:\Download\" '<<<<< da modificare
    On Error Resume Next
    Set wdapp = GetObject(, "Word.Application") 'utilizziamo eventuale word già aperto
    If wdapp Is Nothing Then Set wdapp = CreateObject("word.application") 'altrimenti creiamo la sessione
    Set wddoc = wdapp.Documents(Filepath & "prova.docx")  'se il file è già aperto
    Set wddoc = wdapp.Documents.Open(Filepath & "prova.docx") 'altrimenti lo apro
    On Error GoTo 0
    wdapp.Visible = True
    'texttofind = "@"
    'wdDoc.Content.Find.Execute FindText:=texttofind
    
    
    With wddoc.ActiveWindow.Selection
          .EndKey Unit:=wdStory
           .MoveUp Unit:=wdLine, Count:=1
          .HomeKey Unit:=wdLine
          .EndKey Unit:=wdLine, Extend:=wdExtend
          mmail = .Text
          MsgBox mmail
    End With
    wddoc.Close
    Set wdapp = Nothing
    Set wddoc = Nothing
    End Sub

  12. #12

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4024
    Versione Office
    2013
    Likes ricevuti
    1229
    Likes dati
    923

    Re: leggere penultima linea di file word da excel

    Citazione Originariamente Scritto da patel Visualizza Messaggio
    la macro definitiva è
    Codice: 
    Sub wordUltimaLinea()
    Dim Filepath As String, wdapp As Word.Application, wddoc As Word.Document, mmail As String
    Filepath = "F:\Download\" '<<<<< da modificare
    On Error Resume Next
    Set wdapp = GetObject(, "Word.Application") 'utilizziamo eventuale word già aperto
    If wdapp Is Nothing Then Set wdapp = CreateObject("word.application") 'altrimenti creiamo la sessione
    Set wddoc = wdapp.Documents(Filepath & "prova.docx")  'se il file è già aperto
    Set wddoc = wdapp.Documents.Open(Filepath & "prova.docx") 'altrimenti lo apro
    On Error GoTo 0
    wdapp.Visible = True
    'texttofind = "@"
    'wdDoc.Content.Find.Execute FindText:=texttofind
    
    
    With wddoc.ActiveWindow.Selection
          .EndKey Unit:=wdStory
           .MoveUp Unit:=wdLine, Count:=1
          .HomeKey Unit:=wdLine
          .EndKey Unit:=wdLine, Extend:=wdExtend
          mmail = .Text
          MsgBox mmail
    End With
    wddoc.Close
    Set wdapp = Nothing
    Set wddoc = Nothing
    End Sub
    yes...
    mi hai anticipato

    Ciao
    Tore

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  13. #13

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6812
    Versione Office
    2013
    Likes ricevuti
    721
    Likes dati
    165

    Re: leggere penultima linea di file word da excel

    Ciao Andrea e Tore.

    Per curiosità ho fatto delle prove ma non ho ancora capito come funzioni questa attivazione delle librerie.

    1) Apro file di Excel
    2) Vado nell'editor di VBA in Strumenti, Riferimenti spunto la Microsoft Word 15.0 Object Library
    3) Torno al foglio salvo il file e chiudo
    4) Riapro lo stesso file ma la voce Microsoft Word 15.0 Object Library in Strementi, Riferimenti risulta non spuntata.

    Sbaglierò qualcosa? Boh?
    Alfredo

    "Non esistono cose facili o difficili; esistono cose che si sanno e cose che non si sanno"

    "Solo due cose sono infinite: l'universo e la stupidità umana; riguardo l'universo ho ancora dei dubbi" (Albert Einstein)

  14. #14

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4024
    Versione Office
    2013
    Likes ricevuti
    1229
    Likes dati
    923

    Re: leggere penultima linea di file word da excel

    Citazione Originariamente Scritto da alfrimpa Visualizza Messaggio
    Ciao Andrea e Tore.

    Per curiosità ho fatto delle prove ma non ho ancora capito come funzioni questa attivazione delle librerie.

    1) Apro file di Excel
    2) Vado nell'editor di VBA in Strumenti, Riferimenti spunto la Microsoft Word 15.0 Object Library
    3) Torno al foglio salvo il file e chiudo
    4) Riapro lo stesso file ma la voce Microsoft Word 15.0 Object Library in Strementi, Riferimenti risulta non spuntata.

    Sbaglierò qualcosa? Boh?
    Ciao Alfredo,
    la procedura è quella che ho fatto anch'io.
    Se apro lo stesso file in cui avevo attivato le librerie...allora tutto ok, sono ancora attive; mentre se apro un altro file...sono disattivate.

    Mah... ci sbatteremo un pò

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  15. #15

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6812
    Versione Office
    2013
    Likes ricevuti
    721
    Likes dati
    165

    Re: leggere penultima linea di file word da excel

    Tore io ho aperto lo stesso file dove avevo attivato le librerie; alla nuova riapertura le librerie non erano spuntate.

    Non è che viene rilevata la presenza di codice e vengono attivate le librerie?

    Non credo proprio che sia così
    Alfredo

    "Non esistono cose facili o difficili; esistono cose che si sanno e cose che non si sanno"

    "Solo due cose sono infinite: l'universo e la stupidità umana; riguardo l'universo ho ancora dei dubbi" (Albert Einstein)

  16. #16

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4024
    Versione Office
    2013
    Likes ricevuti
    1229
    Likes dati
    923

    Re: leggere penultima linea di file word da excel

    Citazione Originariamente Scritto da alfrimpa Visualizza Messaggio
    Tore io ho aperto lo stesso file dove avevo attivato le librerie; alla nuova riapertura le librerie non erano spuntate.

    Non è che viene rilevata la presenza di codice e vengono attivate le librerie?

    Non credo proprio che sia così
    Dopo alcune prove, mi sa che invece è proprio così...

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  17. #17
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    72
    Messaggi
    1119
    Versione Office
    2010
    Likes ricevuti
    146
    Likes dati
    1

    Re: leggere penultima linea di file word da excel

    Alfredo, se riapro il file la trovo attivata insieme alle prime.

    il codice precedente è semplificabile (non si vede la finestra di word) così
    Codice: 
    Sub wordPenUltimaLinea()
    Filepath = "F:\Download\" '<<<<< da modificare
    Set MyWd = GetObject(Filepath & "prova.docx")
    With MyWd.ActiveWindow.Selection
          .EndKey Unit:=wdStory
          .MoveUp Unit:=wdLine, Count:=1
          .HomeKey Unit:=wdLine
          .EndKey Unit:=wdLine, Extend:=wdExtend
          mmail = .Text
          MsgBox mmail
    End With
    MyWd.Close
    Set MyWd = Nothing
    End Sub

  18. I seguenti utenti hanno dato un "Like"


  19. #18

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6812
    Versione Office
    2013
    Likes ricevuti
    721
    Likes dati
    165

    Re: leggere penultima linea di file word da excel

    Citazione Originariamente Scritto da cromagno Visualizza Messaggio
    Dopo alcune prove, mi sa che invece è proprio così...
    Ed infatti è proprio così.

    Ho copiato il codice di Andrea in un file vuoto, attivato la libreria salvato il file chiuso e riaperto e la libreria era lì

    Certo che è strano questo modo di comportarsi di Excel.

    L'attivazione delle librerie (quali che siano) dovrebbe valere a livello di Application e non di singolo file.

    Però se ci penso bene avviene la stessa cosa per i controlli "particolari".

    Se in una userform pur avendo ad esempio la listview in casella degli strumenti fino a che questa non viene inserita nella userform il Microsoft Windows Common Controls 6.0 (SP6) non viene visualizzato.
    Alfredo

    "Non esistono cose facili o difficili; esistono cose che si sanno e cose che non si sanno"

    "Solo due cose sono infinite: l'universo e la stupidità umana; riguardo l'universo ho ancora dei dubbi" (Albert Einstein)

Discussioni Simili

  1. Importare File Multipli XML in Excel con una sola linea Titoli Colonne
    Di ginofamilio nel forum Domande su Excel VBA e MACRO
    Risposte: 51
    Ultimo Messaggio: 23/12/16, 19:39
  2. Macro da File Excel a file Word
    Di prupri nel forum Domande su Excel VBA e MACRO
    Risposte: 2
    Ultimo Messaggio: 02/12/16, 09:02
  3. Leggere file di testo di 130 Mb privo di CR ma con LF
    Di patel nel forum Domande su Excel VBA e MACRO
    Risposte: 22
    Ultimo Messaggio: 02/09/16, 21:46
  4. stampa unione word da file di dati excel
    Di CRISTIAN nel forum Domande su Excel in generale
    Risposte: 0
    Ultimo Messaggio: 16/06/16, 12:34
  5. Aprire da Excel VBA un file Word
    Di alfrimpa nel forum Domande su Excel VBA e MACRO
    Risposte: 16
    Ultimo Messaggio: 23/02/16, 17:18

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •