Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

macro in 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

macro in excel

Postdi apocrimata75 » 30/05/11 14:46

Ciao a tutti ho un problema, vista la mia ignoranza in materia, con la creazione di una macro in excel, vi spiego il problema:
ho una cartella di lavoro con 2 fogli denominati "acquisti" e "articoli". Il foglio acquisti contiene tra l'altro nella prima colonna un numero progressivo (esempio da 1 a 1.000) oltre a informazioni relativi a marca, modello ecc.
Il foglio articoli invece è composto da etichette da stampare, in pratica selezionando con un menù a tendina l'articolo (con "convalida elenco" prende i dati dal foglio acquisti) nelle altre celle con la funzione cerca.vert mi riporta i dati del primo foglio.

Nel foglio articoli ci sono 16 celle come sopra descritto e vorrei potergli dare il comando "stampa gli articoli dal nr. x al nr. y, ma non ho idea di come si possa fare.

Quakcuno può aiutarmi?


Ho Windows seven pro ed office 2010. (infatti solo con office 2010 c'è la possibilità di prendere i dati presenti su un altro foglio)
Windows 7 - Office 2010
apocrimata75
Utente Senior
 
Post: 181
Iscritto il: 28/05/11 13:22

Sponsor
 

Re: macro in excel

Postdi Avatar3 » 30/05/11 15:26

Ma vuoi stampare una parte delle 16 celle (e relativi campi correlati) del foglio Articoli
o una parte dei progressivi del foglio Acquisti?
In tutti e due i casi prova ad inviare un'immagine dello schermo (screenshot) per dare la possibilità di vedere la distribuzione dei dati.
La procedura di invio immagini e/o file la puoi leggere in questo link
http://www.pc-facile.com/forum/viewtopic.php?f=26&t=80395
devi, però aver inserito almeno tre post nel forum

(Non solo Office 2010 permette il collegamento con altri fogli)
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: macro in excel

Postdi apocrimata75 » 30/05/11 15:35

per inserire un post 2
Windows 7 - Office 2010
apocrimata75
Utente Senior
 
Post: 181
Iscritto il: 28/05/11 13:22

Re: macro in excel

Postdi apocrimata75 » 30/05/11 15:36

per inserire un post 3 :undecided: così dovrei esserci a 3 post, giusto?
Windows 7 - Office 2010
apocrimata75
Utente Senior
 
Post: 181
Iscritto il: 28/05/11 13:22

Re: macro in excel

Postdi apocrimata75 » 30/05/11 15:45

questo è il link: http://imageshack.us/photo/my-images/805/etichette.jpg/

le celle in giallo sono quelle interessate, le altre forniscono dati col cerca.vert.

Già che ci sono conoscete qualche altro programma per visualizzare il codice a barre come da file allegato? Uso Tbar ma è una versione demo per ora.
Grazie.

P.s.: 1) il secondo file si chiama "foglio2" e non articoli come detto precedentemente;
2) quale altro office permetteva di prendere dati da altro foglio?
Windows 7 - Office 2010
apocrimata75
Utente Senior
 
Post: 181
Iscritto il: 28/05/11 13:22

Re: macro in excel

Postdi Avatar3 » 30/05/11 16:10

Scusami ma non mi sono chiare alcune tue affermazioni
1)
apocrimata75 ha scritto:ho una cartella di lavoro con 2 fogli denominati "acquisti" e "articoli".

2)
apocrimata75 ha scritto: il secondo file si chiama "foglio2" e non articoli come detto precedentemente

3) l'immagine da te inviata è relativa al Foglio2 (ex Articoli)?
4) Se si (come risposta alla domanda 3), fai un esempio di stampa che vorresti ottenere partendo da art. N.x a art. N.y
in pratica da x= 1 a y= 4 vorresti stampare il Range A1:AV10 ?
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: macro in excel

Postdi apocrimata75 » 30/05/11 16:28

l'immagine è relativa al "foglio2", dove la cella a10, m10 ecc (quelle in giallo), tramite "convalida elenco" mi permette di scegliere l'articolo da un elenco presente nel foglio "acquisti", precisamente dalla colonna A, http://imageshack.us/photo/my-images/196/acquistig.jpg/


in questo modo scelgo i 16 articoli (pari al numero delle celle gialle) esempio dal nr. 10000000001 (presente in A3 foglio "acquisti") al numero 100000000016, stampo le etichette e dopo devo ripetere l'operazione per i successivi articoli da 10000000017 in poi.
Spero di essere stato chiaro.
Windows 7 - Office 2010
apocrimata75
Utente Senior
 
Post: 181
Iscritto il: 28/05/11 13:22

Re: macro in excel

Postdi Avatar3 » 30/05/11 16:36

Bene!
quindi vorresti eliminare l'operazione "manuale" di inserimento dei 16 articoli alla volta e avere, invece, definendo un inizio (es. 1), fine (es 64) la stampa dei 4 fogli di etichette che si aggiornano in automatico con macro (16*4 = 64), giusto?
Scusa tutte queste domande ma prima di inziare la realizzazione di una macro è bene conoscere a fondo l'esigenza al fine di evitare perdite di tempo e continue modifiche su un progetto interpretato male.

Aggiunta nota in rosso
Ultima modifica di Avatar3 su 30/05/11 16:41, modificato 1 volte in totale.
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: macro in excel

Postdi apocrimata75 » 30/05/11 16:40

perfetto, hai capito quello che vorrei. è possibile secondo te?

