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

92,669 zapytań

141,567 odpowiedzi

320,036 komentarzy

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

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!

...