Sviluppare funzionalita su Microsoft Office con VBA modifica macro per mese-cella

Login Registrati
Stai vedendo 5 articoli - dal 1 a 5 (di 5 totali)
  • Autore
    Articoli
  • #50987 Score: 0 | Risposta

    Ciao,

    questa macro funziona per la colonna B

    '-----------------------------------------------------------

    Option Explicit

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B4:B1200")) Is Nothing Then
    On Error Resume Next
    Select Case Month(Target)
    Case 1
    Target.Interior.ColorIndex = 6
    Case 2
    Target.Interior.ColorIndex = 8
    Case 3
    Target.Interior.ColorIndex = 6
    Case 4
    Target.Interior.ColorIndex = 8
    Case 5
    Target.Interior.ColorIndex = 6
    Case 6
    Target.Interior.ColorIndex = 8
    Case 7
    Target.Interior.ColorIndex = 6
    Case 8
    Target.Interior.ColorIndex = 8
    Case 9
    Target.Interior.ColorIndex = 6
    Case 10
    Target.Interior.ColorIndex = 8
    Case 11
    Target.Interior.ColorIndex = 6
    Case 12
    Target.Interior.ColorIndex = 8
    End Select
    On Error GoTo 0
    End If
    End Sub

    '-----------------------------------------------------------

    è possibile modificarla perchè funzioni per le righe da A a D?

    grazie

    #50988 Score: 0 | Risposta

    vecchio frac
    Senior Moderator
      272 pts

      Per favore utilizza l'apposita funzione per presentare del codice. Nell'editor c'e' il pulsante "(codice VBA)".

      frank_ciccio ha scritto:

      è possibile modificarla perchè funzioni per le righe da A a D?

      La risposta alla domanda e' si', certo. Non e' molto difficile immaginarsi dove e come apportare la modifica. Fai un piccolo sforzo.

      #50989 Score: 0 | Risposta

      alexps81
      Moderatore
        55 pts

        Dopo che hai trovato la soluzione...ti suggerisco di aggregare i vari casi visto che si parla solo del ColorIndex 6 e 8

        Select Case Month(Target)
        Case 1, 3, 5, 7, 9, 11
            Target.Interior.ColorIndex = 6
        Case Else
            Target.Interior.ColorIndex = 8
        End Select
        #50990 Score: 1 | Risposta

        vecchio frac
        Senior Moderator
          272 pts

          alexps81 ha scritto:

          ti suggerisco di aggregare i vari casi

          Ciliegina sulla torta, ma prima bisogna avere la torta   

          #50991 Score: 0 | Risposta

          Non so se c'è di meglio

          Private Sub Worksheet_Change(ByVal Target As Range)
          If Not Intersect(Target, Range("B4:B1200")) Is Nothing Then
          On Error Resume Next
          Select Case Month(Target)
          
          Case 1
          'Target.Interior.ColorIndex = 6
          Target.Offset(0, -1).Resize(1, 4).Interior.ColorIndex = 6
          Case 2
          'Target.Interior.ColorIndex = 8
          Target.Offset(0, -1).Resize(1, 4).Interior.ColorIndex = 8
          
          Case 3
          'Target.Interior.ColorIndex = 6
          Target.Offset(0, -1).Resize(1, 4).Interior.ColorIndex = 6
          Case 4
          'Target.Interior.ColorIndex = 8
          Target.Offset(0, -1).Resize(1, 4).Interior.ColorIndex = 8
          
          Case 5
          'Target.Interior.ColorIndex = 6
          Target.Offset(0, -1).Resize(1, 4).Interior.ColorIndex = 6
          Case 6
          'Target.Interior.ColorIndex = 8
          Target.Offset(0, -1).Resize(1, 4).Interior.ColorIndex = 8
          
          Case 7
          'Target.Interior.ColorIndex = 6
          Target.Offset(0, -1).Resize(1, 4).Interior.ColorIndex = 6
          Case 8
          'Target.Interior.ColorIndex = 8
          Target.Offset(0, -1).Resize(1, 4).Interior.ColorIndex = 8
          
          Case 9
          'Target.Interior.ColorIndex = 6
          Target.Offset(0, -1).Resize(1, 4).Interior.ColorIndex = 6
          'Target.Interior.ColorIndex = 8
          Target.Offset(0, -1).Resize(1, 4).Interior.ColorIndex = 8
          
          Case 11
          'Target.Interior.ColorIndex = 6
          Target.Offset(0, -1).Resize(1, 4).Interior.ColorIndex = 6
          Case 12
          'Target.Interior.ColorIndex = 8
          Target.Offset(0, -1).Resize(1, 4).Interior.ColorIndex = 8
          
          End Select
          On Error GoTo 0
          End If
          End Sub
        Login Registrati
        Stai vedendo 5 articoli - dal 1 a 5 (di 5 totali)
        Rispondi a: modifica macro per mese-cella
        Gli allegati sono permessi solo ad utenti REGISTRATI
        Le tue informazioni: