Rows con variabile



  • Rows con variabile
    di rocco (utente non iscritto) data: 15/10/2015 09:43:21

    ciao a tutti
    sto scrivendo questa macro ma non so come utilizzare Rows indicando i valori che derivano da una variabile
    sto sbagliando solo la sintassi o tutto?
     
    Sub aaaaaaaaaaaaaaaaaaaaaaaaaaa()
       
        For bb = 1 To 11
        tr = 0
        For aa = 3 To 21 Step 2
        If Cells(bb, aa) > 0 Then
        tr = tr + 1
        End If
        Next aa
        If tr = 0 Then
        Rows("bb:bb").Select
        Selection.Delete Shift:=xlUp
        Range("G9").Select
        End If
        Next bb
        
    End Sub



  • di Cucù data: 15/10/2015 10:17:37

    L'errore è su...
     
    Rows("bb:bb").Select <----- Qui devi indicare quale Riga selezionare quindi:
    
    prova a sostituire con
    
    Rows(bb).Select
    
    PS 
    1. Quasi mai è necessario selezionare una range per poter compiere delle operazioni
    2. E' sempre IMPORTANTE "Option Explicit" e dimensionare correttamente le variabile quando si scrive del codice.



  • di Luca73 data: 15/10/2015 10:18:33

    Prova con la macro sotto riportata
    la sintassi era sbagliata in rows devi inserire il numero della riga che ti interessa e pertanto nel tuo caso bb
    inoltre c'è un errore concettuale nel ciclo di bb: se la riga "x" viene eliminata allora la riga che si chiamava "X+1" diventa la nuova riga "x" che il tuo ciclo salterebbe in quanto passerebbe alla riga successiva (la nuova riga "x+1" che sarebbe la vecchia "x+2"
    io ti suggerisco (vedi programma) di partire dal fondo e salire così risolvi il problema.
    Ciao
    Luca
     
    Sub aaaaaaaaaaaaaaaaaaaaaaaaaaa()
    Dim bb, tr, aa
        For bb = 11 To 1 Step -1
        tr = 0
        For aa = 3 To 21 Step 2
        If Cells(bb, aa) > 0 Then
        tr = tr + 1
        End If
        Next aa
        If tr = 0 Then
        Rows(bb).Select
        Selection.Delete Shift:=xlUp
        Range("G9").Select
        End If
        Next bb
        
    End Sub
    






  • di rocco (utente non iscritto) data: 15/10/2015 11:07:07

    grazie luca! funziona alla grande



  • di Luca73 data: 15/10/2015 15:29:02

    Ciao
    Io ti ho corretto un paio di errori
    però segui anche le indicazioni corrette di Cucù.
    Vedi sotto la macro...perfezionata.

    Cioa
     
    Sub aaaaaaaaaaaaaaaaaaaaaaaaaaa()
    Dim bb as Integer
    Dim tr as Integer
    Dim aa as Integer
        For bb = 11 To 1 Step -1
           tr = 0
           For aa = 3 To 21 Step 2
             If Cells(bb, aa) > 0 Then
                tr = tr + 1
             End If
           Next aa
           If tr = 0 Then
              Rows(bb).Delete Shift:=xlUp
           End If
        Next bb
     End Sub