Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Macro excel - Errore run-time 1004

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

Macro excel - Errore run-time 1004

Postdi SebNan » 07/12/12 15:01

Ciao ragazzi,
ho creato una macro in excel che si attiva con il comando rapido "Ctrl+q" e fin qui funziona tutto corettamente, invece inserendo un pulsante di comando che richiama la stessa macro mi da errore. La macro apre un file excel, seleziona la colonna A ed incolla il tutto nel mio file. Con il pulsante di comando mi va in errore di run-time 1004 (e mi dice errore nel metodo Select per la classe range) proprio nella selezione della colonna A " Columns("A:A").Select". Spero di essere stato chiaro e confido nel vostro aiuto
Grazie
SebNan

Codice: Seleziona tutto
Windows("TESTO.xls").Activate
    Sheets("TESTO").Select
    Columns("A:A").Select
    Selection.Copy
SebNan
Utente Junior
 
Post: 28
Iscritto il: 07/12/12 14:32

Sponsor
 

Re: Macro excel - Errore run-time 1004

Postdi scossa » 08/12/12 10:43

SebNan ha scritto:Ciao ragazzi,
ho creato una macro in excel che si attiva con il comando rapido "Ctrl+q" e fin qui funziona tutto corettamente, invece inserendo un pulsante di comando che richiama la stessa macro mi da errore. La macro apre un file excel, seleziona la colonna A ed incolla il tutto nel mio file. Con il pulsante di comando mi va in errore di run-time 1004 (e mi dice errore nel metodo Select per la classe range) proprio nella selezione della colonna A " Columns("A:A").Select". Spero di essere stato chiaro e confido nel vostro aiuto
Grazie
SebNan

Codice: Seleziona tutto
Windows("TESTO.xls").Activate
    Sheets("TESTO").Select
    Columns("A:A").Select
    Selection.Copy


1) mostra tutto il codice della macro
2) spiega dove hai messo questo codice
3) spiega dove hai messo il commandbutton (ActviveX? o modulo?)
4) se puoi condividi i due file.
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 424
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: Macro excel - Errore run-time 1004

Postdi SebNan » 10/12/12 15:28

Ciao,
la macro è la seguente; (In pratica fa il copia ed incolla del contenuto di un file excel da un file all'altro). la macro è contenuta nel file di destino, in cui c'è un altra macro che me lo lavora attraverso un altro command button. In verità i command button dovrebbero essere 2, uno che mi aggiorna il file e l'altro che me lo lavora, ho provato a fare anche una macro unica, solo che mi da sempre lo stesso errore (che invece non mi da con il comando rapido "Ctrl+q"). Il command button è un oggetto contenuto nel foglio del file excel di destino, in alto a sinistra.
Grazie 1000
Sebanan

Codice: Seleziona tutto
 Windows("NARDELLI.xls").Activate
    Rows("1:52").Select
    Range("A52").Activate
    Selection.Delete Shift:=xlUp
    Columns("A:N").Select
    Selection.Delete Shift:=xlToLeft
    Application.Goto Reference:="R1C1"
    Workbooks.Open Filename:="\\10.00.00.0\tmp\TESTO.xls"
    Windows("TESTO.xls").Activate
    Sheets("TESTO").Select
    Range("A1").Select
    Columns("A:A").Select
    Selection.Copy
    Windows("NARDELLI.xls").Activate
    Selection.End(xlUp).Select
    ActiveSheet.Paste
    Range("A1").Select
    Windows("TESTO.xls").Activate
    Application.CutCopyMode = False
    Range("A1").Select
    ActiveWindow.Close



EDIT Flash: inserire sempre i codici macro e formule nell'apposito Tag CODE posto nell'Editor del post
SebNan
Utente Junior
 
Post: 28
Iscritto il: 07/12/12 14:32

Re: Macro excel - Errore run-time 1004

Postdi Flash30005 » 10/12/12 18:00

Nel file "Nardelli.xls"
inserisci questa macro
Codice: Seleziona tutto
Sub SebNanMacro()
 FileO = ThisWorkbook.Name
 NFile = "TESTO.xls"
    Rows("1:52").Delete
    Columns("A:N").Delete
    Workbooks.Open Filename:="\\10.00.00.0\tmp\TESTO.xls"
    Sheets("TESTO").Select
    Columns("A:A").Select
    Selection.Copy
    Workbooks(FileO).Activate
    Selection.End(xlUp).Select
    ActiveSheet.Paste
    Range("A1").Select
    Windows(NFile).Activate
    Application.CutCopyMode = False
    Range("A1").Select
    ActiveWindow.Close savechanges:=False
 End Sub


Assicurati che l'indirizzo di rete sia corretto e avvia la macro
Provata e funziona

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Macro excel - Errore run-time 1004

Postdi SebNan » 10/12/12 18:40

Ciao,
mi dà sempre il solito errore! aprendo il debug mi evindenzia la riga "Columns("A:A").Select" con il msg box "Errore di run-time 1004 : errore nel metodo Select per la classe range". Ma non capisco perchè la stessa macro con il comando rapido funziona... potrebbe essere un problema del command button?? Potrei creare un nuovo file con esattamente le stesse funzioni!!!
Grazie infinitamente, ti terrò aggiornato sui risvolti!
SebNan
Utente Junior
 
Post: 28
Iscritto il: 07/12/12 14:32

Re: Macro excel - Errore run-time 1004

Postdi Flash30005 » 10/12/12 19:18

Prova a usare il comando di scelta rapida Ctrl+m (m minuscolo) e non Q
in quanto Ctrl+Q è già un comando (nasconde le righe)

e usa solo la macro che ti ho inviato e e posta nel modulo del file "Nardelli" non la seconda macro che dici di avere nell'altro file

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Macro excel - Errore run-time 1004

Postdi SebNan » 11/12/12 13:02

Ciao,
ha creato un nuovo file reinserendo le stesse macro ed ora funziona. Vorrei inoltre sapere se c'è una macro che memorizza solo le righe occupate in modo da inserire i totali in fondo a tutto, senza che stabilisca io un range di lavoro (es. A3:M50). Nella macro sotto riportata,invece, dopo aver ordinato in ordine crescente, riesco ad evidenziarmi i doppioni, solo che se nel file è presente una sola riga mi incolla la formula fino all'ultima riga del foglio excel. Vorrei fare in modo che se è presente una sola riga si fermi in modo da non riportarmi la formula su tutto il foglio.
Grazie ancora
Ciao

Application.Goto Reference:="R50C16"
ActiveCell.FormulaR1C1 = "x"
Range("P50").Select
Selection.Copy
Range(Selection, Selection.End(xlUp)).Select
Range("P4:P50").Select
Range("P50").Activate
ActiveSheet.Paste
Application.CutCopyMode = False
Range("P49").Select
Selection.End(xlUp).Select
Selection.End(xlToLeft).Select
Selection.Sort Key1:=Range("B4"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Columns("C:C").Select
Selection.Insert Shift:=xlToRight
Range("C3").Select
ActiveCell.FormulaR1C1 = "Doppi"
Range("B3").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 1) = "x"
Range("C4").Select
ActiveCell.FormulaR1C1 = "=+IF(RC[-1]=R[1]C[-1],""SI"",""no"")"
Range("C4").Select
Selection.Copy
Range("C5").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("C4").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
SebNan
Utente Junior
 
Post: 28
Iscritto il: 07/12/12 14:32

Dividere un file in più fogli

Postdi SebNan » 22/05/13 12:09

Ciao a tutti,
ho un file excel una macro che, dato un elenco di informazioni, mi permette di dividerlo in tanti fogli quanto sono i codici contenuti nella colonna "H", inoltre dovrebbe copiarmi l'intestazione e rinominarmi il foglio con il codice che contiene.

Grazie
SebNan
Utente Junior
 
Post: 28
Iscritto il: 07/12/12 14:32

Re: Macro excel - Errore run-time 1004

Postdi Anthony47 » 22/05/13 19:09

Se vuoi condividere il lavoro fatto puoi pubblicare o la macro o il file complessivo, usando un servizio di file share (vedi viewtopic.php?f=26&t=80395)

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Dividere un file in più fogli

Postdi SebNan » 23/05/13 13:38

Ciao, la macro non c'è l'ho, la devo fare ma non so come, mi sono espresso male. Ho soltanto il file di partenza, se può essere utile posso condividere quello. Non sono molto esperto di VBA, ho iniziato da poco come autdidatta. Spero qualcuno mi possa auitare.

Grazie 1000
SebNan
Utente Junior
 
Post: 28
Iscritto il: 07/12/12 14:32

Re: Macro excel - Errore run-time 1004

Postdi Anthony47 » 24/05/13 12:09

Ah, era una domanda cifrata...
Premesso che sono della scuola di chi dice che i dati devono stare tutti insieme (e quindi sarei contrario agli spezzettamenti), una macro come questa potrebe fare quel lavoro:
Codice: Seleziona tutto
Sub Smembra()
Dim NShInfo As Variant, myCol As String, I As Long, StSh As String
'
StSh = "Masteraa"   '<<< Il foglio con l' elenco
myCol = "H"         '<<< La colonna da esaminare
'
Sheets(StSh).Select
With Sheets(StSh)
    For I = 2 To .Cells(Rows.Count, myCol).End(xlUp).Row
        If .Cells(I, myCol) <> "" Then
           NShInfo = MNSheet(.Cells(I, myCol))
           If NShInfo(1) = False Then
                .Cells(1, 1).EntireRow.Copy Destination:=Sheets(NShInfo(2)).Cells(1, 1)
           End If
           .Cells(I, 1).EntireRow.Copy Destination:=Sheets(NShInfo(2)).Cells(Sheets(NShInfo(2)).Cells(Rows.Count, myCol).End(xlUp).Offset(1, 0).Row, 1)
        End If
    Next I
End With
End Sub

Function MNSheet(ByVal shName As String) As Variant
Dim myRet(1 To 2)
Dim I As Long, WkExists As Boolean
verbot = ":\/?*[]"
For I = 1 To Len(verbot)
    shName = Replace(shName, Mid(verbot, I, 1), "#")
Next I
shName = Left(shName, 31)
WkExists = False
On Error Resume Next
WkExists = (Len(Sheets(shName).Name) > 0)
On Error GoTo 0
If Not WkExists Then
    Sheets.Add after:=Worksheets(Worksheets.Count)
    ActiveSheet.Name = shName
End If
myRet(1) = WkExists: myRet(2) = shName
MNSheet = myRet
End Function

Copia il codice in un Modulo standard e personalizza le due istruzioni marcate <<<.
Poi manda in esecuzione la macro Smembra. Ti ricordo che la max lunghezza di un nome foglio e' 31 caratteri, quindi solo i primi 31 caratteri di colonna H saranno presi in considerazione; come pure ci sono dei caratteri vietati che vengono sostituiti con #.

Fai sapere...
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro excel - Errore run-time 1004

Postdi SebNan » 28/05/13 09:58

Grazie 1000! E' perfetta, funziona una meraviglia!!
SebNan
Utente Junior
 
Post: 28
Iscritto il: 07/12/12 14:32


Torna a Applicazioni Office Windows


Topic correlati a "Macro excel - Errore run-time 1004":


Chi c’è in linea

Visitano il forum: Nessuno e 11 ospiti