napisał: pawel30 postów: 40
umieszczony: 4 czerwca 2007 07:22
edytowany: 4 czerwca 2007 08:13
|
|
Witam wszystkich
Próbowałem przez weekend sam poradzić sobie z problemem, ale niestety to zadanie przerosło mnie.
Każde makro, które stworzyłem dawało błąd #Arg lub #Nazwa. Nie poradzę sobie z nim sam. Jak znajdziecie chwilkę czasu to proszę pomóżcie mi. Bardzo mi na tym zależy.
Pozdrawiam
Paweł |
|
napisał: pawel30 postów: 40
umieszczony: 1 czerwca 2007 06:58
edytowany: 1 czerwca 2007 07:03
|
|
Witam wszystkich .
Zwracam się ponownie o pomoc w stworzeniu makropolecenia związanego z funkcją suma.iloczynów.
Sprawa wygląda następująco:
1. mam 12 arkuszy reprezentujących miesiące, które nazwałem mc01, mc02,...,mc12.
2. w każdym arkuszu mam 3 kolumny z danymi: kol.A data ( w formacie 2007-06-01 ),
kol.B kod asortymentu ( 01, 02, 03 itd.), kol.C wartość.
3. poszczególnym kolumnom przy pomocy funkcji przesunięcie nadałem nazwy:
np. dla arkusza mc05 kolumnę z datą nazwałem data05, kolumnę z kodem kod05, kolumnę
z wartością wartosc05; analogiczne nazwy utworzyłem dla pozostałych arkuszy.
4. za pomocą userforma wybieram datę, która jest wpisywana do arkusza Plan do komórki
D19.
Jeżeli użytkownik wybierze np. datę 2007-03-15 to dla sortymentu o kodzie 01 formuła wyglądałaby następująco:
=SUMA.ILOCZYNÓW((kod03="01")*(data03<=DATA(2007;3;15))*wartosc03)
Wartość tą wpisuję do komórki F9 arkusza Raport.
Jeżeli użytkownik wybierze np. datę 2007-05-10 to dla sortymentu o kodzie 01 formuła wyglądałaby następująco:
=SUMA.ILOCZYNÓW((kod05="01")*(data05<=DATA(2007;5;10))*wartosc05)
Wartość tą wpisuję do komórki F9 arkusza Raport.
Niestety nie potrafię zamienić powyższych formuł na język VBA. Wszystkie próby wymyślenia czegoś sensownego spełzły na niczym. Ogromną trudność sprawia mi zwłaszcza podmiana w procedurze zmiennych kod, data i wartość w zależności od wybranej daty.
Bardzo proszę o pomoc.
Pozdrawiam
Paweł |
|
napisał: pawel30 postów: 40
umieszczony: 30 maja 2007 07:09
|
|
Dziękuję za wyjaśnienia .
Pozdrawiam
Paweł |
|
napisał: Rycho postów: 291
umieszczony: 29 maja 2007 16:08
|
|
Hej.
4 cudzysłowy to jeden cudzysłów
Aby wprowadzić cudzysłów do tekstu, trzeba użyć pary tych znaków.
Jeśli zmienna ma zawierać cudzysłów, to można zrobić tak:
a = """"
lub przy pomocy funkcji Chr.
Evaluate znajdziesz w pomocy VBA.
Ogólnie rozumiem to tak: czasmi wykonuje obliczenia podobnie jak formuły ale też tworzy obiekty. Inaczej, jeśli wyrażenie daje się obliczyć lub można utworzyć obiekt, to jest to robione.
Rycho |
|
napisał: pawel30 postów: 40
umieszczony: 29 maja 2007 07:23
edytowany: 29 maja 2007 07:24
|
|
Dziękuję za kod. Działa doskonale.
Chciałbym się jeszcze zapytać co oznaczają cztery cudzysłowy i na czym polega działanie funkcji evaluate, z którą spotykam się po raz pierwszy.
Pozdrawiam i jeszcze raz dziękuję.
Paweł |
|
napisał: pawel30 postów: 40
umieszczony: 28 maja 2007 08:25
edytowany: 28 maja 2007 08:53
|
|
Witam wszystkich.
Mam następujący problem. W arkuszu sprzedaż SP w kolumnie A mam indeksy wyrobów a w kolumnie F ilość sprzedaną. W arkuszu do analizy rentowności AR komórki od D5 do D17 chciałem wypełnić wartościami przy użyciu funkcji suma iloczynów.
Napisałem następujący kod, który nie działa.
Sub sumailoczynow()
Dim rngIndeks As Range
Dim rngIlosc As Range
Dim a As Range
Dim i As Integer
Set rngIndeks = Sheets("SP").Range("A3:A52")
Set rngIlosc = Sheets("SP").Range("F3:F52")
Set a = Sheets("AR").Range("A" & "i")
For i = 5 To 17
Cells(i, 4).Value = WorksheetFunction.SumProduct((rngIndeks.Value = a.Value), rngIlosc.Value)
Next i
End Sub
Proszę o pomoc.
Pozdrawiam
Paweł |
|
 wstecz 1 dalej  wszystkich stron: 1
|