Aktywne Wpisy
wargi-sromowe-mniejsze +1193
Niedługo mija 25 lat jak z kumplami na naszej miejscówce w lesie zakopaliśmy stalową skrzynkę zawierającą:
- notes z naszymi wpisami
- butelkę słynnej nalewki marki #keleris
- butelkę wina szlachetnej marki Jabłuszko Sandomierskie
- paczkę fajek marki Sobieskie
Skarb został zakopany przez grupę 4 przyjaciół celem ponownego odkopania go i konsumpcji 25 lat później jako swoisty test długowieczności naszej przyjaźni. Mieliśmy po 17 - 18 lat, dziś jesteśmy po czterdziestce. Niestety
- notes z naszymi wpisami
- butelkę słynnej nalewki marki #keleris
- butelkę wina szlachetnej marki Jabłuszko Sandomierskie
- paczkę fajek marki Sobieskie
Skarb został zakopany przez grupę 4 przyjaciół celem ponownego odkopania go i konsumpcji 25 lat później jako swoisty test długowieczności naszej przyjaźni. Mieliśmy po 17 - 18 lat, dziś jesteśmy po czterdziestce. Niestety
Marek_Tempe +133
Macie tak czasem, że odpisujecie komuś, piszecie staranny, przemyślany, merytoryczny post a potem dopada Was myśl, a na #!$%@? mi ta dyskusja jest w ogóle potrzebna i nie wysyłacie?
Edit: Mam tak w 9/10 przypadków.
Edit: Mam tak w 9/10 przypadków.
Walcze aby wklejał mi zakres w kazdy sheet o nazwie od 1-10.
Excel natomiast 1-10 uważa za numeracje sheetow chyba bo wkleja mi wartosc nawet gdy shett sie nazywa jakos inaczej.
Jak ogarnac ten loop??
mam cos takiego
Sub wkle()
Dim i As Integer
Dim sh As Worksheet
For i = 1 To 12
ActiveSheet.Range("S46:U52").Copy
Worksheets(i).Range("S46:U52").PasteSpecial ----------------- tu wywala mi blad
Next i
End Sub
Worksheets(i).Activate i potem linia z paste special
Możesz działać tylko na aktywnym sheecie, to Cię limituje.
ok to jeden blocker za nami.
tylko, że on mi wtedy wkleja wartosc w kazdy sheet, a ja chce zeby wklejal tylko w te ktore sie nazywaja 1-12 :)
1. sprawdził wszystkie skoroszyty, może poprzednio użyte makro wprowadza zmiany w pierwszych 12 a nie we wszystkich, wtedy da się to uratować
2. Spróbował drugiej metody adresowania skoroszytu Sheets(CStr(i)) pod tym samym kątem. Któreś z tych 2 powinno zadziałać albo dla skoroszytów 1-12 albo dla 12 pierwszych skoroszytów.
ok kolejny blocker rozwiazany. to dziala natomiast jak nie ma ktoregos z 12 sheetow to mi wywala error. jak to obejsc?
to juz ostatnie na dzis i ide spac :)dzieki
Sub wkle()
Dim sh As Worksheet
Dim i As Long
For i = 1 To 12
ActiveSheet.Range("S46:U52").Copy
Set sh = Sheets(CStr(i))
sh.Range("S46:U52").PasteSpecial
Next i
End Sub
Żeby nie wywalał błąd to wyłącz obsługę błędów ;)
On error resume next
Set sh = Sheets(CStr(i))
sh.Range("S46:U52").PasteSpecial
On error goto 0
Zrób to tak:
Sub wkle()
Dim sh As Worksheet
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Weekly Volume Calc")
Dim rng As Range
Set rng = ws.Range("S46:U52")
Dim i As Long
Dim j As Long
For i = 1 To 12
For j = 1 To Worksheets.Count
If Worksheets(j).Name = CStr(i) Then
Set sh = Sheets(CStr(i))
sh.Range("S46:U52").Value = rng.Value
End If
Next j
Next i
End Sub
Zmień sobie nazwę
a gdybym chcial "Set rng =..." ustawic 3 range to jak to zrobic?
Set rng = ws.range("S46:U52")
Set rng = ws. range("S146:U152")
Set rng = ws. range("S246:U252")
I wtedy w kazdy z tych rng wkleji mi to co skopiuje?
W ten sposób nadpisałbyś poprzednie Range, więc rng byłoby tylko takie jak w ostatniej linijce, czyli
ws. range("S246:U252")
Zadeklaruj po prostu kilka innych Range'ów
Dim rng1 As Range
Dim rng2 As Range
Dim rng3 As Range
Set rng1 = ws.range("S46:U52")
Set rng2 = ws. range("S146:U152")
Set rng3 = ws. range("S246:U252")