Formattazione selezione

Storico discussioni

Formattare di Roberto
Ciao ragazzi
non è da molto tempo che mi cimento con il vba, e per questo sono quì a chiedere informazioni.
il sito è eccezzionale, sarei perso senza di voi.
comunque veniamo ai fatti:
dalla rete ho copiato una serie di dati che ho poi incollato su un foglio excel range("f2:g30"), al momento di fare la media dei valori mi sono trovato difronte ad un errore.
le celle sono tutte formattate in formato testo, cercando di cambiare formato non succede nulla i valori rimangono sempre sul lato sinistro.
e' possibile con il vba rimediare portando tutti i valori in formato numero e sul lato destro???

ciao a tutti e grazie per le eventuali risposte.

mandi roberto

di Big ronnie
Se sono numeri interi fai così
range("f2:g30").select
selection.numberformat = "0"
se ci sono dei decimali devi inserire uno zero per ogni cifra decimale dopo lo zero fra apici
range("f2:g30").select
selection.numberformat = "0,000"
spero ti funzioni.ciao

di Roberto
Ciao big ronnie
ho provato anch'io quel sistema, il risultato però è che se vai vai a controllare con formato celle, il formato è numero, ma sulla cella il valore rimane sempre a sinistra, e se per ipotesi sulla cella f32 immetto la formula =media(f2:f30) mi dà errore.

grazie di tutto e spero di essermi spiegato.

mandi roberto

di Apoben64
Ciao roberto, al di fuori del formato che desideri avere , devi inteargire con il formato cella , allineamento a destra.
ti allungo il codice . un saluto luca

 
Sub Macro1()
'
' Macro1 Macro
' Macro registrata il 13/04/2006 da LUCA
'

'
    Range("F2:G30").Select
    With Selection
        .HorizontalAlignment = xlRight
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
End Sub

di Roberto
Ciao luca
sei sempre molto gentile a rispondere, forse mi sono spiegato male, nel range("f2:g30") ho dei valori numerici copiati da internet, ora questi si dispongono nelle celle come formato testo, allineati a sinistra con il triangolino di errore per ogni cella.
se ora su f31 vado a mettere la formula =media(f2:f30) il risultato è #div/0!

di Apoben64
Roberto, utilizzando la prima macro ho risposto alla richiesta dell'allineamento a sx.
prova questa macro (inserita tutta in un modulo) che invece converte il tuo range in valore numerico , utilizzando una funzione pubblica che si richiama in tutto il progetto ed una privata applicata al tuo range .
 
Sub converti()
    Dim rng As Range
    Dim c As Range


    With ActiveSheet

        Set rng = .Range("F2:30")
            For Each c In rng
                c.Value = EstraeNumeri(c.Value)
            Next
        Set rng = Nothing


     End With


End Sub
Public Function EstraeNumeri(SS As String) As Long


    Dim i As Integer


    For i = 1 To Len(SS)
        If IsNumeric(Mid(SS, i, 1)) Then
            EstraeNumeri = EstraeNumeri & Mid(SS, i, 1)
        End If
    Next


End Function




di Apoben64
Dimenticavo che ovviamente devi inserire la tua formula.

di Big ronnie
Cercando sulla guida in linea di excel ho trovato che x convertire i numeri in formato testo in numeri si deve moltiplicare il numerotesto x 1(uno numero).quindi con il registratore di macro ho fatto questa semplice macro.ciao ;-d
 
Sub ConvertiTestoNumeri()
'assegno il valore uno all'ultima cella in modo da non interferire con altri dati.
    Range("a65536") = 1 ' Uno è un numero e non Testo
    Range("a65536").Select
    Selection.Copy
    Range("F2:G30").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply
    Range("a65536").Clear 'Pulisco l'ultima cella
End Sub

di Roberto
Ragazzi siete mitici .
con la routin di apoben64 tutto fila liscio. e' da poco che mi sono avvicinato al vba, e per me ogni giorno è una conquista, sono autodidatta, e cerco di adattare al vba quello che mi ricordo del vecchio sinclair zx spectrum. purtroppo la mia mente non è piu elastica e devo accontentarmi.
grazie anche a big ronnie sempre veloce nel rispondere, cercherò per quanto posso anch'io di aiutare. tanti auguri di buona pasqua a tutti.
mandi roberto.

Cognolato Studio © 2005