Condividi:        

vba word: determinare ultima riga foglio excel

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

vba word: determinare ultima riga foglio excel

Postdi karug64 » 31/07/16 14:18

Salve a tutti.

Domanda banale ma a cui lavoro da stamattina senza trovare soluzione.
Da word apro un foglio excel e seleziono il primo foglio così:

Codice: Seleziona tutto
Set applicXl = CreateObject("Excel.Application")
    applicXl.Visible = False
    Set XlDoc = applicXl.workbooks.Open(FileName:=UserForm1.filenew)
    Set xlSheet = applicXl.worksheets(1)


poi dovrei calcolare l'ultima riga avvalorata del foglio appena aperto. provo con:

Codice: Seleziona tutto
UR = xlSheet.Range("A65000").End(XlUp).Row


ma ottengo errore 1004 (definito dall'oggetto o dall'applicazione)

Potete aiutarmi a risolvere ( e soprattutto potete aiutarmi a capire qual'è concettualmente il problema) ?

Grazie
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Sponsor
 

Re: vba word: determinare ultima riga foglio excel

Postdi alfrimpa » 31/07/16 21:35

Ciao Karug

Prova con

Codice: Seleziona tutto
ur = xlsheet.Cells(Rows.Count, 1).End(xlUp).Row
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: vba word: determinare ultima riga foglio excel

Postdi karug64 » 31/07/16 22:04

Intanto ti ringrazio.

Ora, però l'errore è:

Errore di run-time '424'
Necessario oggetto
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Re: vba word: determinare ultima riga foglio excel

Postdi alfrimpa » 31/07/16 22:28

Vado a tentativi prova a mettere xlDoc prima di xlsheet.
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: vba word: determinare ultima riga foglio excel

Postdi karug64 » 31/07/16 22:43

niente da fare sempre lo stesso errore ...
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Re: vba word: determinare ultima riga foglio excel

Postdi alfrimpa » 01/08/16 10:04

Ciao Karug

Non conosco per nulla il VBA di Word ma se alleghi il tuo file completo delle macro forse qualcun altro riesce ad aiutarti.
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: vba word: determinare ultima riga foglio excel

Postdi Anthony47 » 01/08/16 11:14

Dal vba di Word non puoi usare la costante xlUp, il cui valore gli e' ignoto: o imposti un riferimento alla Microsoft Excel x.y Object Library, oppure (consigliato) usi il suo valore:
Codice: Seleziona tutto
-4162


Per l'elenco delle costanti vba Xl guarda qui: https://msdn.microsoft.com/en-us/librar ... e.14).aspx
Oppure vai nella finestra "Immediata" e usi il comando ? per stampare il valore di una costante; es
Codice: Seleziona tutto
?xlup

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: vba word: determinare ultima riga foglio excel

Postdi karug64 » 03/08/16 19:10

Ok. Grazie
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Re: vba word: determinare ultima riga foglio excel

Postdi karug64 » 11/08/16 12:55

Scusa Anthony se riapro il post.

Ho provato solo ora ad applicare il suggerimento che mi avevi proposto, ma in questa riga:

Codice: Seleziona tutto
For cercarigo = 2 To xlSheetREP.Cells(Rows.Count, 1).End(-4162).Row


ottengo sempre l'errore 424 'Necessario oggetto'

se scrivo

Codice: Seleziona tutto
For cercarigo = 2 To 1000


invece il ciclo va regolarmente.

In cosa sbaglio ?

Grazie
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Re: vba word: determinare ultima riga foglio excel

Postdi karug64 » 11/08/16 14:30

ovviamente il ciclo va (sono stato troppo elementare). Il ciclo va e gli elementi richiesti sono perfettamente raggiungibili

Codice: Seleziona tutto
If Len(Trim(xlSheetREP.Cells(cercarigo, 1).Value)) <> 0 Then
        Selection.Font.Name = Trim(xlSheetREP.Cells(cercarigo, 1).Value)
    Else
        Selection.Font.Name = "Cambria"
    End If


Il codice superiore funziona perfettamente.

Grazie
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Re: vba word: determinare ultima riga foglio excel

Postdi karug64 » 12/08/16 23:41

Salve.

A beneficio di tutti coloro che dovessero avere il mio stesso problema posto la soluzione trovata.

Codice: Seleziona tutto
xlSheetREP.Cells(xlSheetREP.Rows.Count, "A").End(-4162).Row


o anche

Codice: Seleziona tutto
xlSheetREP.Cells(xlSheetREP.Rows.Count, 1).End(-4162).Row


ovviamente avendo precedentemente dichiarato ed assegnato i valori col seguente codice:

Codice: Seleziona tutto
Set applicXl_BD = CreateObject("Excel.Application")
   applicXl_BD.Visible = False
   Set XlDoc_BD = applicXl_BD.Workbooks.Open(FileName:=Application.Application.ActiveDocument.Path + "\basedati.xlsx")
   Set xlSheetREP = applicXl_BD.Worksheets(UserForm2.Combo_fogli.Text)


Alla prossima.
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Re: vba word: determinare ultima riga foglio excel

Postdi Anthony47 » 13/08/16 02:40

Infati il motivo e' analogo all'errore precedente: nel vba di word "Rows" e' una cosa diversa di quello a cui tu vorresti alludere (la proprieta' Worksheet.Rows); quindi o usi un valore che simuli il calcolo di Rows.Count (es "65000", come avevi fatto nel codice che pubblicasti l'altro giorno) o espliciti che Rows.Count deve essere riferito al worksheet excel (come hai fatto nel codice che hai pubblicato adesso).

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "vba word: determinare ultima riga foglio excel":


Chi c’è in linea

Visitano il forum: Ricky0185 e 41 ospiti