Newsgroup: it.comp.lang.visual-basic
Titolo: aiutino

con excel sto cercando di creare una macro che crei un file di testo in base
alle celle
il mio problema è questo: io scrivo in una cella un numero ad esempio "1" ma
sul file di testo deve scrivere
"000001" ancora meglio sarebbe se avessi questa forma scrivo "1,5" e sul
file di testo "00000150000"
mi potete aiutare?

 news:b4i2e1$loq$1...@newsreader.mailgate.org...

[...]
    Consulta la Guida in linea di Microsoft Visual Basic di Microsoft
Excel a proposito di:
        Function Format$( _
            Expression _
          , [Format] _
          , [FirstDayOfWeek As VbDayOfWeek = vbSunday] _
          , [FirstWeekOfYear As VbFirstWeekOfYear = vbFirstJan1]) _
            As String
            Membro di VBA.Strings
e la pagina:
        Operatori aritmetici
e segui il collegamento alla pagina:
        Operatore *
    (Facci sapere se ed eventualmente come hai risolto. Grazie.)
--
Ciao :o)
Maurizio
--------
?SPQR(C)
 X
--------

Guarda anche la funzione Replace, cosě ti eviti di dividere la parte intera
da quella decimale.

 intera da quella decimale.
    D.I., questa me la devi spiegare perche' non l'ho capita. Grazie.


     D.I., questa me la devi spiegare perche' non l'ho capita. Grazie.
Dato input 1771,00299
output atteso 00177100299
sstr = "1771,00299"
sstr = Format(sstr, "000000.00000")
sstr = Replace(sstr, ",", "")
oppure
Dim sstr As String
Dim Intero As Long
Dim Decim As Long
sstr = "1771,00299"
Intero = Val(sstr)
Decim = (CDbl(sstr) - Intero) * 100000
sstr = Format(Intero, "000000") + Format(Decim, "00000")
esiste un modo nella format per eliminare il punto o la virgola?

 esiste un modo nella format per eliminare il punto o la virgola?
la moltiplicazione per l'opportuna potrenza di dieci ;)
input (numerico): dIN  = 1771.00299
output (stringa): sOUT = "00177100299"
sOUT = Format$(dIN*10^5,"00000000000")
Comunque, se avessi IN come stringa userei la Replace, altrimenti la
moltiplicazione.
--
Ciao, Silv:o)


Fichissimo, questa non la sapevo, però non la utilizzerò mai, chissà cosa
capirebbero eventuali programmatori che dovrebbero apportare modifiche ad un
codice simile :-)).

> capirebbero eventuali programmatori che dovrebbero ...
"dovessero" , scusate, che vergogna

che è una bomba
non sono esperto anzi molto newbie ma in 3 righe di codice ha assolto quello
che un mio amico aveva fatto
in 30 perché è andato a calcolarsi ed estrapolare la parte intera e decimale
come stringa in più per crearsi quel formato specifico andava ad aggiungere
gli zeri prima e dopo
per poi creare il file di testo

grazie a entrambi

 in 30 perché è andato a calcolarsi ed estrapolare la parte intera e
decimale
Se usi il metodo proposto da Silvio Sergio lo puoi fare con una sola riga, e
chi più ne ha più ne metta :-))))).
sstr = "1771,00299" ' questa riga può non essere considerata
sstr = Format$(sstr * 10 ^ 5, "00000000000")

 esiste un modo nella format per eliminare il punto o la virgola?
    Ti ricordo che si parlava di Excel. Quindi:
        Format$(Range("A1").Value*1e5,"00000000000")
dovrebbe essere sufficiente a Hellas sia nel caso di cella con valore
numerico che testo.


non vado a trovare proprio l'eccelso quello del replace č stato piů che
sufficiente grazie a tutti
ps: commento di amici in ditta "ne esistono gente con le palle"

 numerico che testo.
Si infatti ho postato un msg poco prima di te dove dicevo quello che hai
appena detto. La stessa cosa funge pure sotto vb6.

 news:b4i7sk$2as$1...@news.flashnet.it...

    :-))))
    Io invece ragiono cosi': se la capisco io puo' capirla chiunque.



tu sei un universitario, vero?? sai qui da noi il tempo è denaro e prima una
persona entra nel problema prima quest'ultimo si risolve e prima arrivano i
dindi. Poi se è necessario ottimizzare la procedura in termini di
nanosecondi perchè rientra nei requisiti utente e software allora è un altro
discorso.

 news:b4icgm$3ru$1...@news.flashnet.it...

    Ma cosa hai capito?... Ecco, vedi cosa succede a misurare il mondo
con due metri diversi? Che ti confondi e usi il metro corto quando
invece avresti dovuto usare quello lungo.


 invece avresti dovuto usare quello lungo.
premetto che non volevo essere offensivo in nessun modo (anche io ero
universitario), comunque stiamo andando OT rispondimi via e-mail
all'indirizzo d_impelli\\\\@////
lycos.it
 (togli gli slash), allora non ho
capito spiegami.

non litigate
anche il mio amico č arrivato alle stesse conclusione percorrendo un via piů
lunga e tortuosa
la programmazione a mio avviso č un arte e liberamente interpretabile
ciao

> non litigate
ma per carità, non ti preoccupare,  queste sono le vere discussioni
costruttive, soprattutto in ambito aziendale, spesso si discute su quanto si
bedda essere severi (in termini di programmazione) verso i programmatori, io
per esempio penso che tutti debbano poter lavorare in un ambiente amico dove
tutti possano essere messi allo stesso livello (magari fosse sempre
possibile), quindi è giusto bacchettare quei programmatori che per risolvere
un problema di 3 righe ne scrivono 30, ma è altrettanto vero che spesso
ottimizzare troppo significa rendere illeggibile il codice, quindi difficile
da mantenere, specialmente in ambienti dove le persone possono essere
chiamate a mettere le mani su parti di codice da loro non implementate.
Spesso è capitato che persone laureate in psicologia e sociologia vengano
inserite in gruppi di programmatori dove ci sono pure ingegneri elettronici
e informatici, poi alla fine risulta sempre che il codice dei primi è più
incasinato ma leggibile, mentre l'altro è super ottimizzato ma illeggibile,
e quasi sempre quando si verifica un bug si trova in quella parte
illeggibile del codice.
Poi alla fine queste discussioni forse non sono tanto OT (dopo questa
affermazione massacratemi pure :-)) ).
Esiste un NG dove si possa discutere liberamente di questi argomenti?

ho capito