Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR ha finalmente lanciato il suo nuovo flagship: Magic 8 Pro. Lo abbiamo provato a fondo in queste settimane e ve lo raccontiamo nella nostra recensione completa. HONOR rimane fedele alle linee della versione precedente, aggiungendo però un nuovo tasto dedicato all'AI. Ma è al suo interno che c'è la vera rivoluzione grazie al nuovo Snapdragon 8 Elite Gen 5 e alla nuova MagicOS 10
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Le webcam Insta360 Link 2 Pro e Link 2C Pro sono una proposta di fascia alta per chi cerca qualità 4K e tracciamento automatico del soggetto senza ricorrere a configurazioni complesse. Entrambi i modelli condividono sensore, ottiche e funzionalità audio avanzate, differenziandosi per il sistema di tracciamento: gimbal a due assi sul modello Link 2 Pro, soluzione digitale sul 2C Pro
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70 porta il concetto di smartphone ultrasottile su un terreno più concreto e accessibile: abbina uno spessore sotto i 6 mm a una batteria di capacità relativamente elevata, un display pOLED da 6,7 pollici e un comparto fotografico triplo da 50 MP. Non punta ai record di potenza, ma si configura come alternativa più pragmatica rispetto ai modelli sottili più costosi di Samsung e Apple
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-07-2009, 12:14   #1
diabolik1981
Bannato
 
L'Avatar di diabolik1981
 
Iscritto dal: Jun 2005
Città: l'unica che per avere un santo patrono è andata a rubarlo altrove...
Messaggi: 9998
[VBA] UserForm/CommandButton in una macro

Non so se è la sezione giusta (forse Programmi?), però si tratta di una cosa che riguarda prettamente la programmazione piuttosto che Excel vero e proprio. Ad ogni modo vi espongo il problema.

Sono abbastanza niubbo di programmazione, ma per necessità sto preparando un lavoro in excel in cui si fa abbondante uso di macro elaborate ed ora mi ritrovo a combattere con gli UserForm e di preciso con i Command Button.

Ho la necessità di far apparire ad una certa fase dell'esecuzione di una macro uno UserForm con 2 pulsanti, uno dei quali mi deve far proseguire l'esecuzione della macro da un certo punto (Lab100), mentre il secondo interrompe tutto. Ebbene il problema è far funzionare il primo pulsante di modo che la macro prosegua dal punto richiesto.

Vi posto la parte incriminata della macro

Quote:
Sub QuotaAcqua()


Dim CausOperaz As String
Dim AnaInterno() As String
Dim AnaNomeCondomino() As String
Dim AnaImportoEntrate() As Single
Dim Indice As Integer
Dim IndiceAnag As Integer
Dim IndiceMovim As Integer
Dim Accoda As String
Dim NumeroCondomini As Integer
Dim CausTrim As String
Dim Periodo As String


Sheets("Mov.Boll").Select


If IsEmpty(Cells(2, 1)) Then GoTo Lab050
'Accoda = InputBox(Prompt:="File movimenti Pieno, devi accodare altri movimenti?", _
Title:="Accoda Movimenti")


UserForm1.Show


'If Accoda <> "si" Then GoTo LabFine

Lab050:
CausTrim = InputBox(Prompt:="Indicare il trimestre di riferimento, 8 se è il conguaglio", _
Title:="Indicare il trimestre di riferimento, 8 se è il conguaglio")

Sheets("Q.Acqua").Select

If CausTrim <> "" Then GoTo Lab075

MsgBox "Non hai specificato alcuna causale"
Sheets("Mov.Boll").Select
GoTo LabFine



Lab075:


If CausTrim = 1 Then GoTo Lab100
If CausTrim = 2 Then GoTo Lab100
If CausTrim = 3 Then GoTo Lab100
If CausTrim = 4 Then GoTo Lab100
If CausTrim = 8 Then GoTo Lab100

MsgBox "Hai indicato un valore errato; sono consentiti i trimesti 1,2,3,4 o 8 per conguaglio"
Sheets("Mov.Boll").Select
GoTo Lab050



