Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Data v Excelu - přidání řádků dle daných čísel

Dobrý den,

jako ubytovací zařízení musíme hlásit ubytování cizinců. Bohužel export dat z našeho systému vypadá takto: 6REhRg.png jsou tam všechna data, která potřebujeme, ale máme vždy řádek toho kdo rezervaci udělal a k němu hosty (zbytek rodiny) v předposledním sloupci. v Posledním sloupci je počet lidí celkem na daném místě.

Pokud bych měl vše po řádcích, tak si již pospojuji automaticky data, změním formátování apod. Nedokáži však automaticky udělat to, aby podle třeba čísla Excel přidal N-1 řádků a ty vyplnil podle vzoru "rezervátora" (ideálně i vypsal konkrétní jména a data narození do přidaných řádků, ale to bych si případně již vypsal ručně.

Asi na to půjde nějaké makro, neumíte ho někdo sepsat?

Díky za případné nápady!

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
rýchly nástrel, nestíham Sub Doplnenie() Application.ScreenUpdating = False prvy = 2 For i = 1 To R…
robert13 11.07.2017 14:30
robert13
Ahoj, sorry že se do toho pletu. Jelikož nemám noc rád Select (i když v tomto případě je to asi jedn…
Siki83 11.07.2017 17:49
Siki83
Ještě mě napadlo řešení bez cyklu. Sub Doplnenie() Dim prvy As Byte Application.ScreenUpdating = Fa…
Siki83 11.07.2017 20:21
Siki83
Ahoj Siki, dáwno som Ťa nevidel! Konečne sa tu zas objavilo niečo na Excel, však? :-D
robert13 12.07.2017 10:19
robert13
Ahoj Roberte, jo jo máš pravdu, v poslední době se mi nedostává volného času. Tak sem kouknu jen spo… poslední
Siki83 13.07.2017 22:58
Siki83

rýchly nástrel, nestíham

Sub Doplnenie()
    Application.ScreenUpdating = False
    prvy = 2
    For i = 1 To Range("A1").End(xlDown).Row - 1
        For j = prvy To prvy + Range("O" & prvy) - 2
            Rows(j & ":" & j).Select
                Selection.Copy
                Selection.Insert Shift:=xlDown
        Next j
    prvy = prvy + Range("O" & prvy)
    Next i
    Application.CutCopyMode = False
    Range("A1").Select
End Sub

ďalej sa to dá tiež zautomatizovať.
Ak Ti s tým niekto zatiaľ neporadí, zajtra môžem pokračovať

Ahoj, sorry že se do toho pletu. Jelikož nemám noc rád Select (i když v tomto případě je to asi jedno), co takhle?:

Sub Doplnenie()
    Application.ScreenUpdating = False
    prvy = 2
    For i = 1 To Range("A1").End(xlDown).Row - 1
        For j = prvy To prvy + Range("O" & prvy) - 2
           With Rows(j & ":" & j)
                .Copy
                .Insert Shift:=xlDown
           End With
        Next j
    prvy = prvy + Range("O" & prvy)
    Next i
    Application.CutCopyMode = False
    Range("A1").Select
    Application.ScreenUpdating = False
End Sub

Ještě mě napadlo řešení bez cyklu.

Sub Doplnenie()
    
Dim prvy As Byte
    
Application.ScreenUpdating = False
    
    prvy = 2
           With Rows(prvy & ":" & prvy)
                .Copy
                .Resize(Range("O" & prvy) - 1).Insert Shift:=xlDown
           End With
    Application.CutCopyMode = False
    Range("A1").Select
Application.ScreenUpdating = False
End Sub

Zpět do poradny Odpovědět na původní otázku Nahoru