Janusz Mach

Janusz Mach nauczyciel, Zespół
Szkół

Temat: Makra i Visual Basic

Mam prośbę o pomoc. Jak stworzyć makro które przeniesie wartość i format komórki w jednym arkuszu do odpowiedniej komórki w drugim arkuszu. Konkretnie. mam wypisane oceny z przedmiotów. I chciałbym aby te napisane na czerwono - ze sprawdzianów - także na czerwono zostały wydrukowane na kartkach dla rodziców. Przekopałem chyba wszystko w internecie polskojęzycznym i konkretnego przykładu nie znalazłem.
Tomasz Gryzio

Tomasz Gryzio Dyrektor
zarządzający/Trener/
Konsultant - It
School

Temat: Makra i Visual Basic

Witam,

Najprostszy i najmniej wymagający sposób na świecie wykorzystujący kopiowanie i wklejanie:

Założenie: w Arkusz1 w zakresie A1:A3 posiadam sformatowane komórki źródłowe i chcę aby znalazły się we wszystkich pozostałych arkuszach skoroszytu z w zakresach D1:D3.


Sub sKopiuj()
'Application.ScreenUpdating = False
Dim rZrodlo As Range

Set rZrodlo = Application.InputBox("Zaznacz zakres.", Type:=8)
rZrodlo.Copy

For i = 2 To Sheets.Count
Sheets(i).Activate
Sheets(i).Range("d1").Select
Sheets(i).Paste
Next

end sub
Tomasz Gryzio edytował(a) ten post dnia 20.11.11 o godzinie 19:27

konto usunięte

Temat: Makra i Visual Basic

Powyższy kod ma sporo błędów. Lepiej tak:
Sub sKopiuj()
Dim rZrodlo As Range
Dim i As Integer
Set rZrodlo = Application.InputBox(Prompt:="Zaznacz zakres:", Type:=8)
Application.ScreenUpdating = False
For i = 2 To Sheets.Count
rZrodlo.Copy Sheets(i).Range("A1")
Next
Application.ScreenUpdating = True
End Sub
Janusz Mach

Janusz Mach nauczyciel, Zespół
Szkół

Temat: Makra i Visual Basic

Dziękuję. Zaraz będę próbował jak to działa.

konto usunięte

Temat: Makra i Visual Basic

mam wielki problem
wyczytałem na forum że da się to zrobić makrą ale że jestem z tego totalnie zielony więć postanowiłem zapytać fachowców
nam skoroszyt z 62 arkuszami
w arkuszach 1 - 61 wpisywane są dane często zerowe a w arkuszu 62 następuje analiza wszystkich arkuszy
ja potrzebuję do wydruku arkusz 62 nazwa Analiza ale ze względu na wielkość ilość stron do wydruku wynosi ok 30 z czego użytecznych jest może z 5
pytanie brzmi jak automatycznie ukryć kolumnę C jeżeli wartość w komórce C110 = 0 a jeżeli jest >0 to nie ukrywać a takich kolumn mam 61 do C do BJ
robił bym to ręcznie ale wartości się zmieniają i musiał bym to robić za każdym razem jak uruchamiam arkusz
za wszelką pomoc dziękujęDariusz Nowak edytował(a) ten post dnia 12.02.12 o godzinie 17:41
Tomasz Gryzio

Tomasz Gryzio Dyrektor
zarządzający/Trener/
Konsultant - It
School

Temat: Makra i Visual Basic

Witam,

Makro mogłoby wyglądać tak:


Sub mUkryj()
Dim i As Integer
For i = 3 To 62
If Cells(110, i) = 0 Then
Columns(i).EntireColumn.Hidden = True
End If
Next
End Sub


Pozdrawiam!

konto usunięte

Temat: Makra i Visual Basic

dziękuję Panie Tomaszu mógłbyś mi wytłumaczyć o co w tym chodzi
z tymi
dim i As Integer
itd
poza tym ten skrypcik nie działa chyba że coś źle robię Dariusz Nowak edytował(a) ten post dnia 12.02.12 o godzinie 20:31
Tomasz Gryzio

Tomasz Gryzio Dyrektor
zarządzający/Trener/
Konsultant - It
School

Temat: Makra i Visual Basic

Dariusz Nowak:
dziękuję Panie Tomaszu mógłbyś mi wytłumaczyć o co w tym chodzi
z tymi
dim i As Integer
Definiuję zmienną - urządzenie przechowujące wartości w czasie działania makra pozwalające na wykonanie określonych działań w czasie jego trwania o nazwie "i" przechowującą tylko liczby całkowite - Integer:
Dim - dimension (wymiar)
i - nazwa
as Integer - jako calkowite
itd
poza tym ten skrypcik nie działa chyba że coś źle robię
Jeśli zadaniem makra było ukrywanie danej kolumny jeżeli w jej wierszu o nr 110 (C110, D110... BC110) to oczywiście działa.
Pozdrawiam!
Anna A.

Anna A. Kontroler Finansowy

Temat: Makra i Visual Basic

Tworze swoje pierwsze pliki z pomoca VB. Do tej pory wszystko bylo w porzadku, ale teraz niestety utknelam. Chce, aby program robil operacje przed zamknieciem. Operacja jest narazie nieistotna. Wpisalam nastepujace makro:

Private Sub BeforeClose(Cancel As Boolean)
MsgBox "Witaj" & " Przyjacielu"
End Sub

I nic sie nie dzieje. Zamykam excela i nie ma zadnej reakcji. Co robie zle?

Temat: Makra i Visual Basic

Makro powinno być umieszczone w module 'ThisWorkbook' i nazywać się 'Workbook_BeforeClose'.
Anna A.

Anna A. Kontroler Finansowy

Temat: Makra i Visual Basic

Dziekuje bardzo. Dziala :))

Czy moze mi Pan ewentualnie polecic jakas dobra ksiazke albo szkolenie?

Szukam narazie w internecie i bardzo mnie to wciaga, wiec fajnie by bylo troche bardziej profesionalnie podejsc do tematu.

Pozdrawiam

Temat: Makra i Visual Basic

Ja bardzo sobie cenię książki Johna Walkenbacha - fachowość połączona z lekkim piórem autora.

konto usunięte

Temat: Makra i Visual Basic

Książki: j. w.
Forum: http://excelforum.pl
Szkolenia: http://excelperfect.pl

Pozdrawiam.Darek J. edytował(a) ten post dnia 22.02.12 o godzinie 13:45
Anna A.

Anna A. Kontroler Finansowy

Temat: Makra i Visual Basic

Dziekuje bardzo.

Zaczne od ksiazki Johna Walkenbacha. No i oczywiscie wszelkie fora sa nieocenione. :))

konto usunięte

Temat: Makra i Visual Basic

Anna A.:
sądząc po Fotce, Excel Cię raczej polubi :)
Adam Nieradzik

Adam Nieradzik Student, Uniwersytet
Ekonomiczny w
Wroclaw

Temat: Makra i Visual Basic

Witam,
Potrzebowalbym makro do pracy, ktore przeszukiwalo by wiersze w calej karcie i gdy znajdzie dany ciag znakow usunie caly wiersz... np zalozmy, ze znajdzie wyraz "Auto" w wierszu B4 i usunie ten wiersz.

Z gory dziekuje za pomoc
Pozdrawiam

konto usunięte

Temat: Makra i Visual Basic

Witam,
proszę spróbować odpalić makro:

Sub WytnijAuto()
Dim i&

For i = Cells(Rows.Count, "B").End(xlUp).Row To 1 Step -1
If Cells(i, 2).Value = "Auto" Then Rows(i).Delete
Next i
End Sub

Pozdrawiam.
Adam Nieradzik

Adam Nieradzik Student, Uniwersytet
Ekonomiczny w
Wroclaw

Temat: Makra i Visual Basic

Darek J.:
Witam,
proszę spróbować odpalić makro:

Sub WytnijAuto()
Dim i&

For i = Cells(Rows.Count, "B").End(xlUp).Row To 1 Step -1
If Cells(i, 2).Value = "Auto" Then Rows(i).Delete
Next i
End Sub

Pozdrawiam.

Super dziękuję bardzo ;)

Odnośnie tego makra, jeżeli chciałbym aby usuwało więcej niż tylko jedno wyrażenie (w tym przykładzie więcej niż tylko auto) w jaki sposób mogę dopisać wyrażenia? np jeżeli w danym wierszu pojawi się słowo auto lub dom lub pies.... itd ;)

Z góry dziękuję za odpowiedź.
PozdrawiamAdam Nieradzik edytował(a) ten post dnia 14.03.12 o godzinie 18:07
Andrzej O.

Andrzej O. Analityk ds.
raportowania i
analiz

Temat: Makra i Visual Basic


Sub WytnijAuto()
Dim i&

For i = Cells(Rows.Count, "B").End(xlUp).Row To 1 Step -1
If Cells(i, 2).Value = "Auto" Then Rows(i).Delete
Next i
End Sub

Kod jak najbardziej usuwa cały wiersz

jeżeli komórka(i, 2).wartość = "Twoje kryterium wyszukiwania"
JestPrawdąTo Wiersz(i).Kasuj

Gdybyś chciał skasować jedna komórkę to
 
jeżeli komórka(i, 2).wartość = "Twoje kryterium wyszukiwania"
JestPrawdąTo komórka(i, 2).Kasuj
Andrzej O. edytował(a) ten post dnia 15.03.12 o godzinie 12:56

konto usunięte

Temat: Makra i Visual Basic

Adam Nieradzik:
Odnośnie tego makra, jeżeli chciałbym aby usuwało więcej niż tylko jedno wyrażenie (w tym przykładzie więcej niż tylko auto) w jaki sposób mogę dopisać wyrażenia? np jeżeli w danym wierszu pojawi się słowo auto lub dom lub pies.... itd ;)

Z góry dziękuję za odpowiedź.
Pozdrawiam
Jeżeli danych nie będzie zbyt wiele, to spróbuj zamiast

If Cells(i, 2).Value = "Auto" ...

wpisać wyrażenie postaci:

If Cells(i, 2).Value = "Auto1" Or Cells(i, 2).Value = "Auto2" Or Cells(i, 2).Value = "Auto3" ...

Dla większej ilości warto dane wpisać do tablicy i użyć funkcji CountIf, pzdr.Darek J. edytował(a) ten post dnia 15.03.12 o godzinie 13:02

Następna dyskusja:

Excel + Visual Basic




Wyślij zaproszenie do