Formato celle



  • Formato celle
    di Maxxim (utente non iscritto) data: 27/01/2010

    Ciao a tutti e ben ritrovati.

    ho in mano il codice postato sotto,
    per la gestione di un piccolo database in excel.
    la registrazione avviene in automatico cioè
    va a cercare lo spazio libero e inserisce il dato
    presente nelle tex 2,3 e 4, in colonna a,b, c di excel.
    nelle colonne dove vanno a finire questi dati
    ho provato ad impostare sia il formato
    contabilità che numero con separatore,
    però quando inserisco i dati li visualizzo
    così 1000 anzichè 1.000,00
    come posso inserire tale formato a queste tex.
    in pratica questa istruzione come e dove la posso mettere?

    numberformat = "#,##0.00"

    grazie 10000000000000


    maxxim
     
    Dim irisposta As Integer
    irisposta = MsgBox("Confermi la registrazione del Versamento di €" _
    & "  " & TextBox3.Value & " ?", vbYesNo)
    If irisposta = vbYes Then
    '
    Range("b1").Value = "-"
    Range("b1").End(xlDown).Offset(1, 0).Select
    ActiveCell.Value = TextBox2
    ActiveCell.Offset(0, 1).Value = TextBox3
    ActiveCell.Offset(0, 3).Value = TextBox4
    MsgBox "Ok Capo, eseguito!"
    TextBox2 = ""
    TextBox3 = ""
    TextBox4 = ""
    End If
    End Sub



  • di Enzo (utente non iscritto) data: 27/01/2010

    L'istruzione qui sotto inserisce in a1 il valore che a sua volta inserisci in una textbox (nell'esempio textbox1" con il formato "#,##0.00"
    prova
     
    Range("A1") = Format(TextBox1, "#,##0.00")
    



  • di Enzo (utente non iscritto) data: 27/01/2010

    Anzi per essere precisi nel tuo caso

     
    
    ActiveCell.Offset(0, 1).Select
    ActiveCell.NumberFormat = "#,##0.00"
    ActiveCell.FormulaLocal = TextBox3.Value
    ActiveCell.Offset(0, 3).Select
    ActiveCell.NumberFormat = "#,##0.00"
    ActiveCell.FormulaLocal = TextBox4.Value



  • di Maxxim (utente non iscritto) data: 27/01/2010

    Ciao

    fatto come detto tu, mi sposta i dati di una colonna
    nella tex 4.

    modificato come postato sotto tutto ok.

    puoi dirmi se ho fatto bene, i dati adesso mi vengono
    scritti come volevo cioè 1.000,00 anzichè 1000.

    grazie 10000000000000 e come dico sempre
    a buon rendere.

    ciao
    maxxim
     
    Private Sub Inserisci_Click()
    If TextBox2 = "" Then
    MsgBox "Devi Inserire l'importo del Prelievo"
    TextBox2.SetFocus
    Else
    
    If Mid(TextBox2, 3, 1) <> "/" Or Mid(TextBox2, 6, 1) <> "/" Then
          MsgBox "Prima di Chiudere Devi: Scrivere la Data del prelievo come: 00/00/00", 0 + 16, "ATTENZIONE:"
          O_F_PREL.TextBox2.SetFocus
          Else
    If IsNumeric(TextBox3) = False Then
          MsgBox "Prima di Chiudere Devi: Inserire l'importo del Prelievo", 0 + 16, "ATTENZIONE:"
          O_F_PREL.TextBox3.SetFocus
          Else
    Dim irisposta As Integer
    irisposta = MsgBox("Confermi la registrazione del Prelievo di €" _
    & "  " & TextBox3.Value & " ?", vbYesNo)
    If irisposta = vbYes Then
    '
    Range("C6").Value = "-"
    Range("C6").End(xlDown).Offset(1, 0).Select
    ActiveCell.Value = TextBox2
    ActiveCell.Offset(0, 1).Select
    ActiveCell.NumberFormat = "#,##0.00"
    ActiveCell.FormulaLocal = TextBox3.Value
    ActiveCell.Offset(0, 1).Value = TextBox4
    MsgBox "Ok Capo, eseguito!"
    TextBox2 = ""
    TextBox3 = ""
    TextBox4 = ""
    End If
    End If
    End If
    End If
    End Sub



  • di Maxxim (utente non iscritto) data: 28/01/2010

    Scusa un'altra cosina

    ma se oltre a mettere il numero come mi hai postato
    volessi metterlo negativo in automatico senza
    scriverlo direttamente nella tex?

    cioè

    scrivo 1000 nella tex
    nel foglio excel mi appare così 1.000,00

    e per metterlo -1.000,00????

    grazie ancora 100000000000

    maxxim






  • di Enzo (utente non iscritto) data: 28/01/2010

    Sei solo tu il giudice di te stesso quindi formalmente la tua istruzione sembra giusta e di conseguenza se ottieni quello che ti serve .....
    per il numero negativo in positivo moltiplica il valore della textbox per (-1) ma attenzione che se il valore che inserisci a sua volta e' negativo verra' scritto in positivo.
    ho visto che hai utilizzato le funzioni mid all'inizio e potrebbe essere un aiuto per la trascrizione del tuo numero negativo
    ossia potresti dire alla tua macro ""prima di scrivere il valore della textbox estrai il primo carattere, se e' un "-" scrivi il valore della textbox altrimenti moltiplica il valore della textbox per -1 e e poi scrivi
    bye




  • di Enzo (utente non iscritto) data: 28/01/2010

    Mi sono accorto nella seconda riga di aver scritto "....per il numero negativo in positivo" e' solo un errore di scrittura, intendevo dire "....per il numero positivo in negativo"



  • di Enzo (utente non iscritto) data: 28/01/2010

    Cosi' mi devi due pizze
    scherzi a parte ho visto che nella tua istruzione utilizzi un controllo sul formato della textbox2 (che suppongo debba contenere una data)
    inserisci nell'evento change della textbox2 l'istruzione qui sotto
    vedrai che nel momento in qui vai a scrivere la data le "/" le inserisce lui


     
    On Error Resume Next
    X = Len(TextBox2)
    Y = LTrim(TextBox2.Text)
    D = TextBox2
    If D = "" Then
    Exit Sub
    End If
    If Left(D, 2) > 31 Then
    MsgBox "GIORNO ERRATO", vbCritical, "DATA"
    TextBox2.SelStart = 0
    TextBox2.SelLength = Len(TextBox2)
    TextBox2.SetFocus
    Exit Sub
    End If
    If X = 2 Then TextBox2 = Y & "/"
    If X = 4 Then Exit Sub
    If Mid(D, 4, 2) = "" Then Exit Sub
    If Mid(D, 4, 2) > 12 Then
    MsgBox "MESE ERRATO", vbCritical, "DATA"
    TextBox2.SelStart = 3
    TextBox2.SelLength = Len(TextBox2)
    TextBox2.SetFocus
    Exit Sub
    End If
    E = Left(D, 2)
    f = Mid(D, 4, 2)
    Select Case f
    Case "02"
    If E > 29 Then GoTo mess
    Case "04", "06", "09", "11"
    If E > 30 Then GoTo mess
    End Select
    If X = 5 Then
    TextBox2 = Y & "/"
    Exit Sub
    End If
    If X = 6 Then Exit Sub
    If X = 7 Then Exit Sub
    If X = 8 Then Exit Sub
    If X = 9 Then Exit Sub
    G = Mid(D, 7, 4)
    If G <= 1899 Or G >= 2101 Then
    MsgBox "L'anno deve essere tra il 1900 ed il 2100", vbCritical, "DATA"
    TextBox2.SelStart = 6
    TextBox2.SelLength = Len(TextBox2)
    TextBox2.SetFocus
    Exit Sub
    End If
    If IsDate(TextBox2) = False Then
    MsgBox "La data non è valida - Controllare mese, giorno e anno", vbCritical, "DATA"
    TextBox2.SelStart = 0
    TextBox2.SelLength = Len(TextBox2)
    TextBox2.SetFocus
    Exit Sub
    End If
    'QUI PUOI UNA VOLTA CHE HAI SCRITTO LA DATA
    'PASSARE IL COMANDO AD UN ALTRO TASTO
    'DEVI SOSTITUIRE AL POSTO DI EXIT SUB
    ' UN ALTRO COMANDO
    If X = 10 Then
    Exit Sub
    End If
    Exit Sub
    mess:
    MsgBox "GIORNO ERRATO", vbCritical, "DATA"
    TextBox2.SelStart = 0
    TextBox2.SelLength = Len(TextBox2)
    TextBox2.SetFocus
    Set X = Nothing
    Set Y = Nothing
    Set D = Nothing
    Set E = Nothing
    Set f = Nothing
    Set G = Nothing
    Resume



  • di Maxxim (utente non iscritto) data: 28/01/2010

    Posso arrivare anche a tre pizze

    ho provata la tua istruzione

    troppo forte!!!!!!!!!!!!!!!!

    grazie 100000000000

    però quando scrivo 01 mette e lui in automatico mette "/",
    quindi sono a 01/, e voglio tornare indietro
    per cancellare, perchè ho digitato male il giorno,
    non mi fa tornare indietro.

    ormai che ci sei fai 31.

    provo a vedere come posso modificare.

    dopo ti posto anche il mio listato per mettere
    il numero in negativo.



    ciao e ancora grazie 1000000000000 come sempre.

    maxxim





  • di Enzo (utente non iscritto) data: 28/01/2010

    Devi evidenziare con il mouse e premere canc
    quindi riscrivi



  • di Maxxim (utente non iscritto) data: 28/01/2010

    Ciao

    per velocizzare la modifica ho messo un pulsante
    di reset della text.

    per mettere negativo il numero ho messo
    semplicemente un meno davanti activecell.numberformat = "-#,##0.00"
    sembra funzionare.
    cosa ne pensi??.


    la funzione postata della data è troppo forte.

    hai proprio ragione ti devo 2 pizze.

    ciao
    maxxim


     
    ActiveCell.Offset(0, 1).Select
    ActiveCell.NumberFormat = "#,##0.00"
    ActiveCell.FormulaLocal = TextBox3.Value
    ActiveCell.Offset(0, 3).Select
    ActiveCell.NumberFormat = "-#,##0.00"
    ActiveCell.FormulaLocal = TextBox4.Value



  • di Enzo (utente non iscritto) data: 29/01/2010

    Un consiglio, invece di avere pulsanti e pulsantini prova a sfruttare al meglio gli eventi (di una textbox etc)
    se nella textbox nell'evento "enter" inserisci
    ------------------
    textbox1.value = ""
    -------------------
    nel momento in cui ci clicchi sopra azzera il suo contenuto
    bye



  • di Maxxim (utente non iscritto) data: 29/01/2010

    Perfect grazie del consiglio,

    ma per il numero negativo può andare bene come postato,
    oppure crea problemi per fare calcoli con excel dopo.

    ciao e grazie 10000000000000




  • di Enzo (utente non iscritto) data: 29/01/2010

    Se il valore che ottieni e' negativo (come ti eri ripromesso) va bene
    dipende cosa intendi per ""calcoli successivi""



  • di Maxxim (utente non iscritto) data: 29/01/2010

    Ciao

    mi sono accorto che continuando a fare il mio programmino
    mi succede una cosa strana, praticamente, dopo
    aver messo il dato negativo, e mettiamo che
    dopo cancello il dato, provo anche con cancella
    contenuto, mi riappare sempre il numero negativo.

    cosa strana.

    e' forse il formato dato dalla tex che non mi
    fa più modificare il dato in positivo?

    poi continuando mi spariscono anche le formule
    dalle celle che prendono questo dato.

    forse è meglio moltiplicare il numero *-1.



    grazie ciao.
    maxxim




  • di Enzo (utente non iscritto) data: 29/01/2010

    No e' come se avessi messo la formattazione della cella in negativo non il contenuto che vai ad inserire
    e' per questo che ti avevo detto che bisognava vedere cosa avresti dovuto fare della tua istruzione




  • di Maxxim (utente non iscritto) data: 29/01/2010

    Immaginavo troppo semplice...


    ma in caso per errore metto questa formattazione
    e poi la volessi togliere devo cancellare la colonna per forza?

    ho postato nel forum di excel un quesito per non fare una
    macro con la data che
    mi crea lo stesso problema.

    volevo sapere come fare giusto per curiosità,
    così se devo togliere tale formato sono informato.


    ciao e grazie ancora 1000000