Algo parecido com isto criará uma lista na coluna da folha 1 A de Nomes de folhas, e sempre que a célula C1
em qualquer folha for alterada, colocará o valor dessa célula na folha1 na coluna B , ao lado do nome da planilha correspondente na coluna A
Ele entra no módulo ThisWorkbook
através do editor VBA *. Você pode alterar o nome da folha e os intervalos conforme necessário.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Not Intersect(Target, Sh.Range("C1")) Is Nothing Then
Dim ws As Worksheet
Set ws = Sheets("Sheet1")
Dim iRow As Integer
On Error GoTo Yikes:
TryAgain:
iRow = Application.WorksheetFunction.Match(Sh.Name, ws.Range("A1:A50"), 0)
ws.Cells(iRow, 2) = Target.Value
Exit Sub
Yikes:
Dim rowcount As Integer
rowcount = ws.Cells(Rows.Count, 1).End(xlUp).Row
Dim r As Range
Set r = ws.Cells(rowcount + 1, 1)
r = Sh.Name
GoTo TryAgain:
End If
End Sub
* Para chegar ao editor do VBA, você deve ir ao botão office, às opções do excel e, na tag popular, colocar uma marca de seleção na caixa ao lado de Show Developer tab in the Ribbon
. Em seguida, feche, vá até a guia do desenvolvedor e clique no botão Visual Basic
na extrema esquerda. O editor abrirá e você precisará clicar duas vezes no módulo ThisWorkbook
no painel esquerdo.