Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Eseguire funzione su più fogli di una cartella

    Salve,
    sotto posto la funzione che uso adesso.
    Avrei la necessita' di poter eseguire la funzione su tutti i fogli (tranne alcuni).
    Al momento dovrebbe essere eseguita su circa 15 fogli.
    Nel mio caso ogni volta dovrei cambiare il nome PREV con il rischio che se modifico un rigo lo dovrei cambiare su tutti.
    In poche parole essendo sempre uguale vorrei che la funzione si eseguisse su quasi tutti i fogli.
    PS: se partisse all'apertura sarebbe il massimo ma va bene anche con un bottone.

    grazie

    codice:
    
    Sub P()
    
    
    i = 3
    
    With Worksheets("PREV").Range("C:C")
       .Value = ""
    End With
    
    Worksheets("PREV").Range("C4:AH100").ClearContents
     Range("A1").Select
    
    
    If Worksheets("PREV").Range("a1").Value <> "" Then
       For Each casella In Worksheets("foglio4").Range(Worksheets("Foglio4").Cells(3, 2), Worksheets("Foglio4").Cells(Worksheets("Foglio4").[a1].Value + 1, 2))
          If CStr(casella.Value) = Worksheets("PREV").Range("a1").Value Then
             
             i = i + 1
               
                Worksheets("PREV").Cells(i, 3) = casella.Offset(0, 1)
                Worksheets("PREV").Cells(i, 4) = casella.Offset(0, 4)
                Worksheets("PREV").Cells(i, 5) = casella.Offset(0, 24)
                Worksheets("PREV").Cells(i, 6) = casella.Offset(0, 25)
                Worksheets("PREV").Cells(i, 7) = casella.Offset(0, 16)
                Worksheets("PREV").Cells(i, 8) = casella.Offset(0, 18)
    
                
                
                
          End If
       Next
       
    MsgBox "AGGIORNAMENTO ESEGUITO"
    End If
    
    
    End Sub
    ale tacchino82

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Usare un For...Each per ogni Worksheets ?

    For Each C In Application.Worksheets

    Next C
    Sbagliare è umano, perseverare è diabolico.

  3. #3
    Vorrei che la funzione venisse eseguita su tutti i fogli e non che su ogni foglio devo eseguire una macro diversa.
    ale tacchino82

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Appunto, usa un ciclo For...Each.

    Se ho questa routine da svolgere:

    codice:
     Cells(1, 1) = C.Cells(1, 1) + 1
    su ogni WorkSheet, allora potrò scrivere:

    codice:
    For Each C In Application.Worksheets
    If C.Name = "Foglio1" Then
      C.Cells(1, 1) = C.Cells(1, 1) + 1
    End If
    Next C
    Sbagliare è umano, perseverare è diabolico.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.