formula in vba



  • formula in vba
    di ire.zazi (utente non iscritto) data: 05/11/2014 11:46:54

    Ciao a tutti! Avrei bisogno di un piccolo aiutino.
    Ho un problema...
    La mia macro compoila delle celle secondo delle funzioni if programmate in vba, a parte una cella che è la differenza di un'altra cella e di unn cerca verticale.
    Il mio problema nasce dal non sapere come esplicitare i miei argomenti.
    Mi spiego meglio!
    Nel mio foglio excel la mia formula è semplicemente "=$R4-CERCA.VERT($C4;Disegni!$A:$AF;32;FALSO)"
    dove la colonna per esempio R rimane bloccata, ma le mie righe scorrono man mano che inserisco i dati nella mia tabella.
    Tanto che nella mia macro ho inserito una variabile Y che mi identifica la riga!
    per esempio la mia '$r4' sarebbe Cells( y,18).
    Ho provato ad esplicitare la mia parte di macro come riportato nel codice vba.
    Magari, essendo super preparati, sto facendo degli errori banali che potete segnalarmi tranquillamente!
    Spero di essere stata sufficientemente chiara, eventualmente sono disponibile per qualsiasi tipo di domanda..
    Grazie! =)
     
    Sub pippo(y As Integer)
    Dim I As Integer
    
      Worksheets("lunedì").Activate
      Range("C" & y).Activate
    
        'colonna Q DATA APPRONTAMENTO
         Cells(y, 17) = Cells(y, 18).Value - WorksheetFunction.VLookup("Cells(y, 3)", Worksheets("disegni").Range(1, 32), 32, False).Value
    
         
     
     ''Worksheets("lunedì").Range ("C" & (y + 1))
    
    End Sub
    



  • di lepat (utente non iscritto) data: 05/11/2014 14:57:09

    "Cells(y, 3)" è una stringa di testo e quindi y non viene calcolato, devi scrivere
    "Cells(" & y & ", 3)"



  • di ire.zazi (utente non iscritto) data: 06/11/2014 08:57:24

    L'espressione Cells(y,3) è riconosciuta; facendo pezzo a pezzo le azioni di controllo mi dice che
    "Application.WorksheetFunction.VLookup" è , ma non so perchè...
    Grazie.



  • di lepat (utente non iscritto) data: 06/11/2014 09:03:26

    allega un file di esempio



  • di Lucas87 data: 06/11/2014 09:52:11

    Ciao
    Gli argomenti della formula sono sbagliati.
    Scrivendo "Cells(y, 3)", viene riconosciuto come testo e quindi cerca proprio Cells(y, 3) che di sicuro non ci sarà nel tuo elenco. Vanno tolti gli apici in modo che l'argomento sia la cella (y,3).
    range(1,32) non significa nulla. forse intendevi range("a:af")
    La forma corretta è quella sotto
     
    Cells(y, 17) = Cells(y, 18).Value - WorksheetFunction.VLookup(Cells(y, 3), Worksheets("disegni").Range("a:af"), 32, False).Value
    



  • di ire.zazi (utente non iscritto) data: 06/11/2014 09:58:14

    Modifiche apportate, grazie.. Facendo il controllo ora mi dice che la variabile non è stata creata in questo contesto! boh!



  • di Lucas87 data: 06/11/2014 10:20:30

    Beh se il codice è quello che hai messo è ovvio che non trova la variabile.
    Devi in qualche modo, a seconda delle tue esigenze, assegnare un valore alla variabile Y