Aiutamici Forum
Benvenuto Ospite Cerca | Topic Attivi | Utenti | | Log In | Registra

problema macro excel Opzioni
sly000
Inviato: Wednesday, December 11, 2013 5:37:20 PM
Rank: Member

Iscritto dal : 12/11/2013
Posts: 13
]Ciao a tutti, avrei un problema da risolvere...
Ho un file excel contenente una macro che vorrei modificare...
Avrei bisogno che la mia macro mi chiedesse il numero di etichette da stampare ogni volta che scegliessi la destinazione..
Mi aiutate??? non so proprio come fare....
Grazie Anticipato!!!

Option Explicit
Dim LabText As String
Dim nElem As Integer
Dim Prov As String






Private Sub cmdAV_Click()
Dim a As Integer
Dim MyItem As String

lst1.Clear

For a = 1 To 50
MyItem = Cells.Range("K" & a).Value
lst1.AddItem MyItem
Next a
lst1.AddItem " "

cmdPrintOne.Caption = "Seleziona un elemento dalla lista"
cmdPrintALL.Caption = "Allestimento completo AVELLINO"
Prov = "AV"

nElem = 50
End Sub

Private Sub cmdPrintALL_Click()
Dim a As Integer
Dim p1, p2 As Integer
Dim MyItem As String
Dim nLab As Integer

Select Case Prov
Case "AV"
p1 = 1
p2 = 50
Case "BN"
p1 = 51
p2 = 72
Case "CE"
p1 = 73
p2 = 122
Case "NA"
p1 = 123
p2 = 186
Case "SA"
p1 = 187
p2 = 276
End Select

nLab = p2 - p1 + 1

If MsgBox("Questa scelta stamperà " & nLab & " etichette." & vbCr & "Confermi la scelta ?", vbQuestion + vbYesNo, "Attenzione. Richiesta di stampa di allestimento") = vbYes Then

For a = p1 To p2
LabText = Cells.Range("K" & a).Value
Worksheets("label").Range("A3").Value = LabText
ThisWorkbook.Sheets("label").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
''MsgBox "Stampo " & LabText
ThisWorkbook.Sheets("av").Select
Cells.Range("A1").Select
Next

End If

End Sub

Private Sub cmdPrintOne_Click()

Worksheets("label").Range("A3").Value = LabText
ThisWorkbook.Sheets("label").Select

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

ThisWorkbook.Sheets("av").Select
Cells.Range("A1").Select

End Sub


Private Sub cmdProvBN_Click()
Dim a As Integer
Dim MyItem As String

lst1.Clear
For a = 51 To 72
MyItem = Cells.Range("K" & a).Value
lst1.AddItem MyItem
Next a
lst1.AddItem " "
cmdPrintOne.Caption = "Seleziona un elemento dalla lista"
cmdPrintALL.Caption = "Allestimento completo BENEVENTO"
Prov = "BN"
End Sub

Private Sub cmdProvCE_Click()
Dim a As Integer
Dim MyItem As String

lst1.Clear
For a = 73 To 122
MyItem = Cells.Range("K" & a).Value
lst1.AddItem MyItem
Next a
lst1.AddItem " "
cmdPrintOne.Caption = "Seleziona un elemento dalla lista"
cmdPrintALL.Caption = "Allestimento completo CASERTA"
Prov = "CE"
End Sub

Private Sub cmdProvNA_Click()
Dim a As Integer
Dim MyItem As String

lst1.Clear
For a = 123 To 186
MyItem = Cells.Range("K" & a).Value
lst1.AddItem MyItem
Next a
lst1.AddItem " "
cmdPrintOne.Caption = "Seleziona un elemento dalla lista"
cmdPrintALL.Caption = "Allestimento completo NAPOLI"
Prov = "NA"
End Sub

Private Sub cmdProvSA_Click()
Dim a As Integer
Dim MyItem As String

lst1.Clear
For a = 187 To 276
MyItem = Cells.Range("K" & a).Value
lst1.AddItem MyItem
Next a
lst1.AddItem " "
cmdPrintOne.Caption = "Seleziona un elemento dalla lista"
cmdPrintALL.Caption = "Allestimento completo SALERNO"
Prov = "SA"
End Sub

Private Sub lst1_Click()
cmdPrintOne.Caption = "Stampa " & lst1.Text
LabText = lst1.Text

End Sub
Sponsor
Inviato: Wednesday, December 11, 2013 5:37:20 PM

 
a10n11
Inviato: Wednesday, December 11, 2013 6:13:58 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
non è chiaro il senso della domanda.
Il numero di etichette è già spcificato all'interno della macro.
qui:

Select Case Prov
Case "AV"
p1 = 1
p2 = 50
Case "BN"
p1 = 51
p2 = 72
Case "CE"
p1 = 73
p2 = 122
Case "NA"
p1 = 123
p2 = 186
Case "SA"
p1 = 187
p2 = 276
End Select

saluti
Giap

sly000
Inviato: Wednesday, December 11, 2013 6:25:45 PM
Rank: Member

Iscritto dal : 12/11/2013
Posts: 13
scusa se non sono stato molto chiaro...cerchero' di spiegarmi meglio...almeno ci provo...
Select Case Prov

Case "AV"
p1 = 1
p2 = 50
rappresenta le destinazione di (in questo caso di Avellino)
Case "BN"
p1 = 51
p2 = 72
in questo caso di benevento....
ecc...
il mio file mi fa scegliere prima la destinazione AV, BN ecc...poi mi escono le varie provincie (av 1-50) (bn 51-72) ecc una volta scelta la provincia mi fa stampare l'etichetta...oppure nel caso le volessi tutte potrei scegliere l'allestimento completo..
A me servirebbe la possibilita' si stampare per una singola etichetta (provincia scelta) poi' copie....(possibilita' di scegliere il numero di copie da stampare)
grazie
a10n11
Inviato: Wednesday, December 11, 2013 8:09:34 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
se non ho capito male:

prendiamo la seguente macro:

Private Sub cmdPrintALL_Click()
Dim a As Integer
Dim p1, p2 As Integer
Dim MyItem As String
Dim nLab As Integer

Select Case Prov
Case "AV"
p1 = 1
p2 = 50
Case "BN"
p1 = 51
p2 = 72
Case "CE"
p1 = 73
p2 = 122
Case "NA"
p1 = 123
p2 = 186
Case "SA"
p1 = 187
p2 = 276
End Select

nLab = p2 - p1 + 1

If MsgBox("Questa scelta stamperà " & nLab & " etichette." & vbCr & "Confermi la scelta ?", vbQuestion + vbYesNo, "Attenzione. Richiesta di stampa di allestimento") = vbYes Then

For a = p1 To p2
LabText = Cells.Range("K" & a).Value
Worksheets("label").Range("A3").Value = LabText
ThisWorkbook.Sheets("label").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
''MsgBox "Stampo " & LabText
ThisWorkbook.Sheets("av").Select
Cells.Range("A1").Select
Next

End If

End Sub


prova a modifcarla com segue:



Private Sub cmdPrintALL_Click()
Dim a As Integer
Dim p1, p2 As Integer
Dim MyItem As String
Dim nLab As Integer
Dim x as long

Select Case Prov
Case "AV"
p1 = 1
p2 = 50
Case "BN"
p1 = 51
p2 = 72
Case "CE"
p1 = 73
p2 = 122
Case "NA"
p1 = 123
p2 = 186
Case "SA"
p1 = 187
p2 = 276
End Select

nLab = p2 - p1 + 1

If MsgBox("Questa scelta stamperà " & nLab & " etichette." & vbCr & "Confermi la scelta ?", vbQuestion + vbYesNo, "Attenzione. Richiesta di stampa di allestimento") = vbYes Then

For a = p1 To p2
LabText = Cells.Range("K" & a).Value
Worksheets("label").Range("A3").Value = LabText
ThisWorkbook.Sheets("label").Select

'--------------parte modificata
x = InputBox("numero copie?", "immetti numero copie")
ActiveWindow.SelectedSheets.PrintOut Copies:=x, Collate:=True
'----------------------------------------------

''MsgBox "Stampo " & LabText
ThisWorkbook.Sheets("av").Select
Cells.Range("A1").Select
Next

End If

End Sub

saluti
Giap

sly000
Inviato: Wednesday, December 11, 2013 8:49:17 PM
Rank: Member

Iscritto dal : 12/11/2013
Posts: 13
In questo punto mi da un errore...
Errore compilazione valore non definito....

Private Sub cmdPrintOne_Click()

Worksheets("label").Range("A3").Value = LabText
ThisWorkbook.Sheets("label").Select

ActiveWindow.SelectedSheets.PrintOut Copies:=x, Collate:=True

ThisWorkbook.Sheets("av").Select
Cells.Range("A1").Select

End Sub
a10n11
Inviato: Wednesday, December 11, 2013 11:26:05 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
sly000 ha scritto:
In questo punto mi da un errore...
Errore compilazione valore non definito....

Private Sub cmdPrintOne_Click()

Worksheets("label").Range("A3").Value = LabText
ThisWorkbook.Sheets("label").Select

ActiveWindow.SelectedSheets.PrintOut Copies:=x, Collate:=True

ThisWorkbook.Sheets("av").Select
Cells.Range("A1").Select

End Sub


salve
l'errore dipende dal fatto che con Option explicit tutte le variabili devono essere dichiarate, pertanto in tutte le macro
che devi modificare devi dichiarare la variabile X
Dim x as long

saluti
Giap

sly000
Inviato: Thursday, December 12, 2013 5:51:22 AM
Rank: Member

Iscritto dal : 12/11/2013
Posts: 13
ok perfetto..!!!ho fatto come mi ha detto....adesso l'errore è cambiato mi dice errore : runtime 1004 immettere un numero tra 1 e 32767....
a10n11
Inviato: Thursday, December 12, 2013 10:15:57 AM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
sly000 ha scritto:
ok perfetto..!!!ho fatto come mi ha detto....adesso l'errore è cambiato mi dice errore : runtime 1004 immettere un numero tra 1 e 32767....

salve
l'errore indica che il valore che assegni alla variabile di tipo long non è un valore numerico.
per capire dovresti mostare tutto il codice della macro.
saluti
Giap

sly000
Inviato: Thursday, December 12, 2013 4:11:43 PM
Rank: Member

Iscritto dal : 12/11/2013
Posts: 13
scusa ma non sono praticissimo...non ho capito bene l'errore....
a10n11
Inviato: Thursday, December 12, 2013 5:13:00 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
sly000 ha scritto:
scusa ma non sono praticissimo...non ho capito bene l'errore....

salve
per capire il problema, ho bisogno di vedere tutto il codice della macro, altrimenti si va solo per tentativi.
saluti
Giap

sly000
Inviato: Thursday, December 12, 2013 6:10:34 PM
Rank: Member

Iscritto dal : 12/11/2013
Posts: 13
ciao
vorrei allegartela ma come faccio?
a10n11
Inviato: Thursday, December 12, 2013 6:47:07 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
sly000 ha scritto:
ciao
vorrei allegartela ma come faccio?


con un semplice copia/incolla
saluti
Giap

sly000
Inviato: Friday, December 13, 2013 10:51:16 AM
Rank: Member

Iscritto dal : 12/11/2013
Posts: 13
Ciao
Questa e quella con la variabile x (come mi hai detto...)

Option Explicit
Dim LabText As String
Dim nElem As Integer
Dim Prov As String
Dim x As Long





Private Sub cmdAV_Click()
Dim a As Integer
Dim MyItem As String
Dim x As Long

lst1.Clear

For a = 1 To 50
MyItem = Cells.Range("K" & a).Value
lst1.AddItem MyItem
Next a
lst1.AddItem " "

cmdPrintOne.Caption = "Seleziona un elemento dalla lista"
cmdPrintALL.Caption = "Allestimento completo AVELLINO"
Prov = "AV"

nElem = 50
End Sub

Private Sub cmdPrintALL_Click()
Dim a As Integer
Dim p1, p2 As Integer
Dim MyItem As String
Dim nLab As Integer
Dim x As Long

Select Case Prov
Case "AV"
p1 = 1
p2 = 50
Case "BN"
p1 = 51
p2 = 72
Case "CE"
p1 = 73
p2 = 122
Case "NA"
p1 = 123
p2 = 186
Case "SA"
p1 = 187
p2 = 276
End Select

nLab = p2 - p1 + 1

If MsgBox("Questa scelta stamperà " & nLab & " etichette." & vbCr & "Confermi la scelta ?", vbQuestion + vbYesNo, "Attenzione. Richiesta di stampa di allestimento") = vbYes Then

For a = p1 To p2
LabText = Cells.Range("K" & a).Value
Worksheets("label").Range("A3").Value = LabText
ThisWorkbook.Sheets("label").Select
x = InputBox("Numero Copie?", "Immetti Numero Copie")
ActiveWindow.SelectedSheets.PrintOut Copies:=x, Collate:=True
''MsgBox "Stampo " & LabText
ThisWorkbook.Sheets("av").Select
Cells.Range("A1").Select
Next

End If

End Sub

Private Sub cmdPrintOne_Click()

Worksheets("label").Range("A3").Value = LabText
ThisWorkbook.Sheets("label").Select

ActiveWindow.SelectedSheets.PrintOut Copies:=x, Collate:=True

ThisWorkbook.Sheets("av").Select
Cells.Range("A1").Select

End Sub


Private Sub cmdProvBN_Click()
Dim a As Integer
Dim MyItem As String
Dim x As Long

lst1.Clear
For a = 51 To 72
MyItem = Cells.Range("K" & a).Value
lst1.AddItem MyItem
Next a
lst1.AddItem " "
cmdPrintOne.Caption = "Seleziona un elemento dalla lista"
cmdPrintALL.Caption = "Allestimento completo BENEVENTO"
Prov = "BN"
End Sub

Private Sub cmdProvCE_Click()
Dim a As Integer
Dim MyItem As String
Dim x As Long

lst1.Clear
For a = 73 To 122
MyItem = Cells.Range("K" & a).Value
lst1.AddItem MyItem
Next a
lst1.AddItem " "
cmdPrintOne.Caption = "Seleziona un elemento dalla lista"
cmdPrintALL.Caption = "Allestimento completo CASERTA"
Prov = "CE"
End Sub

Private Sub cmdProvNA_Click()
Dim a As Integer
Dim MyItem As String
Dim x As Long

lst1.Clear
For a = 123 To 186
MyItem = Cells.Range("K" & a).Value
lst1.AddItem MyItem
Next a
lst1.AddItem " "
cmdPrintOne.Caption = "Seleziona un elemento dalla lista"
cmdPrintALL.Caption = "Allestimento completo NAPOLI"
Prov = "NA"
End Sub

Private Sub cmdProvSA_Click()
Dim a As Integer
Dim MyItem As String
Dim x As Long

lst1.Clear
For a = 187 To 276
MyItem = Cells.Range("K" & a).Value
lst1.AddItem MyItem
Next a
lst1.AddItem " "
cmdPrintOne.Caption = "Seleziona un elemento dalla lista"
cmdPrintALL.Caption = "Allestimento completo SALERNO"
Prov = "SA"
End Sub

Private Sub lst1_Click()
cmdPrintOne.Caption = "Stampa " & lst1.Text
LabText = lst1.Text

End Sub
a10n11
Inviato: Friday, December 13, 2013 5:30:39 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
non vedo problemi particolari.
quando ti appare l'errore, cliccando sul pulsante "debug" quale riga risulta evidenziata in giallo?
saluti
Giap

sly000
Inviato: Friday, December 13, 2013 5:41:02 PM
Rank: Member

Iscritto dal : 12/11/2013
Posts: 13
CIAO...

Private Sub cmdPrintOne_Click()

Worksheets("label").Range("A3").Value = LabText
ThisWorkbook.Sheets("label").Select

----> ActiveWindow.SelectedSheets.PrintOut Copies:=x, Collate:=True

ThisWorkbook.Sheets("av").Select
Cells.Range("A1").Select
a10n11
Inviato: Friday, December 13, 2013 7:28:24 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
sly000 ha scritto:
CIAO...

Private Sub cmdPrintOne_Click()

Worksheets("label").Range("A3").Value = LabText
ThisWorkbook.Sheets("label").Select

----> ActiveWindow.SelectedSheets.PrintOut Copies:=x, Collate:=True

ThisWorkbook.Sheets("av").Select
Cells.Range("A1").Select



salve
ti da' si l'errore, in questa routine non hai inizializzato la variabile X.

devi aggiungere la riga che valorizza la variabile

x = InputBox("Numero Copie?", "Immetti Numero Copie")

saluti
Giap


sly000
Inviato: Friday, December 13, 2013 7:30:42 PM
Rank: Member

Iscritto dal : 12/11/2013
Posts: 13
Ciao
dove la vado ad inserire?
a10n11
Inviato: Saturday, December 14, 2013 9:45:03 AM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
sly000 ha scritto:
Ciao
dove la vado ad inserire?


salve

Private Sub cmdPrintOne_Click()
Dim x As Long

Worksheets("label").Range("A3").Value = LabText
ThisWorkbook.Sheets("label").Select
x = InputBox("Numero Copie?", "Immetti Numero Copie")
ActiveWindow.SelectedSheets.PrintOut Copies:=x, Collate:=True

ThisWorkbook.Sheets("av").Select
Cells.Range("A1").Select

End Sub

saluti
Giap

sly000
Inviato: Saturday, December 14, 2013 10:43:02 AM
Rank: Member

Iscritto dal : 12/11/2013
Posts: 13
Ciao!!!
Sembra che funzioni....!!!! :-) Non posso provarlo perchè non sono a lavoro..poi ti faccio sapere...!!! Ho comprato una guida sul VBA Excel adesso provo a sbizzarrirmi...!!!!
Ti ringrazio tantissimo senza di te non sapevo proprio come fare....!!!!!
Grazie Ancora
A presto!!!!!!
Utenti presenti in questo topic
Guest


Salta al Forum
Aggiunta nuovi Topic disabilitata in questo forum.
Risposte disabilitate in questo forum.
Eliminazione tuoi Post disabilitata in questo forum.
Modifica dei tuoi post disabilitata in questo forum.
Creazione Sondaggi disabilitata in questo forum.
Voto ai sondaggi disabilitato in questo forum.

Main Forum RSS : RSS

Aiutamici Theme
Powered by Yet Another Forum.net versione 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.