Condividi tramite

Formato % da UserForm

Anonimo
2015-11-21T17:26:39+00:00

Buona sera,

ho bisogno del vostro aiuto, se possibile, per un problema su una userform.

Praticamente inserisco dei dati in un foglio di excel tra i quali un dato percentuale ed il mio codice molto semplice dice:

Worksheets("CALCOLO").Range("H5") = TextBox16.Text / 100

il problema è che quando manca il dato mi va in errore perchè forse tenta di dividere per 100.

Come posso dire "se è pieno ok altrimenti niente". Capite subito che non so niente di VBA!

Grazie a quanti vorranno aiutarmi

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

4 risposte

Ordina per: Più utili
  1. Anonimo
    2015-11-24T18:29:57+00:00

    Buonasera,

    dopo un pò di aggiusti sono riuscito a far funzionare il codice postato e grazie a voi ho imparato un'altra possibilità. Ma siccome non mi accontento mai ho tentato di adeguare lo stesso codice tentando di inserire delle date ma ......... niente da fare.

    Sono veramente obbligato grazie ancora.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-11-21T21:14:22+00:00

    Ciao Vito,

    La tua domanda non è molto chiara, ma per aggiornare, ad esempio, le celle dell'intervallo A1,C2,F5,H6 con il contenuto di 4 TextBox, prova qualcosa del genere:

    '=========>>

    Option Explicit

    '--------->>

    Private Sub CommandButton1_Click()

        Dim WB As Workbook

        Dim SH As Worksheet

        Dim destRng As Range, rCell As Range

        Dim arrCelle As Variant

        Dim Ctrl As MSForms.Control

        Dim dVal As Double

        Dim iCtr As Long

        Const sIntervallo As String = "A1,C2,F5,H6"           '<<=== Modifica

        Set WB = ThisWorkbook

        Set SH = WB.Sheets("Calcolo")

        Set destRng = SH.Range(sIntervallo)

        With destRng

         .ClearContents

         .NumberFormat = "0.00%"

        End With

        arrCelle = Split(sIntervallo, ",")

        For Each Ctrl In Me.Controls

            If TypeName(Ctrl) = "TextBox" Then

                Set rCell = SH.Range(arrCelle(iCtr))

                With Ctrl

                    If IsNumeric(.Value) Then

                        dVal = CDbl(.Text / 100)

                        rCell.Value = dVal

                    End If

                End With

                iCtr = iCtr + 1

            End If

        Next Ctrl

    End Sub

    '--------->>

    Private Sub CommandButton2_Click()

        Unload Me

    End Sub

    '<<=========

    Potresti scaricare il mio file di prova Vito20151124.xlsm a:

                               **http://1drv.ms/1XhmVBy**

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-11-21T19:38:40+00:00

    Grazie,

    per una TextBox sola funziona, chiedo troppo se Vi chiedo come fare per più TextBox? E' possibile assegnare alla routine un range di celle?

    Grazie di cuore

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-11-21T18:01:18+00:00

    Ciao Vito,

    Prova qualcosa del genere:

    '=========>>

    Option Explicit

    '--------->>

    Private Sub CommandButton1_Click()

        Dim dVal As Double

        With Me.TextBox16

            If IsNumeric(.Value) Then

                dVal = CDbl(.Text / 100)

                With ThisWorkbook.Worksheets("CALCOLO").Range("H5")

                    .Value = dVal

                    .NumberFormat = "0.00%"

                End With

            End If

        End With

    End Sub

    '<<=========

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento