• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Wstawienie nowej linii do makro

Object Storage Arubacloud
0 głosów
93 wizyt
pytanie zadane 20 września 2023 w Visual Basic przez magda_19 Gaduła (3,080 p.)
zamknięte 20 września 2023 przez magda_19

Cześć,

Mam kody, któy dodaje zdanie w zaleźności od danych w tabeli, Jak są 4 wiersze wypełnione, to będą 4 zdania, itd.

Potrzebuję te zdania przekopiować makrem do innego sheetu w takiej formie w jakiej się generują tutaj.

Jak robię to ręcznie, to widzę, że do scalonych komórek mogę użyć funkcji concat tylko że po każdym zdaniu musi być wstawiony tzw. "blank row". To jest podejście ręczne, zastanawiam się jak mogę to zapisać makrem aby po każdym zdaniu mieć blank row i aby to się przyklejało gdzie indziej.

Próbowałam użyć , ale wstawia mi się nowy wiersz w połowie zdania

vbNewLine

Mój kod bez "nowej lini:

Private Sub Generuj_Click()

Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim h As Integer

table = Range("E5", Range("F5").End(xlDown)).Rows.Count
Range("E5", Range("F5").End(xlDown)).Select

'Range("E5").Select
j = 1
k = 4

ActiveSheet.Shapes.AddShape(msoShapeRectangle, 15, 15, 100, 50).Select

For i = 1 To table
    
Worksheets("Spolki").Cells(i + 4, j + 8) = "Inwestycja w spółkę " & Worksheets("Spolki").Cells(RowIndex:=k + 1, ColumnIndex:=5) & " w kwocie przypadającej na PFR " & Worksheets("Dashboard").Range("C3") & " FIZ: " & Worksheets("Spolki").Cells(RowIndex:=k + 1, ColumnIndex:=6) & " " & Worksheets("Dashboard").Range("C9")

Application.ScreenUpdating = True

k = k + 1

Next i

End Sub

 

I z vbNewLine:

Private Sub Generuj_Click()

Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim h As Integer

table = Range("E5", Range("F5").End(xlDown)).Rows.Count
Range("E5", Range("F5").End(xlDown)).Select

'Range("E5").Select
j = 1
k = 4

ActiveSheet.Shapes.AddShape(msoShapeRectangle, 15, 15, 100, 50).Select

For i = 1 To table
    
Worksheets("Spolki").Cells(i + 4, j + 8) = "Inwestycja w spółkę " & Worksheets("Spolki").Cells(RowIndex:=k + 1, ColumnIndex:=5) & " w kwocie przypadającej na PFR " & Worksheets("Dashboard").Range("C3") & " FIZ: " & Worksheets("Spolki").Cells(RowIndex:=k + 1, ColumnIndex:=6) & " " & Worksheets("Dashboard").Range("C9") & vbNewLine

Application.ScreenUpdating = True

k = k + 1

Next i

End Sub

Jak mogę zapisać kod, aby nowa linia dodawała się na końcu każdego zdania?

komentarz zamknięcia: rozwiązane

1 odpowiedź

+1 głos
odpowiedź 20 września 2023 przez VBService Ekspert (253,420 p.)

Spróbuj zapisać to tak, że będziesz po każdym kopiowanym wierszu, opuszczał kolejny wiersz w docelowym arkuszu.

Private Sub Generuj_Click() 
  Dim i As Integer
  Dim j As Integer
  Dim k As Integer
  Dim h As Integer
 
  table = Range("E5", Range("F5").End(xlDown)).Rows.Count
  Range("E5", Range("F5").End(xlDown)).Select
 
  'Range("E5").Select
  j = 1
  k = 4
 
  ActiveSheet.Shapes.AddShape(msoShapeRectangle, 15, 15, 100, 50).Select
 
  For i = 1 To table
    Worksheets("Spolki").Cells(i + 4, j + 8) = "Inwestycja w spółkę " & Worksheets("Spolki").Cells(RowIndex:=k + 1, ColumnIndex:=5) & _
                                               " w kwocie przypadającej na PFR " & Worksheets("Dashboard").Range("C3") & " FIZ: " & _
                                               Worksheets("Spolki").Cells(RowIndex:=k + 1, ColumnIndex:=6) & " " & Worksheets("Dashboard").Range("C9") ' & vbNewLine
 
    Application.ScreenUpdating = True
    k = k + 2
  Next i 
End Sub

 

komentarz 20 września 2023 przez magda_19 Gaduła (3,080 p.)

Dzięki za kod, puszczam to i mam tak:

Przy kopiowaniu do innego sheet, rozjeżdża mi się to, i manualnie jak wstawię nową linię to wtedy ładnie się wkleja, natomiast teraz wygląda to tak:

Docelowo chcę wkleić do scalonej komórki

komentarz 20 września 2023 przez magda_19 Gaduła (3,080 p.)

Dobra, zrobiłam tak i działa

     
Worksheets("Spolki").Cells(i + 4, j + 8) = "Inwestycja w spółkę " & Worksheets("Spolki").Cells(RowIndex:=k + 1, ColumnIndex:=5) & " w kwocie przypadającej na PFR " & Worksheets("Dashboard").Range("C3") & " FIZ: " & Worksheets("Spolki").Cells(RowIndex:=k + 1, ColumnIndex:=6) & " " & Worksheets("Dashboard").Range("C9") & _
vbNewLine

Dzięki za podpowiedź z tym underscore

 

Podobne pytania

+1 głos
2 odpowiedzi 99 wizyt
pytanie zadane 21 września 2023 w Visual Basic przez magda_19 Gaduła (3,080 p.)
0 głosów
0 odpowiedzi 205 wizyt
pytanie zadane 26 listopada 2020 w Visual Basic przez ZenekMarjewka Nowicjusz (120 p.)
+1 głos
1 odpowiedź 374 wizyt
pytanie zadane 25 września 2020 w Visual Basic przez doeg Początkujący (430 p.)

92,584 zapytań

141,434 odpowiedzi

319,671 komentarzy

61,968 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...