Newsgroup: it.comp.lang.visual-basic
Titolo: Dov'è l'errore

Ho scritto questa piccola e semplice Macro in excel, al di la della logica
di funzionamento deve esserci un errore di sintassi perchè l'esecuzione è
impossibile. Riporto sotto la macro in questione cercando qualcuno che
possa darmi una mano. Faccio presente che lavoro con Excel 97. Grazie!
Sub Confrontatore()
 For i = 2 To 730
 For l = 10 To 337
 If Worksheets("Copia").Cells(i, 3).Value = 
 Worksheets("SCTN").Cells(l, 4).Value Then
 Worksheets("Copia").Cells(i, 4).Value = 
 Worksheets("SCTN").Cells(l, 10).Value
 End If
 Next l
 Next i
End Sub
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Bho, io direi che la logica è importante.
Se faccio girare questa macro:
Public Sub mProva()
    Dim i As Long
    Dim l As Long
    Dim cont As Long
    For i = 2 To 730
        For l = 10 To 337
            cont = cont + 1
        Next
    Next
    Debug.Print cont
End Sub
Ho come risultato: 239112
Conta un po' le righe di Excel....
Tu, cosa devi fare?
Ti ricordo, per quesiti *tutto Excel*
che esiste anche:
microsoft.public.it.office.excel
-- 
----------------------------
Mauro Gamberini

>  For l = 10 To 337
Quando vedo la variabile "i" come contatore mi viene il mal di pancia 
e in questo codice c'è anche la 'I'... 


Che sia una l (elle)?
Hai provato a mettere
Dim i e Dim I e vedere se vb è contento?
Credo che il problema qui sia ben altro.
-- 
----------------------------
Mauro Gamberini

 Bho, io direi che la logica è importante.
anche io.
la macro che ho scritto funziona bene, solo che volevo sapere  se è
normale che una condizione If debba essere seguita SULLA STESSA RIGA dal
proprio test. Se non mi attengo a questa sintassi il compilatore si blocca
e non ne capisco il motivo. Analogamente la stessa problematica la
riscontro con la condizione then che segue un if. 
E' una cosa normale?


> ..... SULLA STESSA RIGA .....
Ciao. Prova un po' questa:
Public Sub Confrontatore()
     For i = 2 To 730
          For l = 10 To 337
               If Worksheets("Copia").Cells(i, 3).Value = _
                   Worksheets("SCTN").Cells(l, 4).Value Then
                   Worksheets("Copia").Cells(i, 4).Value = _
                       Worksheets("SCTN").Cells(l, 10).Value
               End If
          Next l
     Next i
End Sub
in VB se devi interrompere una istruzione per continuarla sulla riga
successiva devi mettere il carattere Underscore ("_"). Attento: prima ci
vuole sempre uno spazio, altrimenti non funziona.
Ciao.
PS: non imparare da cattivi maestri (chi non indenta il codice, omette la
parola chiave Public, ecc...)
PPS: se qs. post ti arriva due volte, non ci fare caso (....ma quando mi
decido a cambiare browser e antivirus?...)
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/


Lo scopo era quello di rendere il codice illeggibile. Lui pensa che
così il codice lo capisce solo lui ma in realtà si sbaglia.
Quel codice probabilmente lo dovrà gestire solo lui e una sintassi
in quel modo gli renderà solo la vita più difficile.
Quando verrà sostituito, il sostituito semplicemente sostituirà quel
codice astruso (dove serve fare qualche correzione).
te lo dice uno che correzioni su codice altrui ne ha fatte tante... 

 così il codice lo capisce solo lui ma in realtà si sbaglia.
Sei sempre malizioso ;-P... non ti viene il dubbio che volesse semplicemente
andare a capo perché la largezza della sua finestra di codice era insufficiente
per mostrare per intero l'istruzione If ... Then?
Bye
Raf


no, io non ho pensato male di qualcuno che non conosco, e mandare a capo una
riga VB è una cosa lecita e lo faccio spesso anch'io.
No, ho soltanto voluto mettere in guardia l'amico da certe pratiche
scorrette che purtroppo sono usuali, come ci fa notare Giovanni, tipo
omettere l'area di visibiltà di una routine, o omettere di dichiarare le
variabili (e quindi aver omesso anche Option Explicit, perchè l'OP dice che
lui in certe condizioni fa girare il codice). L'indentazione assente
purtroppo dipende - in questo caso - dal servizio web
http://www.newsland.it/news
 , che io non userò mai prorpio perché rimuove
l'indentazione dal codice postato (come fa un programmatore a progettare un
sito con una funzione del genere?)


 sito con una funzione del genere?)
Concordo pienamente.
Bye
Raf

 Sono io che non ci ho capito nulla?!?!
<gesto amichevole>ma no, dai.</gesto amichevole>
Ciao. Buona giornata a tutti e due.
PS: ehm, magari il Benassi ci dicesse com'č andata a finire...


 PS: ehm, magari il Benassi ci dicesse com'è andata a finire...
Eh, magari...
Raf