Notifications
Clear all

Alinhar imagens uma abaixo da outra

4 Posts
1 Usuários
0 Reactions
661 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde a todos!

Gostaria de ajuda para alinhar as imagens na coluna "A" uma abaixo da outra.
Tenho uma planilha com 78 imagens e tentei usar os recursos de "Ferramentas de imagens", mas não consegui colocar as imagens uma abaixo da outra na coluna "A".
Achei que o recurso "Distribuir na vertical" resolveria o problema, porém não deu certo.

Muito obrigado!

Silvio Felinto

 
Postado : 30/10/2013 10:39 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Posta a planilha.

 
Postado : 30/10/2013 1:39 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Sem ver a estrutura de sua planilha/tamanhos de imagem fica muito dificil
porem experimente:

Sub Ajuste()
Sheets("Bandeiras").Activate
  For Each sh In ActiveSheet.Shapes
    ActiveSheet.Shapes.Range(Array(sh.Name)).Select
        With Selection
            .Top = sh.TopLeftCell.Top 'ActiveSheet.Cells(y, 16).Top
            .Left = sh.TopLeftCell.Left 'ActiveSheet.Cells(y, 16).Left
        End With
    Next
End Sub
 
Postado : 30/10/2013 3:25 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde!
Tenta esse código do MVP Jon Peltier que eu uso para alinhar gráfico e adaptei para imagens.

Option Explicit

Sub MakeGridOfPictures()
  ' Jon Peltier (3/19/2008)
  ' http://peltiertech.com/WordPress/

  ' Tamanho do gráfico - ajustar como desejado
  Const nRowsTall As Long = 8 'Altura do grafico nas linhas
  Const nColsWide As Long = 3 'Largura do grafico na coluna

  ' Layout gráfico - ajustar como desejado
  Const nPicturesPerRow As Long = 1 'Alinhamento horizontal ou vertical
  Const nSkipRows As Long = 2
  Const nSkipCols As Long = 0 'Espaço entre as colunas
  Const nFirstRow As Long = 5 'Número da primeira linha
  Const nFirstCol As Long = 1 'Número da primeira coluna

  Dim iPicture As Long
  Dim chtob As Object
  Dim dWidth As Double
  Dim dHeight As Double
  Dim rData As Range
  Dim dFirstPictureTop As Double
  Dim dFirstPictureLeft As Double
  Dim dRowsBetweenPicture As Double
  Dim dColsBetweenPicture As Double

  With Worksheets("Plan1").Cells(1, 1)
    dWidth = nColsWide * .Width
    dHeight = nRowsTall * .Height
    dFirstPictureLeft = (nFirstCol - 1) * .Width
    dFirstPictureTop = (nFirstRow - 1) * .Height
    dRowsBetweenPicture = nSkipRows * .Height
    dColsBetweenPicture = nSkipCols * .Width
  End With

  For iPicture = 1 To Worksheets("Plan1").Pictures.Count

    Set chtob = Worksheets("Plan1").Pictures(iPicture)

    With chtob
      .Left = ((iPicture - 1) Mod nPicturesPerRow) * (dWidth + dColsBetweenPicture) + dFirstPictureLeft
      .Top = Int((iPicture - 1) / nPicturesPerRow) * (dHeight + dRowsBetweenPicture) + dFirstPictureTop
      .Width = dWidth
      .Height = dHeight
    End With

  Next

End Sub



Um abraço

 
Postado : 31/10/2013 4:20 pm