Newsgroup: it.comp.lang.visual-basic
Titolo: VBA, che casino...

ciao a tutti, ho un problema con vba:
sto facendo una specie di programma
di contabilità.
ho fatto una macro che "dovrebbe" prendere dei dati da un
foglio e copiarli i un altro.
come codice ho messo sta cosa:
Sub
Ordina_Valori(Inizio As Integer, Fine As Integer)
Dim currentcel As
Integer
currentcel = Inizio
Dim i As Integer
For i = currentcel To Fine
If Range("B" & currentcel).Text = "" Then
Range("b" & currentcel).Value =
num_f & " / " & CDate(data_f)
Range("c" & currentcel).Value = lavoro
Range("d" & currentcel).Value = imponibile
Range("e" & currentcel).Value =
perc_iva
End
Else
currentcel = currentcel + 1
End If
Next i
End Sub
Sub Ordina_fattura()
Dim data_f As Date
Dim num_f As String
Dim mese As
String
Dim nome As String
Dim indirizzo As String
Dim cod_fisc As String
Dim cap As String
Dim numtel As String
Dim p_iva As String
Dim f_c As
String
Dim foglio As String
Dim lavoro As String
Dim imponibile As
Double
Dim perc_iva As Integer
On Error GoTo errore
data_f =
Range("c9").Value
num_f = Range("c10").Value
nome = Range("f8").Value
indirizzo = Range("f9").Value
cod_fisc = Range("f10").Value
cap =
Range("f11").Value
numtel = Range("f12").Value
p_iva = Range("f13").Value
f_c = InputBox("Dove devo mettere questa fattura?" & vbNewLine & "in
-FORNITORE- o -CLIENTE-", "Fornitore/Cliente")
mese = DatePart("m",
data_f)
foglio = nome & " (" & f_c & ")"
lavoro = Range("b17").Value
imponibile = Range("g42").Value
perc_iva = Range("f43").Value
Sheets(foglio).Select
Select Case (mese)
Case Is = 1
mese = "Gennaio"
Call Ordina_Valori("16", "25")
Case Is = 2
mese = "Febbraio"
Call
Ordina_Valori("26", "35")
Case Is = 3
mese = "Marzo"
Call
Ordina_Valori("36", "45")
Case Is = 4
mese = "Aprile"
Call
Ordina_Valori("46", "55")
Case Is = 5
mese = "Maggio"
Call
Ordina_Valori("56", "65")
Case Is = 6
mese = "Giugno"
Call
Ordina_Valori("66", "75")
Case Is = 7
mese = "Luglio"
Call
Ordina_Valori("76", "85")
Case Is = 8
mese = "Agosto"
Call
Ordina_Valori("86", "95")
Case Is = 9
mese = "Settembre"
Call
Ordina_Valori("96", "105")
Case Is = 10
mese = "Ottobre"
Call
Ordina_Valori("106", "115")
Case Is = 11
mese = "Novembre"
Call
Ordina_Valori("116", "125")
Case Is = 12
mese = "Dicembre"
Call
Ordina_Valori("126", "135")
End Select
errore:
MsgBox "Si è verificato
un errore: " & Err.Description, vbCritical, "Errore"
End Sub
spero non
vi siate addormentati a leggerlo e a capirlo tutto, comunqu il mio problema
e che non mi copia i dati da un foglio allaltro.
dovrebbe venire una roba
del genere:
---------------------------------------------------- - - - -
| N°/Data fattura | Lavoro | Imponibile | % iva | ecc...
---------------------------------------------------- - - - - 
|55 /
4/1/2002    | ....   | € 1000     | 4     | ecc...
---------------------------------------------------- - - - - 
invece viene
così:
---------------------------------------------------- - - - -
|
N°/Data fattura | Lavoro | Imponibile | % iva | ecc...
---------------------------------------------------- - - - - 
|/0.0.0000
|        |            |       | ecc...
---------------------------------------------------- - - - - 
dove
sbaglio?
vi prego rispondetemi, se no alla persona a cui devo fare so coso
che gli dico???
grazie comunque a tutti
--------------------------------
Inviato via 
http://usenet.iol.it

dove sbaglio?
A non formattare il codice in modo leggibile con i rientri (indent) opportuni.
Personalmente mi rifiuto di leggere il codice scritto cosi' :-(
-- 
ciao, hal

visto che mi hanno dato un consiglio riformulo il tutto:


On Error GoTo errore
data_f =Range("c9").Value



p.s.
scusate se ho formattato
male il testo, ma non sono abituato, spero comunque che lo comprendiate
ancora grazie


cmq č colpa anche del ng, 
l'avevo formatato cosi bene e ora alcuni pezzi
se li č portati a capo...


 ha scritto nel messaggio
news:212Z171Z113Z73Y...@usenet.iol.it...
Il codice va scritto in modo da capire la nidificazione delle istruzioni! Ad
esempio:
If variabile = true then
    Istruzione0
    if condizione0 then
        istruzione1
        if condizione1 then
            istruzione3
        end if
    else
        istruzione2
    end if
end if
Se tu appiattisci il codice così...
If variabile = True Then
Istruzione0
If condizione0 Then
istruzione1
If condizione1 Then
istruzione3
End If
Else
istruzione2
End If
End If
non si capisce una mazza! :(
Era questo che intendeva hal! Afferrato il concetto ora?
--
Ciao,
Alessandro
Visita: 
http://www.hardwaretips.com


mmm...
così a occhio:
tu stai cercando di accedere dalla Ordina_valori a variabili locali della
Ordina_fattura, che _NON_ hai pasato alla sub...
passa quelle benedette
num_f, data_f,  lavoro,  imponibile, perc_iva
alla Ordina_valori e...    :-)
ciao
ugo