Una suite completa di strumenti di produttività e servizi cloud che migliorano la collaborazione, la comunicazione e l'efficienza. Combinazione di app Office classiche con funzionalità avanzate di Microsoft 365, supporta sia le esigenze personali che aziendali
Buongiorno a tutti, nel file allegato ho messo le spiegazioni di come mi abbisognerebbe.
Piccolo riassunto:
In una cella ho l' intero ammontare di una fattura, tale importo vorrei che si riportasse nelle celle previste per la cedola di versamento ma searando le cifre e se fosse il caso che le celle precedenti alle cifre fossero vuote, si mettesse il segno "#".
Naturalmente il tutto con VBA o in maniera automatica per non riportare sempre le cifre "a mano".
https://skydrive.live.com/#cid=09759C744DA4D812&id=9759C744DA4D812!103
ringrazio anticipatamente
Oltre alla risposta di Maurizio, vedi questa(ci ho lavorato un po' e quindo la posto... ;-)):
Public Sub m()
Dim sInt As String
Dim sDec As String
Dim s As String
Dim lVirgola As Long
Dim lng As Long
Dim sh As Worksheet
Set sh = ThisWorkbook.Worksheets("Foglio1")
With sh
s = .Range("P20").Value
lVirgola = InStr(s, ",")
For lng = 1 To lVirgola
If IsNumeric(Mid(s, lng, 1)) Then
sInt = sInt & Mid(s, lng, 1)
End If
Next
For lng = lVirgola + 1 To Len(s)
If IsNumeric(Mid(s, lng, 1)) Then
sDec = sDec & Mid(s, lng, 1)
End If
Next
.Range("B48:I48, N48:U48").Value = "#"
.Range("K48:L48,V48:X48").Value = ""
sInt = Format(sInt, "00000000")
For lng = 1 To Len(sInt)
If Mid(sInt, lng, 1) <> "0" Then
.Cells(48, lng + 1).Value = Mid(sInt, lng, 1)
.Cells(48, lng + 13).Value = Mid(sInt, lng, 1)
End If
Next
sDec = Format(sDec, "00")
For lng = 1 To Len(sDec)
.Cells(48, lng + 10).Value = Mid(sDec, lng, 1)
.Cells(48, lng + 22).Value = Mid(sDec, lng, 1)
Next
End With
Set sh = Nothing
End Sub