k = b.Range("A1:AN1").Find(What:= Cells(1, x) , LookIn:=xlValues, LookAt:=xlWhole, _
[syntax=vbscript]Sub Parts() rek = 10000 ow = Sheets("allin").Cells(Rows.Count, "A").End(xlUp).Row s = 1 For x = 1 To ow Step rek Sheets("allin").Select If x + rek <= ow Then Range(Cells(x, 1), Cells(x + rek - 1, 1)).Copy Else Range(Cells(x, 1), Cells(ow, 1)).Copy End If Sheets.Add ActiveSheet.Name = "part " & s s = s + 1 ActiveSheet.Paste Next...
1. Załóż filtr w oryginalnej tabeli (niepuste) -> zaznacz całą tabelę i wtedy dopiero kopiuj dane . Może nawet lepiej wklejać "tylko wartości" niż dane z pełnym formatem każdej kopiowanej komórki. Zrobisz to w jednym ruchu zamiast korzystać z pętli (2000 razy). Po nagraniu makra można edytować zaznaczony zakres tak, żeby najlepiej nam odpowiadał. 2....
Odwołaj się w pętli do arkusza źródłowego/docelowego przez Worksheets("nazwa_arkusza"), a po kropce do konkretnej komórki: albo w postaci .Range("E" & i) albo w postaci .Cells(i, 5), gdzie i - nr wiersza źródła (ew. jeżeli zrobisz w pętli for each c in ...., to możęsz użyć c.Row). Do tego druga zmienna np. j dla wiersza arkusza-celu, czyli: j = 1 for...
[syntax=vbscript]Sub NowaKolumna() nk = Cells(60, Columns.Count).End(xlToLeft).Column + 1 Range("H60:H80").Copy Cells(60, nk) Application.CutCopyMode = False End Sub [/syntax]
Coś takiego: [syntax=vb] Sub szukajDanejWartosci() Dim danaWartosc As Variant Dim liczbaWierszy As Integer Dim liczbaKolumn As Integer Dim i As Integer Dim j As Integer liczbaWierszy = 20 liczbaKolumn = 4 danaWartosc = 0 '<-- TEJ wartości szukasz w arkuszu For i = 1 To liczbaWierszy For j = 1 To liczbaKolumn If (Cells(i, j) = danaWartosc) Then 'MsgBox...
Zrobiłem dla takiego przykładowego "blabla". O to chodzi?
Myślałem, że Pan odkładanie z powrotem swój kod [syntax=vb] Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) 'Step 1: Declare Variables Dim strRange As String 'Step2: Build the range string strRange = Target.Cells.Address & "," & _ Target.Cells.EntireColumn.Address & "," & _ Target.Cells.EntireRow.Address...
Odnośnie tej drugiej funkcji to to: Kod Visual Basic - Może i jest zbędne ale jest w Twojej "źródłowej" procedurze. Jak zaznaczyłem: bez wiedzy jak ma działać do końca procedura nikt nie jest w stanie dać jasnych rozwiązań. Nie do końca rozumiem ale jak sobie radzisz to nie ma problemu ale ...: Data początkowa z kolumny C Kolumna C ma 65 tys komórek...
Czy da się to jakoś zrobić w sprytniejszy sposób? Tak makro.
Cześć. Sprawdź, czy takie coś Ci pasuje: [syntax=vbscript]Sub Rep() Const RFrom = "A1" Const RTo = "H1" Const Src = 3138 Dim x As Long For x = Range(RFrom).Column To Range(RTo).Column Columns(x).Replace what:="#", replacement:=Cells(Src, x).Value, _ LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _ SearchFormat:=False, ReplaceFormat:=False...
Na obrazku efekt działania makra. Dane wejściowe z załącznika. Sprawdź, czy o to Ci chodzi (liczby w kolumnach D i F są sumowane). http://obrazki.elektroda.net/17_12597370...
W załączniku przykład.
Podstaw zmienną z Nr kolumny wyniku wyszukiwania: kol =Cells.Find(..). column ActiveSheet.Range("$A$2:$P$697").AutoFil... Field:= kol , Criteria1:=RGB(255, _ 199, 206), Operator:=xlFilterCellColor
jest inna, a w 3 wierszu: w kolumnie G - mimo to zaznaczyłeś je na żółto O! No właśnie :) To samo w wierszach 9:12, etc...
No cóż, opis nie jest bardzo czytelny, ale jeśli taki miał być efekt: https://obrazki.elektroda.pl/4588789900_... to kod, który to zrealizuje może wyglądać następująco: [syntax=vbscript] Sub FZ() r = 1 'kolejny sprawdzany wiersz (row) rstart = 0 'numer pierwszego w serii wiersza do którego wklejam wartości, jednocześnie numer wiersza...
[syntax=vb]Range(Cells(lOstRw, 12).Offset(1, 0), Cells(lOstRw, 19).Offset(1, 0)).FormulaR1C1 = "=SUM(R[-" & lOstRw & "]C:R[-1]C)"[/syntax]
Przyznam się, że dopiero się uczę programować, ale jakbyś mi pokazał jak to zrobić dla tych trzech kolumn, to pewnie bym już sobie poradził dla większej ich liczby. Kolega mnie już uprzedził :)
Witaj [syntax=vb] Sub InsSubtot() Dim bs As Range Set bs = ThisWorkbook.Sheets(1).Cells Dim r&, rp& ow = bs(Rows.Count, 8).End(xlUp).Row r = 2: rp = 2 While bs(r, 8) <> Empty r = r + 1 If bs(r, 8) <> bs(r - 1, 8) Then bs.Rows(r).Insert bs(r, 5) = "SUMA" bs(r, 6) = Application.Sum(Range(bs(rp, 6), bs(r - 1, 6))) bs(r, 5).Resize(1,...
Makro wykonujące obydwie czynności może wyglądać np. tak: Private Sub CommandButton1_Click() poprz_wartosc = Empty For Each c In ActiveSheet.Range("C1:C6553... 'tu można zawęzić przeszukiwany zakres If c = "dolek" Then ActiveSheet.Cells(c.Row, 4) = poprz_wartosc If Not IsEmpty(poprz_wartosc) And...
Cos takiego For Each c in range("TerminyGORMIK") If c <= Date Then c = "" Next
Druga część warunku pętli to przerwanie w razie powtórnego uruchomienia. Wiersz(e) należy wstawić o jeden niżej (Range("A" & i + 1).EntireRow.Insert) oraz (i = i + how_many + 1) Sub rows_influx() Dim i As Long i = 2 Do Until ActiveSheet.Range("A" & i) = "" Or ActiveSheet.Range("A" & i + 1) = ""...
Skoro nagrało Ci się coś w rodzaju 'ActiveCell.FormulaR1C1 = "=TODAY()' to dopisz pod spodem 'ActiveCell = ActiveCell.Value' i po sprawie. To samo "bardziej po Bożemu": ActiveCell = Date Zamiast ActiveCell może być oczywiście dowolny Range(adres) lub Cells(wiersz, kolumna).
Masz tam dwa rodzaje makr - jedna grupa tylko zmienia kolor tła, druga grupa zmienia kolor tła i dodaje tekst. Nie wiem, czy chcesz ograniczyć działanie wszystkich makr do kolumn C i L, czy tylko tych, które wpisują tekst. W każdym razie do każdego z makr, które mają mieć ograniczony zakres dopisz na początku (pod nagłówkiem) takie 3 wiersze: [syntax=vbnet]...
do C1 wstaw JEŻELI(CZY.PUSTA(A1);"";B1) i ukryj kolumne B, było tutaj też: http://www.elektroda.pl/rtvforum/topic12...
[syntax=vb]Sub q() Application.ScreenUpdating = False Application.Calculation = xlManual Sheets("1").Select ow = Cells(Rows.Count, "A").End(xlUp).Row For X = 2 To ow i = Cells(X, 2) y = 0 While Cells(X + y, 2) = i y = y + 1 Wend y = y - 1 k = 5 Cells(X, 4) = Cells(X, 2) For Z = X To X + y Cells(X, k) = Cells(Z, 3) k = k + 1 Next X = X + y Next Application.Calculation...
Są przynajmniej 2 rozwiązania: 1. drukowanie z Excela arkusza z formatką etykiet 2. powielenie wierszy w Excelu (jak w załączniku) i użycie korespondencji seryjnej w Word.
Przetestuj poniższe makro [syntax=vb]Sub kopiuj() Dim shInv As Worksheet Dim shInpt As Worksheet Dim lOstRwDst As Long Dim lOstrwSrc As Long Application.ScreenUpdating = False Set shInv = ActiveWorkbook.Sheets("Inventory") Set shInpt = ActiveWorkbook.Sheets("Input") lOstRwDst = shInv.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row lOstrwSrc = shInpt.Cells(Rows.Count,...
Tak. Tyle, że w zależności od poziomu zabezpieczeń może być monit lub przy wysokim poziomie może nie działać makro/makra.
Z czym dokładnie masz problem? Nie napiszemy całego skryptu za Ciebie. Pokaz, co już masz, a wtedy doradzimy. Kolumnę zaznacza się tak: [syntax=vb]Columns(2).Select[/syntax]
Gdybyś spojrzał do pomocy VBA, to znalazłbyś takie zdanie: This property applies only to worksheet pages. :( Znalazłem na szybko taki [url=http://www.vb-helper.com/howto_prin... Po modyfikacji do VBA i Twoich założeń powinien wykonywać to czego oczekujesz. Pozdrawiam
Ponieważ kolumna C to trzecia kolumna więc zamień we wszystkich Cells() jedynkę po przecinku na trójkę czyli ,1) na ,3) np.: Cells(1,1) na Cells(1,3) i dla pewności w lini kodu OstWrs = Cells(Rows.Count, 3 ).End(xlUp).Row
Witaj. Zakładając, że oryginalne dane na pierwszym arkuszu, a wynik na drugi: [syntax=vb]Sub upraw() Dim bsk As Range, bsr As Range Dim rb&, rd&, cd&, cm& Set bsk = ThisWorkbook.Sheets(1).Columns(1).Cells Set bsr = ThisWorkbook.Sheets(1).Range("B:J").Rows rb = 2: rd = 2 With ThisWorkbook.Sheets(2) bsk(1).Copy .Cells(1, 1): bsr(1).Copy...
W kodzie arkuszu "konto"[syntax=vb]Private Sub Worksheet_Change(ByVal Target As Range) If Application.Intersect(Target, Range("L4:M2003")) Is Nothing Then Exit Sub If Target.Text = "0" Then Target = "NIE DOTYCZY" End Sub [/syntax]
To bylo tylko fragment makro Wstaw jak w Ciebie - 'On Error Resume Next' - gdy nie ma pustych komorek(xlCellTypeBlanks)
to wtedy mozesz pokombinowac w ten sposób: If Range("A1").Value = 1 Then Columns("C:G").Sel... Selection.EntireColumn.Hidden = False End If i tak dla 2 inne wartości itd, możesz też pokombinować że 1 odsłania DEF i jednocześnie zasłania GHI, 2 na odwrót, wszystko zależy od tego co ci jest potrzebne, pozdro:)
To wtedy raczej dla xlsm, bo xls ma ograniczenie do 255 kolumn... Tu masz makro które możesz sobie dostosować zmieniając tylko parametr ilości liczb (kolumn).
A tak będzie dobrze? Makro Numerowanie()
Jeżeli w komórce ma się "pojawić" napis "Nie dotyczy" a w innym przypadku masz wprowadzać datę to tak jak sam napisałeś w pierwszym poście: tylko proste makro to załatwi. Niestety funkcja jeżeli w tym przypadku to za mało. Kłopot polega że nie masz pojęcia o makrach (jak sam mówisz), a makro trzeba ustawić w "modułach zdarzeniowych" arkusza. Np. takie:...
Makro tworzące pliki z typami. P.S. Miałaś zamieścić przykładowy plik...
Najpierw wyznacz pierwszą wolną komórkę [syntax=vbscript] lastRow = Range("BZ" & Rows.Count).End(xlUp).Row + 1 If lastRow < 3 Then lastRow = 3 End If [/syntax] nastęnie wkopiuj: [syntax=vbscript] Sheets("Dane").Range("BZ" & lastRow) [/syntax]
Można zdefiniować tablicę z nazwami arkuszy w których mają być dokonywane zmiany i przejść pętlą po arkuszach wpisanych do tej tablicy: [syntax=vb]Sub zz() Dim tblArkusze() Dim i& Dim rngTmp As Excel.Range tblArkusze() = Array("I L", "II L", "III L") 'nazwy arkuszy w których mają być wykonane zmiany For i = LBound(tblArkusze()) To UBound(tblArkusze())...
Witam [syntax=vb] Sub podzial_pliku() Dim kol As String Dim wiersz As Integer Dim nazwa As String Dim ark As Worksheet kol = InputBox("Podaj litere kolumny na podstawie ktorej nastapi podzial plikow", "Pytanie") wiersz = InputBox("Podaj numer wiersza od ktorego zacznie sie podzial plikow", "Pytanie") Range(kol & wiersz).Select Set ark = ActiveSheet...
Tak, tak rozumiem tylko jak to sie mówi: " A u mnie to działa normalnie " ciekawe od czego to zależy... ?hmm Niestety Excel to wredny typ. Pusta komórka czasem nie jest pusta a tego nie widać i wiele innych podstępów Micro$hita ... potestuje u mnie jeszcze i dam Ci znać jak coś wyknuje jeszcze Pozdrawiam .... a rzeczywiście .... zwielokrotniłem twoje...
Jak masz tak ładnie popisane "stare:xxxxxxx" i "nowe:yyyyyy" we wszystkich wierszach to nawet nie musisz sięgać ani do wyrażeń regularnych, ani do VBA :please: Wystarczy zrobić odpowiednią formułę (na bazie fragment.tekstu) w kolumnach C i D i przeciągnąć ją na dół kolumny :idea: :idea:
Spróbuj [syntax=vb] Sub mySplit() Dim bs As Range, mar() As String Dim r&, i&, n&, x$, xx$ Dim p&, pd&, ps&, pw&, lmi&, pn&, px&, pf&, pe&, sl& Const dig = "0123456789" Set bs = Sheets("dane").Range("b:g") r = 2 While bs(r, 1) <> vbNullString x = bs(r, 1): n = 0 If bs(r, 1).MergeCells Then n...
O! Ktoś mnie wyprzedził :) http://obrazki.elektroda.pl/7119706200_1...
Pomogę w ten sposób: Tak przypisujesz nazwę z danej komórki Nazwa_z_komorki = Worksheets("KON").Cell... 1).Value i podobnie ilość Ilosc_z_komorki = Worksheets("KON").Cell... 2).Value Do powyższego cells(nr wiersza,nr kolumny) dodanie arkusza: Sheets.Add Nadanie nazwy arkuszowi: ActiveSheet.Name...
Lub naprosto bez makro
(at)lanzul Odpada na pewno konwertowanie do exe-a bo wtedy skoroszyt będzie bez możliwości modyfikacji (tak jak read only) Tzn. pierwsza opcja to załóżmy jeśli arkusz był otwarty 10 razy to 11 raz się nie otworzy. Druga opcja jeśli mam y określoną datę to arkusz się nie włączy To tak jak adamas wspomniał Workbooks_Open ale łatwe do obejścia
[syntax=vb]Sub Powiel() x = 1 Z = 1 While Cells(x, 10) <> "" For y = 1 To Cells(x, 11) Cells(Z, 13) = Cells(x, 10) Z = Z + 1 Next y x = x + 1 Wend End Sub [/syntax]
sklep1(;;zmienna3) 1. Wyedytuj stary wpis z średnikami. 2. Uruchom makro. 3. Otrzymasz nowy wpis
Jeśli dobrze zrozumiałem że trzeba, następnie zdecydowanie tak tylko za co został w A następnie formuła, może tylko numeracji?
Ręce opadają :) To co Ty właściwie chcesz zrobić? ale jeśli dane są pobierane z internetu Dane z internetu wprowadzaj od razu do "z góry upatrzonego" zakresu. lub np z innej komórki Oprogramuj tą "inną komórkę"... Co to znaczy "z automatu"? Żeby coś się zmieniło w arkuszu, najpierw musi się coś wydarzyć.
Zobacz przykład. Makro uruchamiane jest przez dwuklik w komórce z krzyżykiem...
Chamski (podwójne NOT) kod, ale działa. - najpierw wybierasz sobie "co chcesz wstawić" z komórek D1..D6 - potem wybierasz sobie "gdzie to wstawiasz" - komórki A1..A6 O pierwszej nad ranem trudno o lepszy kod :) Myślę, że koncepcję moją już znasz, przerobisz sobie "na swoją modłę" - jak będziesz chciał. Kod wklejasz bezpośrednio w kod arkusza, którego...
Spoko, mogło by wyglądać tak: Sub Makro1() Dim temp As Variant Dim wiersz As Long wiersz = 1 Do While Cells(wiersz, 8) <> "" If Cells(wiersz, 8).Value = 0 Then Cells(wiersz, 10).Cut Destination:=Cells(wiersz, 15) wiersz = wiersz + 1 Loop End Sub Dodano po 2 jaszcze taka uwaga makro działa poprawnie do pierwszej pustej komórki w kolumnie przeszukiwanej
Nic prostszego zarejestrować sobie makro wykonujące to, co chcesz, a potem je poprawić (żeby działało z parametrami np.). Przykład makra ustawiającego 3 pasek jako żółty: [syntax=vb]Sub Zolty() ActiveChart.SeriesCollection(1).Select ActiveChart.SeriesCollection(1).Points(4... With Selection.Format.Fill .Visible = msoTrue .ForeColor.RGB = RGB(255,...
Pobaw się tym.
cześć, potrzebuje napisać makro które będzie kopiować do excela wiele stron internetowych, mam makro które może skopiować zawartość jednej określonej strony internetowej, w excel w określonej kolumnie mam adresowy około stron 800 stron które bym chciał skopiować, jak napisać makro w którym jedyną zmienną bedzie adres strony którą makro skopiuje z kolumny...
Mogę mieć plik w tym samym miejscu i z tą samą nazwą. Do tego dążę - żeby zautomatyzować. Nie chcę tabeli przestawnej bo muszę pracować na tych danych. Przerabiałam to już i się to nie sprawdziło. Dobra odpuśćmy ten temat. Czy możesz mi powiedzieć jak ponumerować wiersze, aby numery szły kolejno, ale jeśli wiersz się powtarza to zwróci ten sam numer?...
Może ktoś inny Ci pomoże...
Właściwie potrzebuję takie proste makro Chciałeś proste, to masz proste.
Chciałbym żeby automatycznie kolorowały się komórki jak w załączonym pliku. Mianowicie jeżeli w wierszu występuje wyraz 'sob' lub 'ndz' automatycznie pokolorował całą kolumnę. Dorobiłem Ci makro. Znajdziesz go przez Alt + F11. Makro możesz edytować, jednak jego nazwa musi pozostać niezmienna.
Witaj, makro powinno działać z przycisku, lub wybierając komorku w kolumnie D?
:arrow: tadkli9743 Zaglądałeś w ogóle do arkusza? A u mnie bez kolumn pomocniczych (lub VBA) ani rusz :( dane z postu #1 http://obrazki.elektroda.pl/9886155100_1... W G1: =LICZ.JEŻELI(B1:E5;PRAWDA) Edit: Aj! Miały być tylko 6-cio cyfrowe http://obrazki.elektroda.pl/6354320300_1... Teraz warunek mam ">99999". Ale, jeśli...
Kolega PRL uszykowl odpowiednie makro.
A po co do tego makro? Można to zrobić prostą formułą w kolumnie I: =if(isblank(h1);na();now()) Kolumnę formatujesz jako "czas" i tyle.
Dodatkowe kolumny z Łączenie A & B & C Tam zastosować podaj pozycie
Pewnie makro masz w kodzie arkusza. Musi być w module... Jeśli to procedura zdarzeniowa, wywołaj je po nazwie (Call NazwaMakraInModule)
A nie wystarczy zastosowanie filtrów w "Zeszyt1.xls"? W załączniku rozwiązanie z funkcjami wyszukiwania i kolumnami pomocniczymi. Przy otwarciu kliknij 'Edytuj łącza' i wskaż właściwy plik.
Cel jest prosty, chcę aby w każdej komórce w kolumne, wstawiało mi makro formułe do momentu kiedy np w kolumnie A będzie cokolwiek wpisane. W programowaniu nie ma 'na przykład. Dlatego pokaż arkusz wejściowy i arkusz po wykonaniu makra.:)
Makra w module1 i w arkuszu: "Dispatch" przy zdarzeniu 'SelectionChange'. Ewentualnie można dodać przycisk... P.S. Dopuszczasz wartości ujemne w kolumnie A? Edit: 21:05 zmieniłem załącznik (pomyłka) :)
Żle Cię zrozumiałem. Chodzi o zliczenie wszystkich wartości bez powtórzeń. Ja założyłem, że chcesz zliczać wartości unikatowe, czyli te, które się nie powtarzają. Możesz spróbować przerobić odrobinę moje makro, jeśli Ci się chce.
No to jak w końcu wygląda to w realu? Bo makro "samo" sobie znajdzie, jeśli będzie "wiedziało" czego szukać. Jak nie będzie danych w kolumnie A, to należy wskazać o którą kolumnę chodzi.
lanzul , teraz to już za bardzo kombinujesz ;-) Przecież załączony csv ma wyraźnie 3 kolumny z danymi, co nawet zaznaczała autorka wątku ... :-)
Lub w inny sposób: [syntax=vb]Sub Kasownik() For Each szukana In Range("1:1") If szukana.Value = "MSISDN" Or szukana.Value = "Kod sprzedawcy" Then kolumna = szukana.Column Columns(kolumna).Delete shift:=xlToLeft End If Next End Sub [/syntax]
Jeśli "komórki", to podejrzewam że chodzi o Excel. Prawda/Fałsz? Skąd makro "ma wiedzieć" gdzie zacząć i kiedy zakończyć? Chodzi o pojedynczą kolumnę?
I chciałoby się Wam pisać takiego (300szt.) tasiemca? Po mojemu, wygodniej utworzyć funkcję dla zakresu (załącznik).
czy funkcja licz.jeżeli będzie tutaj przydatna Aby podzielić wszystko w kolumny najbardziej odpowiedni tutaj makro VBA. Ale najlepszy arkusz Excel niż zdjęcie ekranu. Lub nawet adres strony Web, być może do pobierania danych bezpośrednio z niego.
Brak ograniczeń jeśli chodzi o makro :)
I cisza się zrobiła... No dobra, wypiłem kawę i wyszło mi coś takiego: Edit: A makro w innym pliku. Jednak późno już... Załącznik podmieniłem
Z tego co widzę próbujesz sumować warunkowo dla wybranych klientów? Dlaczego nie używasz filtra? Można odfiltrować niepotrzebne, skopiować do nowego arkusza. W swoim przykładzie odwołujesz się do całych kolumn (Np A:A), co zdecydowanie spowalnia działania na tablicach. Dlatego zamieniłbym zakres na tabelę Excela. (zaznacz, Menu>Wstw>Tabela). Zamiast...
Ale że nie makro czy nie taka formuła?
A jesteś w stanie określić w którym momencie jest uruchamiana procedura "ListaForName" ? I jeszcze jedna próba: jak masz włączony twój plik to: jeżeli masz excel 2003 wybierz menu Narzędzia - Makro - Makra ... - zaznacz "ListaForName" - kliknij uruchom i sprawdz czy jest lista w kolumnie V arkusza Admin jeżeli masz excel 2007 i wyżej to wskaż kartę...
Witam, potrzebuje pomocy w stworzeniu makra które bedzie wynajdowało w ciągu znaków datę. Układ byłby następujący: kolumna A - imię i nazwisko kolumna B - numer pesel kolumna C - tekst z opisem W kolumnie C - znajduje sie ciąg znaków z tekstem, gdzie w pewnym miejscu (niepowtarzającym sie) pojawia sie data w formacie (dd-mm-rrrr). Jako efekt - chcialbym,...
Głupie pytanie ale nie wystarczy zaznaczenie tej kolumny i zamiana tekstu poprzez CTRL+H? Możesz zawsze zarejestrować sobie makro robiące dokładnie tę czynność.
Dzień dobry, proszę o pomoc w napisaniu makro, które wykonuje poniższe czynności: 1. Zaznacz całą widoczną tabelę (tabela może mieć różną ilość wierszy). 2. Skopiuj zaznaczoną tabelę do kolejnego arkusza. 3. Dodaj kolumnę z lewej strony tabeli, która będzie częścią tej tabeli. 4. W nowo dodanej kolumnie wypełnij wartości do końca tabeli (tabela może...
Ale nie rozumiem jak jest z zapisem liczby z kalkulatora do jakieś komórki w arkuszu Jak można nie rozumieć, że ty sam napisałes? To znaczy: Z pierwszego arusza "Sheets(1)" odczytaj komórkę A1 i dodaj do niej liczbę z TextBox1 ("TextBox1.Value" = przekształć tekst na liczbę). Wynik zapisz do pierwszego arkusza "Sheets(1)" do komórki A1 = "Range("A1")...
Witam! Przy takim układzie danych (powtarzające się wartości w kolumnach :!: ) :cry: IMHO musisz szukać rozwiązania w zaawansowanym filtrowaniu :D np jak w https://www.elektroda.pl/rtvforum/viewto...
Makro musi uwzględniać "budowę" tekstu. Podeślij fragment.
No to albo kolumna pomocnicza z filtrem (wtedy masz tylko jeden "klik"-wybierasz 0 ) albo makro. Ponizej z kolumną a makro za chwile podrzucę.
Worksheet_Change uruchamia się tylko w przypadku zmiany wartości jakichś komórek i pracuje tylko na tych zmienionych komórkach więc nie ma ryzyka jakiegoś zapętlenia. Co znaczy "po wybraniu w KOLUMNIE którejś z wartości" - makro ma sprawdzać konkretną kolumnę?
Działa genialnie! Wielkie, wielkie dzięki :) Dodano po 2 Temat do zamknięcia. Użytkownik lanzul zaproponował właściwe, rewelacyjnie działające makro.
Bardzo bardzo dziękuję, wszystko działa :).
No, w ten sposób świata nie zawojujesz ;-) Musisz to zrobić w pętli. Spróbuj tak. [syntax=vbscript] Option Explicit Sub kolory() Dim myRangeA As Range, Kom As Range Set myRangeA = Range("A2:A150") For Each Kom In myRangeA If Not Kom = "zielony" _ And Kom.Offset(0, 1) = "duza" _ Then Kom.Interior.ColorIndex = 31 If Kom = "zielony" _ And Kom.Offset(0,...
a co masz na myśli mówiąc "...podstawiać formuły w osobnej pętli"? Wstaw kolumny, wpisz ręcznie formuły sumowania i przepisz argumenty do makra. Po zakończeniu pętli wstawiającej kolumny i nagłówki (usuń linię z wstawianiem sum), dopisz następną wpisującą tylko formuły.
Dodałem jeszcze możliwość ukrywania kolumn z niepotrzebnymi dniami w miesiącu, aktualizację dni miesiąca na pasku jak również zmiana koloru na szary dni sobota i niedziela. UWAGA!, nie zmieniaj (nie dodawaj nie usuwaj żadnych kolumn i wierszy) bo to spowoduje że makro będzie niepoprawnie działać
Dziękuje bardzo za pomoc :) Chyba, już ostatnie pytanie: Jak zignorować kolumnę o danej nazwie np "Klient 5"? :) Chodzi aby było po nazwie, nie po numerze kolumny :)
Zakładając, że dane w Arkusz2 zajmują dwie pierwsze kolumny (w Excelu) w komórkę B1 należy wpisać: =WYSZUKAJ.PIONOWO(A1;Arkusz2!A:B;2;0) i skopiować w dół.
excel makro kolumna excel ukrywać kolumna makro makro excel kolumna wykres
zasilanie delphi czarny ekran włączyć myszka mieszanka paliwo
Spadki napięcia w domu - przyczyny i rozwiązania Błąd "nie można znaleźć pliku skryptu dll.js" - rozwiązania