Está en la página 1de 5

Bingo - 1

Dim lTipoCartela As String

Public Sub CriarCartelas()


Dim lQtdeCartelas As Long
Dim lQtdePalavras As Long
Dim lCartelasGeradas As Long
Dim lLinhaCartela As Long
Dim lPalavras(13) As String
Dim lCartela As Long
Dim lPalavra As Long
Dim lTemp As Long
Dim lQtdeLinhas As Long
Dim lBreak As Long

Application.DisplayAlerts = False
Application.ScreenUpdating = False

lTipoCartela = Sheets("Menu").Range("H4").Value
lQtdeCartelas = Sheets("Menu").Range("H5").Value / 2
lQtdePalavras = Worksheets("Lista de nomes").Cells(Worksheets("Lista de nomes").Rows.Count, 2).
End(xlUp).Row
lLinhaCartela = 1

'Deleta e cria planilha de bingo


Sheets("Bingo").Delete
Sheets.Add(After:=Sheets("Menina")).Name = "Bingo"
Sheets(Sheets("Menu").Range("H4").Value).Select
Cells.Select
Selection.Copy
Sheets("Bingo").Select
Cells.Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False

Sheets(Sheets("Menu").Range("H4").Value).Select
Rows("1:7").Select
Selection.Copy
Sheets("Bingo").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select
Application.CutCopyMode = False

'Criar as cartelas
For lCartelasGeradas = 1 To lQtdeCartelas
Sheets(Sheets("Menu").Range("H4").Value).Activate
Sheets(Sheets("Menu").Range("H4").Value).Rows("1:8").Copy
Sheets("Bingo").Select
Sheets("Bingo").Range("A" & lLinhaCartela).Select
ActiveSheet.Paste

lLinhaCartela = lLinhaCartela + 7
Next lCartelasGeradas

'Copiar palavras para tabela temporária


lsCriarTabelaTemporaria

'Criar as palavras
lContLinha = 5
lContColuna = 2

Sheets("Bingo").Select
For lCartela = 1 To lQtdeCartelas
For lLinha = lContLinha To lContLinha + 2
For lColuna = lContColuna To lContColuna + 4
If lLinha <> (lContLinha + 1) Or lColuna <> (lContColuna + 2) Then

'Busca um número randômico


lTemp = Int((lQtdePalavras - 2 + 1) * Rnd + 2)

'Copia a palavra para uma célula temporária e a retira da lista


Sheets("Temp").Select
Cells(lTemp, 2).Select
Selection.Cut
Bingo - 2

Range("D1").Select
ActiveSheet.Paste
Range("B" & lTemp).Select
Selection.Delete Shift:=xlUp

'Coloca a palavra no bingo


Sheets("Bingo").Select
Cells(lLinha, lColuna).Value = Sheets("Temp").Range("D1").Value

'Reduz a quantidade de palavras


lQtdePalavras = lQtdePalavras - 1
End If
Next lColuna

lContColuna = 2
Next lLinha

'Copiar palavras para tabela temporária


lsCriarTabelaTemporaria
lQtdePalavras = Worksheets("Lista de nomes").Cells(Worksheets("Lista de nomes").Rows.Count,
2).End(xlUp).Row

lContLinha = lLinha + 4
Next lCartela

'SEGUNDA COLUNA
'Copiar palavras para tabela temporária
lsCriarTabelaTemporaria

'Criar as palavras
lContLinha = 5
lContColuna = 9

Sheets("Bingo").Select
For lCartela = 1 To lQtdeCartelas
For lLinha = lContLinha To lContLinha + 2
For lColuna = lContColuna To lContColuna + 4
If lLinha <> (lContLinha + 1) Or lColuna <> (lContColuna + 2) Then

'Busca um número randômico


lTemp = Int((lQtdePalavras - 2 + 1) * Rnd + 2)

'Copia a palavra para uma célula temporária e a retira da lista


Sheets("Temp").Select
Cells(lTemp, 2).Select
Selection.Cut
Range("D1").Select
ActiveSheet.Paste
Range("B" & lTemp).Select
Selection.Delete Shift:=xlUp

'Coloca a palavra no bingo


Sheets("Bingo").Select
Cells(lLinha, lColuna).Value = Sheets("Temp").Range("D1").Value

'Reduz a quantidade de palavras


lQtdePalavras = lQtdePalavras - 1
End If
Next lColuna

