|
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
|
|
|
|
|
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
|
|
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
|
|
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 modificatax = 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
|
|
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
|
|
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
|
|
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....
|
|
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
|
|
Rank: Member
Iscritto dal : 12/11/2013 Posts: 13
|
scusa ma non sono praticissimo...non ho capito bene l'errore....
|
|
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
|
|
Rank: Member
Iscritto dal : 12/11/2013 Posts: 13
|
ciao vorrei allegartela ma come faccio?
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
Rank: Member
Iscritto dal : 12/11/2013 Posts: 13
|
Ciao dove la vado ad inserire?
|
|
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
|
|
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!!!!!!
|
|
Guest |