także wszystko powinno działać No właśnie nie. Co do twojego kodu to jak chcesz to [syntax=vbscript]Sub Makro_K() On Error Resume Next Range("I20:O119").SpecialCells(xlCellTyp... = "=IF(R9C4=R18C,""X"","""")" End Sub[/syntax]
Może takie makro: [syntax=vbscript]Sub Jedynki() If IsEmpty(Range("A2")) Then Range("A2").Value = 1 ElseIf IsEmpty(Range("B2")) Then Range("B2").Value = 1 Else Range("A2").End(xlToRight).Next.Value = 1 End If End Sub[/syntax] To makro wypełnia po kliknięciu kolejne puste komórki w wierszu 2. zaczynając od A2 (po jednej). Jeśli któraś komórka jest niepusta...
wyeksportowania bez pętli Pętla ma zostać. Otwieranie i zamykanie pliku ustaw poza pętlą. Otwieranie przed, a zamykanie po pętli.
[syntax=vb]Sub Zaznaczeniekomorek() Dim rng, cl, MyRng As Range, szukana As String 'ustalenie zakresu komorek zrodlowych Set rng = Range("A2:A20") szukana = "0" 'dla kazdej komorki w zakresie For Each cl In rng 'jesli zawartosc jest jak szukana If cl.Value Like szukana Then 'dla pierwszej spelniajacej kryterium If MyRng Is Nothing Then Set MyRng = cl.Offset(,...
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]
Makro kopiujące wybrane komórki do nowej zakładki
W pierwszym poście chciałeś aby makro, po wyczyszczeniu zawartości komórki "X25" czyściło listę z zakresu H20:J20. Analogicznie wyczyszczenie X22, X18, X13 czyściło H18:J18, H14:J16, H12:J12, nie zapętlając się w trakcie. Tak to teraz dokładnie działa. To co się dzieje w innych komórkach zależy od algorytmu który realizują Twoje formuły. Niestety nie...
Wyszło mi coś takiego[syntax=vb]Sub Pobierz() Dim nazwa As String Dim ark As Worksheet Dim wrs As Long, j As Integer, i As Long nazwa = "Arkusz2" 'nazwa arkusza docelowego 'tutaj 2 dla porównania z 1 ThisWorkbook.Activate 'gdyby nie był Sheets(nazwa).Range("A2:H65536").ClearCo... 'czyścimy wrs = 2 '1-szy wiersz docelowy j = 3 '1-sza kolumna źródłowa...
Da się. Przypisałem do zmiennych, dla łatwiejszej analizy.
Spróbuj [syntax=vb]For Each kom2 In Sheets("Arkusz2").Range("A1:A500") If kom2 <> Empty Then For Each kom1 In Sheets("Arkusz1").Range("A1:A500") If kom1.Value = kom2.Value Then kom2.Offset(0, 13) = kom1.Offset(0, 13) kom2.Offset(0, 14) = kom1.Offset(0, 14) Exit For End If Next End If Next[/syntax]
A widzisz Kolego. Dziękuję za wskazanie błędu. Ja nie napisałem nic oprócz kodu, a wklejony obrazek zawiera błąd! Nie komentuję zasadności, a przede wszystkim wiarygodności CHGPT. Bo: https://obrazki.elektroda.pl/5390855000_... Oczywiście kod jest dla arkusza, a nie modułu skoroszytu. Tak więc umieść kod tuuuuuuu: https://obrazki.elektroda.pl/3727137700_...
Zobacz teraz. Przy komórkach scalonych właściwości Next, Previous i Offset działają trochę dziwnie i trzeba uważać. Dodałem jeszcze kasowanie koloru, gdy w T28 jest zero.
[syntax=vb]Sub usunAE() Dim bs As Range, r&, i& Set bs = Range("A:E") r = bs(Rows.Count, 5).End(xlUp).Row For i = r To 1 Step -1 If bs(i, 5) = 0 Then bs.Rows(i).Delete Next End Sub [/syntax]
Propozycja makro łączącego komórki tak jak chciałaś. Makro wykorzystuje dane z kolumn H i I, zastępuje formuły w komórkach scalanych. Usuwa formuły w kolumnie J (aby umożliwić modyfikację danych w razie potrzeby). Nie ingeruje w formatowanie warunkowe, które było już ustawione w arkuszu. Makro jest zapisane w module uniwersalnym. Działa w arkuszu aktywnym....
Musisz wpisać większą treść wiadomości przed wysłaniem. W przypadku wysyłania plików opisz szczegółowo plik w treści wiadomości. Niech Gulson coś w końcu z tym zrobi.
[syntax=vbscript]Sub Etykiety() Sheets(1).Select Set a = Sheets(2) ow = Cells(Rows.Count, "A").End(xlUp).Row For x = 1 To ow nw = a.Cells(Rows.Count, "A").End(xlUp).Row + 1 For y = 1 To Range("H" & x) Range("A" & x & ":C" & x).Copy a.Range("A" & nw) Range("F" & x).Copy a.Range("F" & nw) nw = nw + 1 Next Next End Sub [/syntax]
[syntax=vbscript]Sub Scal() ow = Cells(Rows.Count, "A").End(xlUp).Row b = 1 For x = 1 To ow If Not f Then b = x f = True End If If Cells(x + 1) <> Cells(x, 1) Then Range(Cells(b, 2), Cells(x, 2)).Merge Cells(b, 2) = Cells(x, 1) f = False End If Next End Sub[/syntax]
jeszcze tylko dodajmy że komórka zawiera kwotę i może być? ;-) Sub Makro1() ow = Cells(Rows.Count, "H").End(xlUp).Row For x = 1 To ow If Cells(x, 8) = 0 And IsNumeric(Cells(x, 8).Value) Then Cells(x, 10).Cut Cells(x, 15) Next End Sub
Próbujesz w OpenOffice uruchomić makro napisane w Excelu? Nie będzie działać. Trzeba przepisać. Mnóstwo informacji znajdziesz w Internecie. Tu przykład makra wydruku z zapisaniem "oryginał/kopia": http://obrazki.elektroda.pl/5534132900_1... Generalnie nie jest to trudne. Trzeba "złapać". Zakres C7:C10 aktywnego arkusza w VBA zapisujesz...
w jaki sposob mozna przeprogramowac makro, tak aby dla niewypelnionych komorek wynik wynosil 0 i nie nastepowalo zatrzymywanie makra? Może tak: [syntax=vbscript]Sub test() Dim lRow&, i&, frm lRow = Cells(Rows.count, "A").End(xlUp).Row Application.ScreenUpdating = False For i = 2 To lRow If Cells(i, "A") = "" Then frm = 0 Else frm = "=" &...
Dopasuj sobie takie makro: [syntax=vbscript]Sub Przelicz() Dim cel As Range With Worksheets("Generator cen") For Each cel In Worksheets("310").Range("A2:A180") .Range("B3") = cel.Value cel.Offset(, 3) = .Range("B26").Value Next cel End With End Sub[/syntax] Po otwarciu załącznika zapisz go sobie w formacie .xlsm. Ja użyłem starego formatu .xls ze względu...
Trochę przerobiłem.
Program masz "prawie" gotowy. Pomyśl, potrzebujesz odwołać się do Nr wiersza komórki spełniającej kryteria (tutaj zmienna "abc", zadeklarowana jako 'Range'). Będzie to wartość właściwości 'Row'. Następnie należy znaleźć lub określić Nr ostatniej w wierszu. Zadziałaj podobnie (metoda End), jak masz to z licznikiem pętli. Pozostaje przeliczenie (wymnożenie)...
Jezeli jest jakiś sposób w Excel vba Jest [syntax=vbscript]Sub elka() For Each c In Range("B2:B" & Cells(Rows.Count, 2).End(xlUp).Row) Cells(c.Row, 2) = c & " " & c.Offset(, 9) Next End Sub[/syntax]
Najszybciej pod jakim względem?? Możesz np. ustawić właściwość [syntax=vb]ControlSource = Arkusz1!N9 [/syntax]pola TextBox (dla formy nie ma czegoś takiego jak Input)
zamiast: MsgBox tekst wpisz: [e2]=tekst i sformatuj komórkę E2...
Change dla całego arkusza (arkuszy), a wewnątrz If B2=1 Then
Masz wykomentowane (znaczek ' na początku wiersza) trzy linijki programu... Powinno być: [syntax=vb] Sub Macro1() Dim a As Object For Each a In Worksheets a.Range("F10").FormulaR1C1 = "=RC[-1]/R[1]C[-1]" Next a End Sub [/syntax]
[syntax=vbscript]Sub Makro1() Dim Str As String For Each cell In Selection Str = cell.FormulaR1C1 If Mid(Str, 1, 1) = "=" Then Str = Mid(Str, 2) cell.FormulaR1C1 = "=ROUND(" & Str & ",1)" Next cell End Sub[/syntax]
OK. Teraz mam pilne zadanie, w godzinach wieczornych coś do rozwiązania. ... Tu to jest [syntax=vb]Sub copyNumKs() Dim bd As Range, bs As Range, r& With Sheets(1) Set bd = .Cells(1, 5).Resize(.Cells(Rows.Count, 1).End(xlUp).Row, 1) End With With Sheets("wydruk") Set bs = .Cells(1, 2).Resize(.Cells(Rows.Count, 1).End(xlUp).Row, 2) End With For r = 2...
Prosta instrukcja warunkowa: [syntax=vbscript] Sub Test If Worksheets("chłodnia").Range("l10")="OK" Then Call drukuj_klient ' tutaj nazwa procedury, którą chcesz wykonać Else Exit sub ' tutaj ew. coś co miało by się wykonać, jeśli nie będzie oczekiwanej wartości End if End Sub [/syntax] andie
Sprawdź takie makro: Cells(CC, 3).Cut zastąp linijką Cells(CC, 3).Copy . Makro działa od pierwszego wiersza, jeśli pierwszy wiersz Twojej tabeli to nagłówek, początkowe parametry CA oraz CC zmień na numer wiersza, od którego zaczynają się faktyczne dane. Makro działa do momentu napotkania pierwszej pustej komórki w kolumnie C.
Wpisz sobie jako parametr: [syntax=vbscript]Copies:=Range("A1").Val... A1 jest adresem komórki, gdzie masz wpisaną liczbę kopii. Można też użyć nazwy tej komórki, jeśli komórka została jakoś nazwana.
[syntax=vbscript]Sub Przycisk3_Kliknięcie() ' ' Przycisk3_Kliknięcie Makro ' Range("T4").FormulaR1C1 = "=NOW()" Cells(4, "R") = Cells(4, "R") + Cells(4, "Q") Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:="c:\karta " & Format(Date, "yyyymmdd") & "usuwanie.xlsm", FileFormat:= _ xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False End...
Może makro napisać co przeszukuje komórki.
Może tak: Sub del() Dim i As Integer For i = 100 To 3 Step -1 'ile wierszy będzie sprawdzanych If Range("B" & i).Value = Range("B2") Then Rows(i).Delete End If Next i End Sub
Witam O to Ci chodzi? [syntax=vbnet]Range("C2:C" & Cells(Rows.Count, "B").End(xlUp).Row).Select[/syntax]
Załącz przykładowy plik (nie musi być 20 arkuszy, wystarczą 2-3), z którego by wynikało jakie to są dane (stałe, formuły, sformatowane?) i jak ma wyglądać oczekiwany wynik. Piszesz o nadaniu kolejnego numeru skopiowanym danym. Gdzie ma być ten numer? W Twoim kodzie go nie ma. Jak będziesz skakać po arkuszach, to skąd będziesz wiedział później, z którego...
Nieco w tom stylu [syntax=vb] Sub etapy() Dim r&, x$, y$ r = 2 While Cells(r, 1) <> Empty x = Cells(r, 3) y = Replace(x, ";", "") Cells(r, 3) = Trim(Split(x, ";")(0)) For i = 1 To Len(x) - Len(y) y = Trim(Split(x, ";")(i)) If Len(y) > 0 Then r = r + 1 Rows(r).Insert Cells(r, 1) = Cells(r - 1, 1) Cells(r, 3) = y End If Next r = r + 1 Wend...
Namotałeś. [syntax=vbscript]Sub CzyscDane2() d = Weekday(Date) If d = vbSaturday Or d = vbSunday Or Swieto(Date) Then MsgBox ("Mamy weekend! Dane usuną się tylko w dzień roboczy") Exit Sub End If i = MsgBox("Czy na pewno chcesz usunąć dane z tej tabeli? " & _ "Pamiętaj, że stracisz je bezpowrotnie!!!" _ , vbOKCancel + vbExclamation + vbDefaultButton2,...
"#N/A" - to jest angelskie, w VBA tak ma byc, N/D(w komorce) myslim ze narodowe(Local)
[syntax=vbscript]nazwa = ActiveCell.Value With ThisWorkbook .Sheets("wzor rodzinne").Copy ActiveWorkbook.SaveAs .Path & "\rodzinne\" & _ nazwa & ".xls" ActiveWorkbook.Close End With[/syntax]
Przykro mi, ale nawet nie sprawdzałeś, jak działa makro... W komórkę C1 wpisujesz ścieżkę do tysiąca plików, na przykład: C:\Users\TwojaNazwaUzytkownika\Pictures\... i naciskasz przycisk 'Zmień nazwę tysiącowi plików'. Makro zamieni nazwę tysiącom plików.:)
W przyszłości nie trzeba pisać skoroszyt zamiast arkusz(z określonymi numerami) Skoroszyt to jest plik(w każdym razie tak to było do tej pory). Ponieważ nie wiadomo, czy te same struktury arkuszy, liczbę wierszy i kolumn, kopiowanie, możesz zrobić tak: [syntax=vb] Sub kopie() 'makro w pliku(skoroszycie) A, plik B jest otwarty 'kolejne 3 linie dopasuj...
wszystkie komórki większe od 0 If cl.Value > 0 Then
[syntax=vbscript]Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Column = 1 Then Application.ScreenUpdating = False w = Target.Row Set a = Sheets("Arkusz2") nw = a.Cells(Rows.Count, "A").End(xlUp).Row + 1 Range(Cells(w, "A"), Cells(w, "D")).Copy a.Cells(nw, "A") Range("E" & w).Copy a.Cells(nw, "E").PasteSpecial...
Brakuje chyba jeszcze jednej pętli zmieniającej kod sklepu. Hmm, raczej: na pewno ;) Spróbuj[syntax=vb]Sub asd() Dim wiersz, nr, ilosc As Integer Dim ostWrs As Long, w As Long, ile As Integer ostWrs = Range("B65536").End(xlUp).Row wiersz = 1 Range("C1:D1500").Clear For w = 1 To ostWrs nr = Cells(w, 1) ilosc = Cells(w, 2) For ile = 1 To ilosc Cells(wiersz,...
to makro do "zabawy" Dodano po 2 jeszcze dwie wersje.... Pierwsza ile_wierszy, to może być niemal dowolna liczba sprawdzonych wierszy , można wpisać nawet tyle ile wierszy ma cała kolumna (zależy od wersji Excela) Chodzi o to by nie sprawdzać całej kolumny bo to może potrwać.... Skopiowane zostaną tylko niepuste komórki. [syntax=vba] Sub copy_cells()...
Takie makro: [syntax=vbscript]Sub Makro1() ' Klawisz skrótu: Ctrl+q ActiveCell.Value = Range("X1") & ActiveCell.Value End Sub [/syntax]
Czułem, że trzymasz coś w rękawie ;) Z takim pryszczem poradziłabyś sobie. Spróbuj takiej pętelki [syntax=vb]Sub Merguj() Dim wrs As Long, merg As Long wrs = 1 merg = wrs Application.DisplayAlerts = False Do While Cells(wrs, 1) <> "" If Cells(wrs, 1) <> Cells(wrs + 1, 1) Then With Range(Cells(merg, 1), Cells(wrs, 1)) .Merge .HorizontalAlignment...
Na przykład, wersja prosta Nie należy ręcznie usuwać dane. To makro zrobi sam po zmianie daty w komórce B1
Kod czego ... pętli ... tablicy ? Pętli przecież masz, a tablica niekoniecznie potrzebna, można np. tak (o ile problem poprawnie opisany): [syntax=vbscript]Option Explicit Private Sub CommandButton2_Click() Const pth = "P:\RAPORT\" Const fle = "Plan wk" Const sht = "Main sheet" Const fsht = "R" Dim x As Integer, week As Integer Dim dzientygodnia As...
U mnie działa (oprócz kopiowania wysokości komórki z tym że tego nie ma w kodzie). Możesz podać cały komunikat błędu? Jest możliwość wciśnięcia przycisku "debug" Jeżeli tak to którą linie kodu wskazuje żółta strzałka (zaznaczenie)? Przy każdym formacie wyrzuca błąd. Jak nie formatujesz inaczej to też? A możesz jeszcze podać jak sformatowałeś komórkę?
[syntax=vb] Sub ochrona() Dim w&, k&, och As Boolean arw = Array(2, 3, 5, 6, 8, 10) With Sheets(2) .Unprotect For k = 1 To 11 och = UCase(.Cells(1, k)) <> "JEST" For w = LBound(arw) To UBound(arw) .Cells(arw(w), k).Locked = och Next Next .Protect End With End Sub [/syntax]
Ciekawa sprawa... Przecinek jakby z innej bajki i nie chce się formatować komórka. Spróbuj w pętli: [syntax=vb]Sub Makro() Dim c As Range For Each c In ActiveSheet.UsedRange If Right(c, 1) = "*" Then c = Val(Left(c.Value, Len(c) - 1)) c.NumberFormat = "0.00" End If Next End Sub[/syntax]
do C1 wstaw JEŻELI(CZY.PUSTA(A1);"";B1) i ukryj kolumne B, było tutaj też: http://www.elektroda.pl/rtvforum/topic12...
Chciałbym poprosić o pomoc w związku z makrem które, muszę zbudować. Mianowicie chodzi mi o to że mam tysiąc komórek które wyglądają mniej więcej tak: dzbanek_02-01-2008_K20 W VBA możesz użyć czegoś takiego: Do moderacji: Wiem, że odświeżam temat, ale może ta krótka instrukcja się komuś przyda, bo autor pewnie już sobie poradził. Usuwajcie jeśli uznacie...
[syntax=vbscript]For y = 1 To ile - 1[/syntax]
Skopiować trzeba wszystko, a później usunąć zawartość szarych pól.
Teraz wszystko jasne. [syntax=vbscript]Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 Then Application.ScreenUpdating = False Plik = "C:\PlikiSpraw\" & Range("A" & Target.Row) & ".xlsx" If Dir(Plik) <> "" Then Rows(Target.Row).Copy Set s = Workbooks.Open(Plik) nw = s.Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row...
Ja w "międzyczasie" napisałem coś takiego: [syntax=vbscript]Sub GoalSeekinRange() Dim i As Long, RngForm As Range, wks As Worksheet Dim RngGoal As Range, Rngx As Range Set wks = Worksheets("Brudnopis") Set RngGoal = wks.Range("L5:L9") Set Rngx = wks.Range("J5:J9") Set RngForm = wks.Range("K5:K9") For i = 1 To RngGoal.Count If IsNumeric(RngGoal(i)) And...
Najprościej rzecz ujmując [syntax=vbscript]licznik = 3 For i = 1 To 100 If Sheets("Arkusz1").Range("B" & i) = 1 Then Sheets("Arkusz1").Range("C" & i & ":S" & i).Copy Sheets("Arkusz2").Range("B" & licznik & ":R" & licznik) licznik = licznik + 1 End If Next[/syntax]
Oops, a było sobie nagrać makro ;) 1. Kod umieść w module standardowym i podepnij pod przycisk 2. Najpierw wybierz arkusz, następnie komórkę. Np [syntax=vb]Sub Odwolanie() Arkusz2.Select [C4].Select End Sub[/syntax]
Np coś takiego: Function LiczKolorNaPrawo(StartCell As Range) Dim A As Range Dim i As Long For Each A In Range(StartCell.Offset(0, 1), Cells(StartCell.Row, 256)) If StartCell.Interior.ColorIndex = A.Interior.ColorIndex Then i = i + 1 Next A LiczKolorNaPrawo = i End Function
Nagraj makro.
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]...
Załącznik był podmieniony po 5min. Zaciągnij jeszcze raz. Lub popraw: if not intersect ... is nothing then
Chyba chodzi tylko o podstawienie zakresu (pierwsza część makra), wtedy [syntax=vbscript]c = ActiveCell.Column r = ActiveCell.Row If c > 5 Then Range(Cells(r, c - 5), Cells(r, c - 1)).Select[/syntax]
[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]
Jeśli adresy w podglądzie są prawidłowe, to podstaw kopiowanie. [syntax=vbscript]Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets("Arkusz2") wdst = 3 With ws For w = 2 To 812 Step 6 For k = 11 To 24 Step 3 'podgl = Range(Cells(w, k), Cells(w, k + 2)).Address(0, 0) & " kopiuj do " & Cells(wdst, 8).Address(0, 0) .Range(.Cells(w, k), .Cells(w, k +...
To bylo tylko fragment makro Wstaw jak w Ciebie - 'On Error Resume Next' - gdy nie ma pustych komorek(xlCellTypeBlanks)
Makro kolegi masz w module i działa.
Tak jak adamas_nt pisał pewnie podajesz w b2 bez "\" (więc dir nie sprawdzi katalog i plik pusty) [syntax=vbscript] Sub Krok1_Tworzenie_bazy() 'Import danych tekstowych i stworzenie bazy Dim Katalog As String 'wskazany przez użytkownika katalog, w którym znajdują się pliki tekstowe Dim Plik As String 'nazwa wczytywanego pliku tekstowego Dim Sciezka...
Chodzi o to, że cały arkusz musi być aktywny do edycji (będą wprowadzane dane). Dopiero po wciśnięciu blokady komórka ma zostać zablokowana tak, aby nikt nie mógł zmienić jej zawartości. Z góry dziękuję za pomoc.
tekst=Trim(tekst)
Następnym razem jako przykład załącz skoroszyty Excela a nie zrzuty ekranu. Przetestuj kod: [syntax=vbscript]Option Base 1 Sub podziel_autorow() Dim tblTmp() As String Dim lLstRw& Dim i&: i = 1 Application.ScreenUpdating = False lLstRw = Cells(Rows.Count, 1).End(xlUp).Row Columns(3).EntireColumn.Insert Cells(1, 2).Value = "autorzy" Cells(1, 3).Value...
[syntax=vbscript]Sub Kopiuj() Set a = ActiveWorkbook i = Application.FileDialog(msoFileDialogOpen... s = Application.FileDialog(msoFileDialogOpen... Set b = Workbooks.Open(s) a.Sheets(1).Range("K20:M23").Copy b.Sheets(1).Range("K20") b.Close True End Sub [/syntax]
[syntax=vb]'1.xls Arkusz1 z wiersza 9 z kolumn E, H, L, O, R, U, W do pliku 2.xls Arkusz1 do tych samych kolumn w wierszu 6 'z wiersza 6 w pliku 2.xls z kolumn F, J, N P, T, V, X, Z do wiersza 9 w pliku 1.xls Arkusz1 Sub swap_walue() Dim ark1 As Worksheet Dim ark2 As Worksheet Set ark1 = Workbooks("1.xls").Sheets("Arkusz1") Set ark2 = Workbooks("2.xls").Sheets("Arkusz1")...
A zrób tak: zaznacz WSZYSTKIE komórki (CTRL+A), prawym, Formatuj, Ochrona ODZNACZ "Zablokuj". Teraz zaznacz chronione komórki, zaznacz "Zablokuj" - i ew. "Ukryj", to tylko ukrywa formuły... Narzędzia->Ochrona->Chroń arkusz, zahacz co chcesz lub pozostaw domyślne dwa pierwsze, restrykcyjne ograniczenia.
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))....
Zobacz gdzie co jest na przykładzie.
[syntax=vbscript]Sheets(Range("J3").Valu...
W D1 =JEŻELI($C$1=8;B1;"") w E1 =JEŻELI($C$1=10;B1;"") i tak dalej.
W jaki sposób mógłbym ustawić żeby przy kopiowaniu pomiędzy każdą kolumną były te znaki Tego się nie da magicznie ustawić :not: Można natomiast wykorzystać do przygotowania odpowiedniej treści kopiowanych komórek albo formułę np jak na zrzucie 965333 która po wklejeniu do edytora tekstowego da pożądany efekt 965334 Albo można wykorzystać makro do preparowania...
Dołóż pętlę sprawdzającą przed tą kopiującą. Jeśli jest nieprawidłowo, przerwij. Np [syntax=vbscript]Dim b As Boolean For wrs = 9 To 49 If WorksheetFunction.Sum(Range("BG" & wrs & ":BJ" & wrs)) > 0 And Range("BK" & wrs) = "" Then b = True Exit For End If Next If b Then MsgBox "proszę uzupełnić dane w wierszu " & wrs, vbExclamation, "kopiowanie anulowane"...
Chyba jakoś tak: Private Sub CommandButton1_Click() x = 3 While Worksheets("Przyrządy pomiarowe").Cells(x, 1).Value <> "" If Worksheets("Przyrządy pomiarowe").Cells(x, 1).Value = Worksheets("Kalibracja-Naprawy&... Then Worksheets("Przyrządy...
sprawdź załącznik
Zobacz czy o to Tobie chodziło.
ma byc sh.Shapes(1).Select
O coś takiego chodzi? [syntax=vbscript]Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then Select Case Target.Value Case "a" Range("B3").Value = Range("B3").Value + 1 Case "b" Range("B4").Value = Range("B4").Value + 1 Case "c" Range("B5").Value = Range("B5").Value + 1 End Select End If End Sub[/syntax]
aby po zmianie wartości w komórce B11 recznie? With Range("B39") Gdzie End With ?
Musi to być sama komórka Pozwala na jednorazową zmianę każdej komórki w Arkusz1.
Czy jest to możliwe aby to makro wpisywało w komórkę wcześnij zaznaczoną/odznaczoną (zanim się je uruchomi)?byłoby super jeśli jest taka możliwość. Tak. Zamiast: Range("A1") = lst Wpisz: Acivecell = lst
Jest prosty sposób na uruchomienie makra jeśli aktywowana będzie określona komórka. Powiedzmy, że zmieniasz dane w A1. Jeżeli posługujesz się klawiaturą to następna aktywowana komórka będzie A2 lub B1. Przykład uruchomienia makra dla B1 Private Sub Worksheet_SelectionChange(ByVal Target As Range) wiersz = 1 kolumna = 2 If Target.Row = wiersz...
Po dodaniu w 2 linijce jak wyżej mam " invalid use of prioerty" U mnie działa
Przetestuj poniższy kod (ilość kolumn do sprawdzenia jest brana na podstawie ilości zapełnionych komórek w wierszu 1). [syntax=vb]Sub pokoloruj_1v2() Dim lLstRw& Dim iLstCol% Dim rRng As Range Dim rTmpRng As Range iLstCol = Cells(1, Columns.Count).End(xlToLeft).Column For i = 1 To iLstCol lLstRw = Cells(Rows.Count, i).End(xlUp).Row On Error Resume Next...
Witaj Cos takiego
Makro? Wystarczy w formacie komorek "Zawijanie wyrazów'.
Załączam przykładowy plik excela z makrem liczącym ilośc znaków w zadanym zakresie arkusza. Wynik podawany jest w drugim arkuszu. Makro wybiera kolejno komórki z zakresu, liczy liczbę znaków w poszczególnych komórkach i dodaje narastająco liczbę poszczególnych znaków z zakresu. Arkusz można dostosować do swoich potrzeb, np. wynik podawać w tym samym...
Sprawa 1 Trochę niejasna. Czy chcesz sformatować w arkuszu komórkę Cells(x, "S") jako walutową, czy chcesz taką sformatowaną wartość dołączyć do wiadomości, czy jedno i drugie? Bo to są rzeczy niezależne. Jeśli sformatować w arkuszu, to kod: [syntax=vbscript]Cells(x, "S").NumberFormat = "#,##0.00 zł"[/syntax]lub ręcznie. Jeśli chcesz sformatować wartość...
makro komórka komentarz makro kopiować komórka makro podświetlić komórka
siemens gigaset zasilacz pw3015 unitra zwarcie kontrolki ładowania
Wymiana pamięci RAM Crucial 2GB DDR2 800 MHz Brak ciśnienia w cylindrze Fiata 1.4 benzyna - przyczyny i diagnostyka