lContColuna = 9
Next lLinha

'Copiar palavras para tabela temporária


lsCriarTabelaTemporaria
lQtdePalavras = Worksheets("Lista de nomes").Cells(Worksheets("Lista de nomes").Rows.Count,
2).End(xlUp).Row

lContLinha = lLinha + 4
Next lCartela

'Corrigir imagens
lsInserirImagens

'Insere quebra de linha


lQtdeLinhas = Worksheets("Bingo").Cells(Worksheets("Bingo").Rows.Count, 2).End(xlUp).Row
Bingo - 3

Sheets("Bingo").ResetAllPageBreaks

ActiveWindow.View = xlPageBreakPreview
Set ActiveSheet.HPageBreaks(1).Location = Range("A29")
lsConfiguracaoPagina

Sheets("Temp").Delete

Application.DisplayAlerts = True
Application.ScreenUpdating = True
ActiveWindow.View = xlNormalView

ActiveWindow.DisplayGridlines = False
ActiveWindow.DisplayHeadings = False
Application.DisplayFormulaBar = False

'Sheets("Bingo").PrintPreview
End Sub

'Cria a tabela temporária


Private Sub lsCriarTabelaTemporaria()
On Error Resume Next

Sheets("Temp").Delete
Sheets.Add(After:=Sheets("Bingo")).Name = "Temp"
Sheets("Lista de nomes").Select
Cells.Select
Selection.Copy
Sheets("Temp").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select

Sair:
Exit Sub
End Sub

'Remover cada imagem da sheet


Private Sub lApagarImagens()

Dim imagem As Shape


Dim lContador As Long

lContador = 1

'Itera pela coleção de imagens removendo-as


For Each imagem In ActiveSheet.Shapes
imagem.Delete
Next imagem

End Sub

'Tamanho de cada imagem da sheet


Private Sub lRedimensionarImagens()

Dim imagem As Shape


Dim lContador As Long

lContador = 1

'Itera pela coleção de imagens alterando o nome das imagens


For Each imagem In ActiveSheet.Shapes

If lContador <= 2 Then


'O método renomear imagens
imagem.Select
imagem.Width = 45.75
imagem.Height = 45
Else
imagem.Select
imagem.Width = 40.5
imagem.Height = 36.75
imagem.Apply
End If
Bingo - 4

If lContador <= 3 Then


lContador = lContador + 1
Else
lContador = 1
End If

Next imagem

End Sub

Sub lsConfiguracaoPagina()
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0.511811023622047)
.RightMargin = Application.InchesToPoints(0.511811023622047)
.TopMargin = Application.InchesToPoints(0.78740157480315)
.BottomMargin = Application.InchesToPoints(0.62992125984252)
.HeaderMargin = Application.InchesToPoints(0.31496062992126)
.FooterMargin = Application.InchesToPoints(0.31496062992126)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
End With
Application.PrintCommunication = True
End Sub

Sub lsInserirImagens()
Dim lQtdeCartelas As Long
Dim lInicio As Long
Dim lFinal As Long
Dim i As Long
Dim lMeio As Long

Application.DisplayAlerts = False
Application.ScreenUpdating = False

Sheets("Bingo").Select
lApagarImagens

lQtdeCartelas = (Sheets("Menu").Range("H5").Value / 2) + 1

Sheets(lTipoCartela).Select
Range("E2:F4").Select
Selection.Copy
Sheets("Bingo").Select
Range("E2:F4").Select
ActiveSheet.Paste
Sheets(lTipoCartela).Select
Range("D6").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Bingo").Select
Range("D6").Select
ActiveSheet.Paste

lInicio = 2
lFinal = 4
lMeio = 6

For i = 2 To lQtdeCartelas
Range("E2:F4").Select
Application.CutCopyMode = False
Selection.Copy
Range("L" & lInicio & ":L" & lFinal).Select
ActiveSheet.Paste
Range("E" & lInicio & ":E" & lFinal).Select
ActiveSheet.Paste

Range("D6").Select
Bingo - 5

Application.CutCopyMode = False
Selection.Copy
Range("K" & lMeio).Select
ActiveSheet.Paste
Range("D" & lMeio).Select
ActiveSheet.Paste

lInicio = lInicio + 7
lFinal = lFinal + 7
lMeio = lMeio + 7
Next i

End Sub

También podría gustarte