p.s.: mi devo assentare un paio d'ore, grazie x il tuo interessamento, al rientro do un'occhiata ai tuoi post.
Windows 7 - Office 2010
apocrimata75
Utente Senior
 
Post: 181
Iscritto il: 28/05/11 13:22

Re: macro in excel

Postdi Avatar3 » 30/05/11 16:43

E' possibile
sarebbe meglio avere i file originali per fare i dovuti test ma proverò ad arrangiarmi
Vai tranquillo perché un paio d'ore ci vogliono per realizzare ciò :D
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: macro in excel

Postdi apocrimata75 » 30/05/11 16:47

per i files originali non ci sono problemi, te li posso inviare
Windows 7 - Office 2010
apocrimata75
Utente Senior
 
Post: 181
Iscritto il: 28/05/11 13:22

Re: macro in excel

Postdi Avatar3 » 30/05/11 16:53

Non so se ci sono dati sensibili che puoi sostituire altrimenti usa gli MP
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: macro in excel

Postdi Avatar3 » 30/05/11 20:51

Prova questa macro
Inserendo
In BA8 il numero iniziale (es 1)
In BI8 il numero finale (es 64)

Codice: Seleziona tutto
Sub aggiorna_stampa()
Dim inizio, Fine, I, LN, ZN, col, ColN, Riga As Integer
Dim Art As String
' aggiorna_stampa Macro

   inizio = Range("BA8").Value
   Fine = Range("BI8").Value
   Riga = 0
   For I = inizio To Fine
   Art = "1"
   LN = Len(I)
   For ZN = 1 To 12 - Len(I)
   Art = Art & 0
   Next ZN
   col = I Mod 4
   If col = 0 Then col = 4
   If col = 1 Then Riga = Riga + 10
   ColN = 12 * col - 11
   Cells(Riga, ColN).Value = Val(Art & I)
   If I Mod 16 = 0 Or I = Fine Then
   Riga = 0
   Calculate
   MsgBox "0"
    Range("A1:AV40").Select
    ActiveSheet.PageSetup.PrintArea = "$A$1:$AV$40"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    End If
   Next I
 
    Range("AX1").Select
End Sub
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: macro in excel

Postdi apocrimata75 » 30/05/11 22:08

errore di runtime 6
overflow


viene evidenziata in giallo la riga: col = I Mod 4


le celle inizio e fine ho messo ba8 ba10
Windows 7 - Office 2010
apocrimata75
Utente Senior
 
Post: 181
Iscritto il: 28/05/11 13:22

Re: macro in excel

Postdi apocrimata75 » 30/05/11 22:12

inoltre ba8 e ba10, formato celle personalizzato (00000000000) con convalida dati dal foglio acquisti colonna a
Windows 7 - Office 2010
apocrimata75
Utente Senior
 
Post: 181
Iscritto il: 28/05/11 13:22

Re: macro in excel

Postdi apocrimata75 » 30/05/11 22:26

anche con bi8 stesso problema
Windows 7 - Office 2010
apocrimata75
Utente Senior
 
Post: 181
Iscritto il: 28/05/11 13:22

Re: macro in excel

Postdi Avatar3 » 30/05/11 22:34

BA8 = 1 (o altro numero: inizio) e non formattato come "00000000000000" ma semplice numero (è più semplice)
BI8 = 64 (o altro numero superiore a BA8: ultimo record da stampare) formattato come numero intero

E senza nessuna convalida così puoi scegliere qualsiasi numero tra 1 e 1000
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: macro in excel

Postdi apocrimata75 » 30/05/11 22:42

appare una finestrella con "o", poi errore debug ed evidenziata la riga:
ActiveSheet.PageSetup.PrintArea = "$A$1:$AV$40"
Windows 7 - Office 2010
apocrimata75
Utente Senior
 
Post: 181
Iscritto il: 28/05/11 13:22

Re: macro in excel

Postdi apocrimata75 » 30/05/11 22:48

Windows 7 - Office 2010
apocrimata75
Utente Senior
 
Post: 181
Iscritto il: 28/05/11 13:22

Re: macro in excel

Postdi Avatar3 » 30/05/11 22:54

Lo "0" dipende da un msgbox lasciato che devi cancellare

in pratica sostituisci queste cinque linee di codice:

Codice: Seleziona tutto
   Calculate   '<<< lasciare questo codice (dove indicato)
   MsgBox "0"   '<<<<<< cancellare o sostituire
    Range("A1:AV40").Select   "   '<<<<<< cancellare o sostituire
     ActiveSheet.PageSetup.PrintArea = "$A$1:$AV$40"    '<<<<<< "   '<<<<<< cancellare o sostituire
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True   '<<<<<<<<<<< cancellare o sostituire
    ', IgnorePrintAreas:=False   "   '<<<<<< cancellare o sostituire
    End If   '<<<<<< lasciare questo codice



con questo codice che adatta la pagina
Codice: Seleziona tutto
 ActiveSheet.PageSetup.PrintArea = "$A$1:$AV$40"
    With ActiveSheet.PageSetup
        .PrintTitleRows = ""
        .PrintTitleColumns = ""
    End With
    ActiveSheet.PageSetup.PrintArea = "$A$1:$AV$40"
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(0)
        .RightMargin = Application.InchesToPoints(0)
        .TopMargin = Application.InchesToPoints(0)
        .BottomMargin = Application.InchesToPoints(0)
        .HeaderMargin = Application.InchesToPoints(0)
        .FooterMargin = Application.InchesToPoints(0)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlLandscape
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        .PrintErrors = xlPrintErrorsDisplayed
    End With
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "macro in excel":


Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti