- 31 Jul 2016 às 18:16
#13581
Olá
Desenvolvi um código, porém, de forma incompleta, pois não consegui devenvolver as mesclagens das células especificas e automáticas.
Se no Range ("V14:V100") nas linhas que conter texto; então; as respectivas linhas das celulas pertecentes ao Range ("C14:F14") em diante ficarão mescladas.
Segue ao código e a planilha de exemplo:
Desde já agradeço
Código VBA:
Sub CélulasParaMatriz()
Dim MatrizX(), i As Long, VV As String, AcharUltimaLinha As Long, Resp As VbMsgBoxResult
MatrizX = Range("V:V").Value 'carrega na matriz os valores do intervalo
AcharUltimaLinha = Cells(Rows.Count, 22).End(xlUp).Row
Resp = MsgBox("Tem certeza que deseja prosseguir com esta ação?", vbYesNo, "Tomando uma decisão")
If Resp = vbYes Then
[C1].Resize(AcharUltimaLinha).Value = MatrizX 'insere em outro intervalo os elementos da matriz
'Propriedade Range.Resize(Excel)Redimensiona o intervalo especificado. Retorna um objeto Range que representa o intervalo redimensionado.
For i = 1 To AcharUltimaLinha
VV = VV & MatrizX(i, 1) & vbLf 'carrega na variável "VV" todos os elementos da matriz
'vbLf = Chr (10) = Caractere de alimentação de linha
Next i
'MsgBox "Você Inseriu os seguinte registros: " & vv 'exibe a variável "VV"
MsgBox "Processo Executado!", , "Entusiasta_Excel"
Else
MsgBox "Você acaba de recusar a ação"
End If
End Sub
Desenvolvi um código, porém, de forma incompleta, pois não consegui devenvolver as mesclagens das células especificas e automáticas.
Se no Range ("V14:V100") nas linhas que conter texto; então; as respectivas linhas das celulas pertecentes ao Range ("C14:F14") em diante ficarão mescladas.
Segue ao código e a planilha de exemplo:
Desde já agradeço
Código VBA:
Sub CélulasParaMatriz()
Dim MatrizX(), i As Long, VV As String, AcharUltimaLinha As Long, Resp As VbMsgBoxResult
MatrizX = Range("V:V").Value 'carrega na matriz os valores do intervalo
AcharUltimaLinha = Cells(Rows.Count, 22).End(xlUp).Row
Resp = MsgBox("Tem certeza que deseja prosseguir com esta ação?", vbYesNo, "Tomando uma decisão")
If Resp = vbYes Then
[C1].Resize(AcharUltimaLinha).Value = MatrizX 'insere em outro intervalo os elementos da matriz
'Propriedade Range.Resize(Excel)Redimensiona o intervalo especificado. Retorna um objeto Range que representa o intervalo redimensionado.
For i = 1 To AcharUltimaLinha
VV = VV & MatrizX(i, 1) & vbLf 'carrega na variável "VV" todos os elementos da matriz
'vbLf = Chr (10) = Caractere de alimentação de linha
Next i
'MsgBox "Você Inseriu os seguinte registros: " & vv 'exibe a variável "VV"
MsgBox "Processo Executado!", , "Entusiasta_Excel"
Else
MsgBox "Você acaba de recusar a ação"
End If
End Sub