Lab100:
La parte in rosso era la soluzione precedente con InputBox, che sebbene funzionante era poco funzionale e comoda da usare (dover digitare si/no è peggio dell'uso dei pulsanti).

Alla pressione del pulsante Si c'è il salto a Lab100 da cui procede regolarmente la macro.

Spero di essere stato chiaro e che qualcuno mi possa dare una mano.

Ultima modifica di diabolik1981 : 03-07-2009 alle 12:17.
diabolik1981 è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2009, 13:00   #2
zuper
Senior Member
 
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
scusami forse no ho capito io...
ma che c'è di male in un banale SI NO?

qualcosa tipo

Codice:
    Accoda = MsgBox("continuo?", vbYesNo, "TITOLO")
If Accoda = vbNo Then End
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi.
L'una o l'altra inutile scandalizzarsi.[plutus]

Ultima modifica di zuper : 03-07-2009 alle 13:05.
zuper è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2009, 14:27   #3
diabolik1981
Bannato
 
L'Avatar di diabolik1981
 
Iscritto dal: Jun 2005
Città: l'unica che per avere un santo patrono è andata a rubarlo altrove...
Messaggi: 9998
Quote:
Originariamente inviato da zuper Guarda i messaggi
scusami forse no ho capito io...
ma che c'è di male in un banale SI NO?

qualcosa tipo

Codice:
    Accoda = MsgBox("continuo?", vbYesNo, "TITOLO")
If Accoda = vbNo Then End
il fatto che devi scriverlo a mano, mentre buona parte del lavoro viene svolto via mouse
diabolik1981 è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2009, 14:37   #4
zuper
Senior Member
 
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
Quote:
Originariamente inviato da diabolik1981 Guarda i messaggi
il fatto che devi scriverlo a mano, mentre buona parte del lavoro viene svolto via mouse
ma quello che ti ho postato ha i 2 pulsanti SI NO
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi.
L'una o l'altra inutile scandalizzarsi.[plutus]
zuper è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2009, 14:53   #5
diabolik1981
Bannato
 
L'Avatar di diabolik1981
 
Iscritto dal: Jun 2005
Città: l'unica che per avere un santo patrono è andata a rubarlo altrove...
Messaggi: 9998
Quote:
Originariamente inviato da zuper Guarda i messaggi
ma quello che ti ho postato ha i 2 pulsanti SI NO
ho provato ma mi da

Errore di compilazione

Previsto: parametro predefinito
diabolik1981 è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2009, 15:01   #6
zuper
Senior Member
 
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
Quote:
Originariamente inviato da diabolik1981 Guarda i messaggi
ho provato ma mi da

Errore di compilazione

Previsto: parametro predefinito
beh nn ho visto bene il tuo codice

prova invece di goto end

goto labfine
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi.
L'una o l'altra inutile scandalizzarsi.[plutus]
zuper è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2009, 15:02   #7
diabolik1981
Bannato
 
L'Avatar di diabolik1981
 
Iscritto dal: Jun 2005
Città: l'unica che per avere un santo patrono è andata a rubarlo altrove...
Messaggi: 9998
quell'errore compare non appena finisco di scriver vbYesNo, evidenziando in rosso la riga del MsgBox
diabolik1981 è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2009, 15:08   #8
zuper
Senior Member
 
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
Quote:
Originariamente inviato da diabolik1981 Guarda i messaggi
quell'errore compare non appena finisco di scriver vbYesNo, evidenziando in rosso la riga del MsgBox
nn puoi postare il foglio?
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi.
L'una o l'altra inutile scandalizzarsi.[plutus]
zuper è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2009, 15:10   #9
diabolik1981
Bannato
 
L'Avatar di diabolik1981
 
Iscritto dal: Jun 2005
Città: l'unica che per avere un santo patrono è andata a rubarlo altrove...
Messaggi: 9998
Quote:
Originariamente inviato da zuper Guarda i messaggi
nn puoi postare il foglio?
è gigantesco, però posso postare l'intera macro

Quote:
Option Explicit

' La subroutine richiamata da input Box Carica il file dei bollettini da stampare
'
Sub QuotaAcqua()


Dim CausOperaz As String
Dim AnaInterno() As String
Dim AnaNomeCondomino() As String
Dim AnaImportoEntrate() As Single
Dim Indice As Integer
Dim IndiceAnag As Integer
Dim IndiceMovim As Integer
Dim Accoda As String

Dim NumeroCondomini As Integer
Dim CausTrim As String
Dim Periodo As String


Sheets("Mov.Boll").Select


If IsEmpty(Cells(2, 1)) Then GoTo Lab050
Accoda = MsgBox(Prompt:="File movimenti Pieno, devi accodare altri movimenti?", Title:="Accoda Movimenti")




If Accoda <> "si" Then GoTo LabFine

Lab050:
CausTrim = InputBox(Prompt:="Indicare il trimestre di riferimento, 8 se è il conguaglio", _
Title:="Indicare il trimestre di riferimento, 8 se è il conguaglio")

Sheets("Q.Acqua").Select

If CausTrim <> "" Then GoTo Lab075

MsgBox "Non hai specificato alcuna causale"
Sheets("Mov.Boll").Select
GoTo LabFine



Lab075:


If CausTrim = 1 Then GoTo Lab100
If CausTrim = 2 Then GoTo Lab100
If CausTrim = 3 Then GoTo Lab100
If CausTrim = 4 Then GoTo Lab100
If CausTrim = 8 Then GoTo Lab100

MsgBox "Hai indicato un valore errato; sono consentiti i trimesti 1,2,3,4 o 8 per conguaglio"
Sheets("Mov.Boll").Select
GoTo Lab050



Lab100:


' Determino il numero dei condomini per il dimensionamento delle tabelle

Periodo = Cells(6, CausTrim + 2)
NumeroCondomini = 0
Do

NumeroCondomini = NumeroCondomini + 1
Loop Until IsEmpty(Cells(NumeroCondomini + 6, 1))

NumeroCondomini = NumeroCondomini - 1
ReDim AnaInterno(1 To NumeroCondomini) As String
ReDim AnaNomeCondomino(1 To NumeroCondomini) As String
ReDim AnaImportoEntrate(1 To NumeroCondomini) As Single

For Indice = 1 To NumeroCondomini

Sheets("Q.Acqua").Select
AnaInterno(Indice) = Cells(Indice + 6, 1)
AnaNomeCondomino(Indice) = Cells(Indice + 6, 2)
AnaImportoEntrate(Indice) = Cells(Indice + 6, CausTrim + 3)

Next

Lab200:
IndiceAnag = Indice

Sheets("Mov.Boll").Select
Indice = 0
IndiceMovim = 0

Lab250:
Do
IndiceMovim = IndiceMovim + 1
Loop Until IsEmpty(Cells(IndiceMovim, 1))

IndiceMovim = IndiceMovim - 2

Lab300:


CausOperaz = "Lettura acqua " + CausTrim + "° trimestre: " + Periodo

If CausTrim = 8 Then CausOperaz = "Conguaglio acqua"


Indice = Indice + 1
If Indice >= IndiceAnag Then GoTo LabFine
Cells(1 + Indice + IndiceMovim, 1) = AnaInterno(Indice)
Cells(1 + Indice + IndiceMovim, 4) = AnaNomeCondomino(Indice)
Cells(1 + Indice + IndiceMovim, 6) = AnaImportoEntrate(Indice)
Cells(1 + Indice + IndiceMovim, 8) = CausOperaz
GoTo Lab300

LabFine:

Cells.EntireColumn.AutoFit

End Sub




diabolik1981 è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2009, 15:12   #10
zuper
Senior Member
 
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
Codice:
Accoda = MsgBox(Prompt:="File movimenti Pieno, devi accodare altri movimenti?", Title:="Accoda Movimenti")
nn devi mettergli nessun prompt sul msgbox....non avendo appunto nessun posto dove INSERIRE qualcosa
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi.
L'una o l'altra inutile scandalizzarsi.[plutus]
zuper è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2009, 15:14   #11
zuper
Senior Member
 
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
non posso chiaramente provarlo, ma così DOVREBBE andare
Codice:
Option Explicit

' La subroutine richiamata da input Box Carica il file dei bollettini da stampare
'
Sub QuotaAcqua()


Dim CausOperaz As String
Dim AnaInterno() As String
Dim AnaNomeCondomino() As String
Dim AnaImportoEntrate() As Single
Dim Indice As Integer
Dim IndiceAnag As Integer
Dim IndiceMovim As Integer
Dim Accoda As String

Dim NumeroCondomini As Integer
Dim CausTrim As String
Dim Periodo As String


Sheets("Mov.Boll").Select


If IsEmpty(Cells(2, 1)) Then GoTo Lab050
Accoda = MsgBox("continuo?", vbYesNo, "TITOLO")
If Accoda = vbNo Then GoTo LabFine

Lab050:
CausTrim = InputBox(Prompt:="Indicare il trimestre di riferimento, 8 se è il conguaglio", _
Title:="Indicare il trimestre di riferimento, 8 se è il conguaglio")

Sheets("Q.Acqua").Select

If CausTrim <> "" Then GoTo Lab075

MsgBox "Non hai specificato alcuna causale"
Sheets("Mov.Boll").Select
GoTo LabFine



Lab075:


If CausTrim = 1 Then GoTo Lab100
If CausTrim = 2 Then GoTo Lab100
If CausTrim = 3 Then GoTo Lab100
If CausTrim = 4 Then GoTo Lab100
If CausTrim = 8 Then GoTo Lab100

MsgBox "Hai indicato un valore errato; sono consentiti i trimesti 1,2,3,4 o 8 per conguaglio"
Sheets("Mov.Boll").Select
GoTo Lab050



Lab100:


' Determino il numero dei condomini per il dimensionamento delle tabelle

Periodo = Cells(6, CausTrim + 2)
NumeroCondomini = 0
Do

NumeroCondomini = NumeroCondomini + 1
Loop Until IsEmpty(Cells(NumeroCondomini + 6, 1))

NumeroCondomini = NumeroCondomini - 1
ReDim AnaInterno(1 To NumeroCondomini) As String
ReDim AnaNomeCondomino(1 To NumeroCondomini) As String
ReDim AnaImportoEntrate(1 To NumeroCondomini) As Single

For Indice = 1 To NumeroCondomini

Sheets("Q.Acqua").Select
AnaInterno(Indice) = Cells(Indice + 6, 1)
AnaNomeCondomino(Indice) = Cells(Indice + 6, 2)
AnaImportoEntrate(Indice) = Cells(Indice + 6, CausTrim + 3)

Next

Lab200:
IndiceAnag = Indice

Sheets("Mov.Boll").Select
Indice = 0
IndiceMovim = 0

Lab250:
Do
IndiceMovim = IndiceMovim + 1
Loop Until IsEmpty(Cells(IndiceMovim, 1))

IndiceMovim = IndiceMovim - 2

Lab300:


CausOperaz = "Lettura acqua " + CausTrim + "° trimestre: " + Periodo

If CausTrim = 8 Then CausOperaz = "Conguaglio acqua"


Indice = Indice + 1
If Indice >= IndiceAnag Then GoTo LabFine
Cells(1 + Indice + IndiceMovim, 1) = AnaInterno(Indice)
Cells(1 + Indice + IndiceMovim, 4) = AnaNomeCondomino(Indice)
Cells(1 + Indice + IndiceMovim, 6) = AnaImportoEntrate(Indice)
Cells(1 + Indice + IndiceMovim, 8) = CausOperaz
GoTo Lab300

LabFine:

Cells.EntireColumn.AutoFit

End Sub
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi.
L'una o l'altra inutile scandalizzarsi.[plutus]
zuper è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2009, 15:19   #12
diabolik1981
Bannato
 
L'Avatar di diabolik1981
 
Iscritto dal: Jun 2005
Città: l'unica che per avere un santo patrono è andata a rubarlo altrove...
Messaggi: 9998
Grazie mille, ora funziona. Purtroppo non sono un programmatore, e pur amando molto l'informatica mi mancano le basi e la conoscenza del linguaggio e delle funzioni, ed ovviamente scrivere codice non è una cosa così semplice.
diabolik1981 è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2009, 15:23   #13
zuper
Senior Member
 
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
Quote:
Originariamente inviato da diabolik1981 Guarda i messaggi
Grazie mille, ora funziona. Purtroppo non sono un programmatore, e pur amando molto l'informatica mi mancano le basi e la conoscenza del linguaggio e delle funzioni, ed ovviamente scrivere codice non è una cosa così semplice.
eheheh no ti preoccupare!!
io sono partito ancora messo peggio...

e sono solo un passettino avanti!!!!

continua così e imparerai!!
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi.
L'una o l'altra inutile scandalizzarsi.[plutus]
zuper è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Le novità ASUS per il 2026 nel settore dei PC desktop Le novità ASUS per il 2026 nel settore de...
Amazon scatenata: robot aspirapolvere, s...
007 First Light, requisiti sbagliati: IO...
Il secondo leasing sociale francese ragg...
Anche Chrome diventerà un browser...
Huawei FreeClip 2 in arrivo in Italia: c...
Honda promette la roulotte del futuro, m...
Rincari non solo per gli utenti: Intel e...
Gemini può usare i tuoi dati priv...
OPPO lancia in Italia la serie Reno15: n...
Stazione Spaziale Internazionale: rientr...
Forza Horizon 6: spunta la possibile dat...
Oral-B iO: sconti pazzeschi su spazzolin...
Intel Core Ultra 200 Plus: l'azienda pro...
Thinking Machines: la startup di Mira Mu...
Coalizione di gruppi di tutela chiede a ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 14:22.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v