• 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

0 głosów
382 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 (256,600 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 492 wizyt
pytanie zadane 21 września 2023 w Visual Basic przez magda_19 Gaduła (3,080 p.)
0 głosów
0 odpowiedzi 386 wizyt
pytanie zadane 26 listopada 2020 w Visual Basic przez ZenekMarjewka Nowicjusz (120 p.)
+1 głos
1 odpowiedź 593 wizyt
pytanie zadane 25 września 2020 w Visual Basic przez doeg Początkujący (430 p.)

93,632 zapytań

142,558 odpowiedzi

323,058 komentarzy

63,141 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2900p. - dia-Chann
  2. 2870p. - DziarnowskiJ
  3. 2827p. - Łukasz Piwowar
  4. 2783p. - raydeal
  5. 2758p. - Adrian Wieprzkowicz
  6. 2713p. - rucin93
  7. 2579p. - Łukasz Eckert
  8. 2523p. - Maurycy W
  9. 2459p. - CC PL
  10. 2082p. - Michal Drewniak
  11. 1885p. - robwarsz
  12. 1851p. - Mariusz Fornal
  13. 1811p. - rafalszastok
  14. 1600p. - Rafał Trójniak
  15. 1588p. - Tomasz Bielak
Szczegóły i pełne wyniki

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

Kursy INF.02 i INF.03
...