Weź Koleżanko sprawdź makro dla załączonego pliku... Potem porównaj ze swoim plikiem.
Spróbuj takiego makra. [syntax=vbscript] Sub Kopiowanie() Dim arkA As Worksheet, arkB As Worksheet, arkZest As Worksheet Dim OstA&, OstB&, GdzieWkleic&, PierwszyWiersz%, IleKolumn% Set arkA = ThisWorkbook.Worksheets("aaa") Set arkB = ThisWorkbook.Worksheets("bbb") Set arkZest = ThisWorkbook.Worksheets("Zestawienie") OstA = arkA.Cells(Rows.Count,...
Powinieneś załączyć przykładowy plik Excela, bo za dużo jest niejasności w tym, co napisałeś. Przykładowy kod, który działa wg Twojego opisu: [syntax=vbscript]Sub AddSheets() ' zakładamy, że nazwy nowych arkuszy ' są w komórkach od B5 w dół Dim ostw As Long, w As Long ostw = Arkusz1.Cells(5, 2).End(xlDown).Row For w = 5 To ostw Sheets.Add(After:=Sheets(Sheets.Count))....
No tak. Miałeś ActiveSheet. [syntax=vbscript]Sub Drukuj_jezeli() Dim Arkusz As Worksheet For Each Arkusz In Sheets With Arkusz If .Name <> "Dane z zam" And .Name <> "Arkusz1" Then If Application.WorksheetFunction.CountIf(.R... ">0") > 0 Then .PrintOut .ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "D:\test\pdf\" + .Range("f7")...
Po co kompilator? Mała podpowiedź - klawisz F8 w kodzie VBA. To co chcesz uzyskać zrobisz takim prostym kodem: [syntax=vbscript]Sub DzialajNaPlikach() Application.ScreenUpdating = False Dim Sciezka As String, Plik As String, PlikZrodlowy As Workbook, ArkuszDocelowy As Worksheet Sciezka = "c:\sas\" Plik = Dir(Sciezka & "*.xls*") Set ArkuszDocelowy...
bozio891 W twoim arkuszu wystarczy zmienić zakres obowiązywania nazwy AktywnyWiersz z arkusza na cały skoroszyt (najprościej usunąć nazwę, przypisać ją ponownie ale zakres dać skoroszyt i odwołanie "=0") Zaznaczanie będzie działać w każdym arkuszu gdzie masz ustawione formatowanie warunkowe (październik i grudzień nie mają) :)
Z ActiveX nie trzeba aktywowac arkuszy i zaznaczyc checkBox,[może mieć taką samą nazwę (na różnych arkuszach)]
wyskakuje jeszcze błąd z tą samą nazwą arkusza W Skoroszyt zawierający makra zostawić tylko jeden arkusz i dać mu jakiś unikatową nazwę(ale Excel, sam zmienia nazwę (dodaje (2)), a następnie zmiany nazwy na nazwę skoroszytu) Chcesz wybrać pliki indywidualnie? Wtedy [syntax=vb] Sub zbior() Dim wb As Workbook Do fl = Application.GetOpenFilename("ExcelFiles....
Spróbuj: [syntax=vbnet]Sub d() Application.ScreenUpdating = False For Each s In ThisWorkbook.Sheets s.Cells.FormatConditions.Delete Next s Application.ScreenUpdating = True End Sub[/syntax]
Przy okacji trochę mi sie koncepcja zmieniła - gdybym musiał wykluczyć więcej niż jeden arkusz - to dałoby się? Można wykluczać arkusze, można też uwzględnić tylko te z listy... Wykluczanie generalnie można zrobić tak: - wykluczasz Arkusz1, Arkusz2 i Arkusz3, drukujesz pozostałe[syntax=vbscript]If ws.Name <> Arkusz1.Name And ws.Name <>...
Zmieniłem miejsce wywoływania procedury "Ustal_zakres". Zdaje się, że musi być dla każdego arkusza osobno. Sprawdź, czy działa. Jeśli tak, to można wyrzucić z Workbook_open.
Wygląda na to że bez zmian dla przykładu jeden wiersz a arkuszu Arka w którym sformatowałem ceny kolorem czerwonym: Sam chciałeś W nagranym przeze mnie makrze takie wklejanie daje taką linijkę kodu: Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats Niestety nie wiem czy można ja dopisać do Twojego makra. Niestety nie potrafię z kodu wychwycić...
No tak. Mój błąd, bo powinno być w innej kolejności. Sorry, ale dzisiaj sobota ;) Coś tam (w załączniku) kopiuje. Przeanalizuj, dostosuj do własnych potrzeb.
Poczytaj w helpie excela o funkcji "wyszukaj pionowo" lub "vlookup"
[syntax=vbscript]Sub Dzialaj() Application.ScreenUpdating = False Dim Tekst As String Sciezka = "C:\PlikiExcela\" Tekst = "mój tekst" Plik = Dir(Sciezka & "\*.xls*") While Plik <> "" Call Wyszukaj(Sciezka & Plik, Tekst) Plik = Dir() Wend Set fso = CreateObject("Scripting.FileSystemObject... Set s = fso.GetFolder(Sciezka) For Each p In s.SubFolders...
Makro przygotowane w Excelu 2003 (ale powinno działać): Sub Makro1() For a = 3 To 8 'te arkusze bierze pod uwagę Sheets(a).Select If Range("J1") > 0 Then ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True End If Next End Sub
jestem na to za cienki w uszach :D Dla "grubszych" też są problemy z wypełnieniem tak wielu wymagań :crazyeyes: Efekt taki jak na zrzucie: 919825 można jednak uzyskać na bazie kodu 919828
Set Wb=Open(Fn) ==> Set Wb = Workbooks.Open("D:\abc\" & Fn) Zbyt dosłownie potraktowałeś ogólny zapis o otwarciu pliku.
To[syntax=vbscript]For Each Wks In ThisWorkbook.Sheets If Wks.Name <> "Źródło" Then Wks.Delete Next Wks[/syntax]wyrzuć
Być może, ale co z powtarzających się kombinacje "data transakcji - kwota - numer karty" ? Z dużej bazy danych takich zdarzeń mogą być spowoduje że wiele niejasności. Skąd się bierze dane w arkuszu RAP? (źródło) Jest to możliwe, w RAP daty transakcji z dokładnością do sekundy?
Może być w ten sposób? (kolumny pomocnicze można ukryć) Co prawda załączyłaś dane gdzie zawsze był nr transakcji ale działa też jak go wykasujesz -uwzględnia to. edit: podmieniłem trochę formuły by było łatwiej kopiować w bok. Może trochę utrudniłem zrozumienie formuły ale... Główna formuła np. dla "a" w danym miesiącu to: =SUMA.ILOCZYNÓW((C1:C10000="a")*1;(A1:A1...
A czy jest możliwość stworzenia makra, które po kliknięciu przycisku stworzy automatycznie arkusze dla wszystkich osób (i nada nazwy takie jak w pierwszej kolumnie tabeli tj. nazwisko i imię), a jeśli arkusz dla danych osób już istnieje, to je pominie. Można np tak: 968207
Dodano po 3 [syntax=vb]Sub Copy() For Each cell In Sheets(2).Range("A:A") If cell.Text = "" Then Exit For Rows(cell.Row & ":" & cell.Row).Copy Sheets(cell.Value).Cells(Rows.Count, 1).End(xlUp).Offset(1) Next End Sub [/syntax] tak dobrze
Jaky format w A1? Sprobuj Sheets(Range("A1").Text).Select
Witaj Cos takiego
było by super Co było by? Testowalem Twój kod na XL2007 i XL2003 (inne nie mam) - wszystko dziala poprawnie
Zacznij z petli For Each c In Sheets(1).Cells.SpecialCells(xlCellTypeA...
Zakładając że w arkuszu 1 w kolumnie A kody nie są powtarzane oraz w arkuszu 2 i 3 tylko kody jak w arkuszu 1 [syntax=vb]Sub porownaj() Dim bd As Range Set bd = Worksheets("4").Cells Worksheets("1").Activate r = 1 While Cells(r, 1) <> "" rd = Application.CountA(bd.Columns(1)) + 1 Cells(r, 1).Resize(, 2).Copy bd(rd, 1) Cells(r, 3).Copy bd(rd, 5)...
Zmienna 'tblArkusze' jest tablicą przecież. Musisz w pętli [syntax=vbscript]For i = LBound(tblArkusze) To UBound(tblArkusze) With Sheets(tblArkusze(i)) .Cells.Clear .AutoFilterMode = False End With Next[/syntax]
I do not know how to do that. Macros are Google Apps Script, which runs in Google's servers rather than your computer. Their code has virtually no access to resources in your computer, such as the printer . Zamiast drukowania zrób makro do generowania pliku PDF, który potem po pobraniu możesz wydrukować. [url=https://developers.google.com/apps-...
Dzień dobry Jak w Excelu mogę zrobić za pomocą makra, aby dla danego użytkownika1 były widziane wszystkie arkusze (arkusz1, arkusz2, arkusz3, ..., arkusz100) w skoroszycie, a dla użytkownika2 dwa arkusze (arkusz1, arkusz2), a dla użytkownika3 (arkusz1, arkusz3). Jeśli nie ma użytkownika w bazie, to komunikat "brak dostępu do danych" AI: W jaki sposób...
Jeśli dobrze "odczytałem" Twoje rysunki i opisy :crazyeyes: to efekt taki jak na zrzucie :spoko: 979159 można uzyskać poprzez makro powiel w załączonym pliku 979160 Jeśli będziesz chciał mieć plik "wielokrotnego" użytku :please: to każdorazowo musisz go "odświeżyć" poprzez oczyszczenie makrem Usun :!: z poprzednich arkuszy (bo nie może być 2 arkuszy...
Nagraj makro jak robisz to czego oczekujesz od makra.
jak zapisać dla zmiennych nazw arkuszy Jeśli zadeklarujesz jako stringi i będziesz tworzył funkcjami tekstowymi nowe nazwy arkuszy to możesz to zrealizować np [syntax=vbscript]Sheets("dest").Copy After:=Sheets(4) Sheets("dest (2)").Select Sheets("dest (2)").Name = nazwa dWb.Save[/syntax]
W kodzie modulu skoroszytu dla wszyskich arkuszy [syntax=vb] Private Sub Workbook_SheetActivate(ByVal Sh As Object) Range("C1").Activate End Sub [/syntax] albo w kodzie określonego arkusza [syntax=vb] Private Sub Worksheet_Activate() Range("C1").Activate End Sub [/syntax]
Z arkusza1 robię raporty w osobnych arkuszach Efekt taki jak na zrzucie 1041538 automatycznego kopiowania wyfiltrowanych danych z arkusza1 do kilku arkuszy :idea: (z nazwami arkuszy wg filtrowanych danych :D ) można zrealizować przykładowo tak jak w załączonym pliku. 1041541 Makro można uruchomić skrótem klawiaturowym ctrl+r :!: , dla dowolnej (jeśli...
Poczytaj o WYSZUKAJ.PIONOWO, a jeżeli makro to o VLOOKUP.
Koledzy dobrze radzą, ale to trzeba wdrażać od początku projektu. Więc na przyszłość trzeba to zaplanować inaczej. Tymczasem jednak potrzebne jest rozwiązanie doraźne, polegające na kopiowaniu tego co jest. Na razie to jest ilość danych, z którą Excel sobie poradzi, ale jak danych będzie przybywać, to kopiowanie będzie trwało coraz dłużej. Ponieważ...
Jak ograniczyć zakres tworzonego przez makro zestawienia tylko do pierwszego w kolejności arkusza Jeśli w plikach z danymi występuje kilka arkuszy :?: to musisz skorygować kod makra wymieniając odpowiedni fragment na: [syntax=vbscript]Do Until Len(Plik) = 0 Licznik = Licznik + 1 Set Skor = Workbooks.Open(Folder & Plik) Set Ark = Skor.Worksheets(1)[/syntax]
Czyli algorytm mniej więcej taki: 1. Wyszukujesz ostatni arkusz i zapamiętujesz jego nazwę w zmiennej tekstowej, np Src. Metoda wyszukania dowolna, arkuszy jest zwykle nie tak dużo, można przejrzeć w pętli wszystkie. 2. Tworzysz w zmiennej np Dst nazwę nowego arkusza i tworzysz arkusz z taką nazwą: Sheets.Add.Name = Dst 3. Kopiujesz dane z jednego arkusza...
żeby kopiowało tak jak kopiuje ale bez otwierania np. zmiana1 i zmiana2 Makro działa w chwili otwarcia arkusza "podsumowanie". Wszystkie dane które były wprowadzone w zmiana1, zmiana2, zmiana3 makro kopiuje i wykasuje dane z arkuszy zmiana1, zmiana2, zmiana3. Jak w piątek nie otwierac "podsumowanie", dane pozostaną aż do poniedziałku, a raczej do czasu...
Próbowałem pozmieniać nazwy arkuszy na "ActiveSheet" A tak? [syntax=vbscript]Sub Sort1() With ActiveSheet .Range("F607:J617").Select .Sort.SortFields.Clear .Sort.SortFields.Add Key:=Range( _ "H607:H617"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _ xlSortNormal End With With ActiveSheet.Sort .SetRange Range("F607:J617") .Header = xlGuess...
dubel i blokada wpisu lub informacja, że podobny wpis istnieje gdzieś we wszystkich czterech arkuszach Tego bez makra nie zrobi się. Poza tym makro nie gryzie. Makro to cześć Excela... Makra nie trzeba przerabiać, gdy ilość arkuszy się zmieni. P.S. W Twoim pliku można duplikować dane w kolumnie B.
Takie proste makro powinno załatwić sprawę: [syntax=vb]Application.ScreenUpdating = False Set wssuma = Worksheets("Suma") ost_wiersz_sumy = wssuma.Cells(wssuma.Rows.Count, 1).End(xlUp).Row For i = 2 To ost_wiersz_sumy With Worksheets(wssuma.Cells(i, 1).Value) ost_wiersz_arkusza = .Cells(.Rows.Count, 2).End(xlUp).Row .Range("B" & ost_wiersz_arkusza +...
Ok teraz masz kryteria w tablicach w kodzie VBA w razie jakbyś chciał dodać kryterium, musisz zwiększyć tablicę o 1 i dopisać do tego dodatkowego elementu kryterium z gwiazdkami. Jak zobaczysz kod to chyba będziesz wiedział o co kaman. Dodałem też zabezpieczenie przed kliknięciem dwa razy na makro
Nie ma uniwersalnego rozwiązania w takim przypadku. Można oczywiście zapisać plik z makrem jako dodatek i aktywować go w oknie "dodatki", ALE: jeśli ktoś zmieni nazwy, kolejność indeksów arkuszy (jeśli nie nazwy) to kicha. Spróbuj może w ten sposób: 1. Dostajesz plik z logami (gdzieś trzeba by go zapisać). Tutaj arkusz z danymi musi być rozpoznawalny....
Witam, A czy konieczne jest do tego makro i kopiowanie za jego pomocą? Nie lepiej utworzyć tyle arkuszy ile jest krajów np. utworzyć jeden wzorcowy i powielić. Dane pobierać poprzez odwoływanie się do arkusza zbiorczego: - funkcje WYSZUKAJ, PODAJ.POZYCJĘ, PRZESUNIĘCIE Albo jeżeli jest to zawsze ten sam układ danych to zrobić odwołania ręcznie, na stałe.
Długo nikt nie odpowiada, więc chyba coś tu nie jest jasne. Excel może działać (upraszczając nieco) poprzez formuły lub poprzez makra. Formuły nie mogą niczego przenosić, mogą jedynie "kopiować", a ściślej zwracać wynik tam, gdzie wcześniej wpisano formułę, pozostawiając dane źródłowe bez zmiany. Formuły działają automatycznie, przeliczają się same,...
Pętlę możesz utworzyć na różny sposób, np. Sub Kopia_co_5() Application.ScreenUpdating = False Dim x As Long For x = 1 To 1000 ' na początek wstaw np. 50 zamiast 1000 Sheets("Arkusz1").Select Rows(5 * x).Select Selection.Copy Sheets("Arkusz2").Select Rows(x).Select ActiveSheet.Paste Sheets("Arkusz1").Select Next x Range("A" & x).Select Application.CutCopyMode...
Do powielania arkuszy i adaptacji formuł możesz wykorzystać makro z załączonego pliku :D - zaczyna pracę dopiero od arkusza 2.2 :!: i działa w ten sposób, że po wybraniu 1 arkusza w skoroszycie (tj. o najwyższej numeracji w nazwie :D ) - poprzez dwuklik myszką w ten arkusz - automatycznie kopiuje arkusz i ustawia nową nazwę i podmienia formuły :spoko:...
makro import arkuszy tworzenie arkuszy makro makro blokowanie arkuszy
uszkodzić wyrzynarka budowa falownik jednofazowy punto instalacja radia
cabletech urz0338a naprawa dysku twardego
Jak zbudować wiatę z dachem jednospadowym? Zagięty wężyk w Siemens EQ9 a wolny przepływ kawy