• 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

Aruba Cloud - Virtual Private Server VPS
0 głosów
160 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 202 wizyt
pytanie zadane 21 września 2023 w Visual Basic przez magda_19 Gaduła (3,080 p.)
0 głosów
0 odpowiedzi 321 wizyt
pytanie zadane 26 listopada 2020 w Visual Basic przez ZenekMarjewka Nowicjusz (120 p.)
+1 głos
1 odpowiedź 465 wizyt
pytanie zadane 25 września 2020 w Visual Basic przez doeg Początkujący (430 p.)

93,327 zapytań

142,323 odpowiedzi

322,397 komentarzy

62,658 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...