< návrat zpět

MS Excel


Téma: Kopírování buněk A9:F108 ze souboru do souboru rss

Zaslal/a 20.11.2014 13:08

Dobrý den, prosím o radu. Potřebuji makro, které spustí okno kde vyberu jiný excel a ono z něj zkopíruje buňky A9:F108 a vloží je jako hodnotu do stejné oblasti v aktivním listu.

Moc děkuji za jakoukoliv radu

Zaslat odpověď >

icon #022478
avatar
Tu je kostra, zvyšok si snáď doladíš
Option Explicit

Sub Test()
Dim IsOpen As Boolean, MyArr As Variant, Msg As Byte, MySplit As Variant, wb As Workbook

With Application.FileDialog(msoFileDialogOpen)
.Title = "Prosim, vyberte subor s datami ku kopirovaniu"
.Show
.AllowMultiSelect = False
If .SelectedItems.Count = 0 Then
MsgBox "Nebol vybrany ziadny subor, niet co kopirovat"
Exit Sub
Else
Msg = MsgBox("Pre spracovanie vystupu ste zvolili subor " & .SelectedItems(1) & vbNewLine _
& "Chcete vystup spracovat skutocne na zaklade dat z tohoto suboru?", vbYesNo)
If Msg = 7 Then
MsgBox "Nepotvrdili ste vyber suboru, z ktoreho chcete vygenerovat vystup."
Exit Sub
End If
End If

Application.ScreenUpdating = False

MySplit = Split(.SelectedItems(1), "\")
MySplit = MySplit(UBound(MySplit))
For Each wb In Workbooks
If wb.Name = MySplit Then
IsOpen = True
Exit For
End If
Next wb
If IsOpen = False Then
Set wb = Workbooks.Open(.SelectedItems(1))
Else: Set wb = Workbooks(MySplit)
End If
End With

MyArr = wb.Sheets(1).[A9:F108]
If IsOpen = False Then wb.Close
Set wb = Nothing
ThisWorkbook.ActiveSheet.[A9:F108] = MyArr
Erase MyArr
Application.ScreenUpdating = True
End Sub
citovat
#022529
avatar
Moc děkuji, ale nevím kde je problém, celé to proběhne jak má, ale na konci to jen vymaže oblast do které se má vkládát.

Nevíte v čem může být potíž?
Děkujicitovat
icon #022531
avatar
To makro rozhodne nič nemaže. Zapisuje dáta do oblasti A9:F108 aktívneho listu zo súboru, ktorý zvolíš. Takže, pokiaľ ti akože niečo maže, tak zapíše do A9:F108 zo súboru, ktorý v tej samej oblasti na liste 1 neobsahuje žiadne dáta. Môže sa to potom javiť ako mazanie. Skontroluj si, či máš na liste 1 (Sheets(1)) v zdrojovom súbore v oblati A9:F108 nejaké data. Over si, či voláš správny list, z ktorého zamýšľaš data kopírovať.MyArr = wb.Sheets(1).[A9:F108]citovat
#022584
avatar
No jasně !!!

Jsem to ale, první list je jen úvod, děkuji!

Pěkný den!citovat
#022668
avatar
Mockrát děkuji, maká to skvěle, chci se zeptat dá se nějak jednoduše zapsat, když těch oblastí je více, nebo musím pro každou definovat MyArr?
Děkuji
Petrcitovat
icon #022669
avatar
Neexistuje jednoznačná odpoveď, určite existuje viacero možných riešení, ale to s MyArr funguje; pre viacej oblastí postupne vždy danú oblasť načítať do MyArr, skopírovať do cieľového umiestnenia a MyArr použiť následne pre načítanie dát z inej oblasti. Tak stále dokola.
MyArr som použil hlavne ako alternatívu ku Copy - PasteSpecial (values).citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje