napisał: Patinka4 postów: 8
umieszczony: 10 maja 2012 10:22
|
|
oba sposoby się sprawdzają :)
nie wiem co bym zrobiła,gdyby nie pomoc fantastycznych ludzi :D dzięki wielkie
mam nadzieję, że odpowiedzi na moje pytania przydadzą się jeszcze nie jednej osobie :) |
|
napisał: Trebor postów: 1209
umieszczony: 9 maja 2012 19:53
|
|
Proszę dwa sposoby:
Sub wstaw()
With Sheets("Arkusz1")
.Shapes.AddPicture "C:\Documents and Settings\Admin\Pulpit\Grafika\biurko.bmp", msoFalse, msoTrue, 0, 0, 100, 100
With .Pictures.Insert("C:\Documents and Settings\Admin\Pulpit\Grafika\biurko.bmp").ShapeRange
.Height = 300
.Top = 0
.Left = 100
End With
End With
End Sub |
|
napisał: Patinka4 postów: 8
umieszczony: 9 maja 2012 17:48
|
|
Teraz wszystko rozumiem :) dzięki Trebor, wielkie wielkie dzięki :D
Chciałabym jeszcze zrobić takie coś:
Po zaznaczeniu np. OptionButton1 na formularzu przez użytkownika w komórce A1 wstawia się obrazek 1.jpg
nie wiem z czego mogłabym skorzystać?
Sheets("Arkusz1").Shapes.AddPicture(FileName, LinkToFile, SaveWithDocument, Left, Top, Width, Height)
próbowałam z tej funkcji, ale nie do końca wiem jak ją wykorzystać.
a może znalazłoby się coś innego?
próbowałam też rejestrować makro wstawiania zdjęcia, ale makro wychodzi puste... |
|
napisał: Trebor postów: 1209
umieszczony: 9 maja 2012 16:17
|
|
Mam nadzieję, że poniższy kod jest czytelniejszy:
Public Sub InsertionSort()
Dim i As Long, j As Long, podmiana As Variant
'sortujemy komórki od A1 do A10
For i = 2 To 10
podmiana = Cells(i, 1)
For j = i To 2 Step -1
If podmiana < Cells(j - 1, 1) Then Cells(j, 1) = Cells(j - 1, 1) Else Exit For
Next j
Cells(j, 1) = podmiana
Next i
End Sub |
|
napisał: Patinka4 postów: 8
umieszczony: 8 maja 2012 21:50
|
|
Sortowań jeszcze wprawdzie nie zrobiłam, ale reszta działa bez zarzutu :)
Według ww strony ten kod jest dla VB6 i nie wiem czy zadziała na VBA?
A poza tym to nie bardzo go rozumiem:
czym są zmienne iMin i iMax? wartość min i max?
a UBound i LBound? znalazłam że to górny i dolny zakres granicy
chodzi o to że jeśli moja tablica to tab(1 To 2345) to LBound=1 a UBound=2345?
no i jeszcze var: varSwap albo pvarArray - do czego to służy?
Z góry dziękuję za udzielenie wskazówek :)
Insertion Sort
Public Sub InsertionSort1(ByRef pvarArray As Variant)
Dim i As Long
Dim j As Long
Dim iMin As Long
Dim iMax As Long
Dim varSwap As Variant
iMin = LBound(pvarArray) + 1
iMax = UBound(pvarArray)
For i = iMin To iMax
varSwap = pvarArray(i)
For j = i To iMin Step -1
If varSwap < pvarArray(j - 1) Then pvarArray(j) = pvarArray(j - 1) Else Exit For
Next j
pvarArray(j) = varSwap
Next i
End Sub |
|
napisał: Patinka4 postów: 8
umieszczony: 8 maja 2012 09:17
|
|
Dziękuję za adres. Ja też go wczoraj znalazłam, jednak moja znajomość angielskiego jest zbyt mała,
żeby to zrozumieć, dlatego ją odrzuciłam.
Widzę jednak, że muszę sobie z nią poradzić jakoś... |
|
napisał: Patinka4 postów: 8
umieszczony: 7 maja 2012 18:23
edytowany: 7 maja 2012 20:09
|
|
Dziękuję Trebor :) teraz ta część działa prawidłowo :)
Tworzę swój kod dalej i mam nadzieję, że mi to wyjdzie
P.S. Poszukuję jeszcze kodu do sortowania kubełkowego i przez wstawienie.
Niestety to co znalazłam w internecie o tych sortowaniach na wiele mi się nie przydało.
Zrozumiałam tylko sortowanie bąbelkowe i już napisałam do niego kod, ale te dwa... nie wiem w sumie od czego zacząć |
|
napisał: Trebor postów: 1209
umieszczony: 7 maja 2012 16:15
edytowany: 7 maja 2012 16:16
|
|
Takie zadanie robiłem dla motylekxyz trochę niżej. Generalnie musisz wcześniej umieścić ilosc_liczb = TextBox1, a później ReDim tablica(ilosc_liczb) Indeks dolny dla tak zadeklarowanej tablicy to 0, więc "i" powinno zaczynać się od 0 a nie 1. |
|
napisał: Patinka4 postów: 8
umieszczony: 6 maja 2012 22:00
edytowany: 6 maja 2012 22:08
|
|
Robię następne zadania bo mam ich więcej :)
Mam kłopot z takim kodem
Private Sub CommandButton5_Click()
ReDim tablica(ilosc_liczb)
ilosc_liczb = TextBox1
For i = 1 To ilosc_liczb
tablica(i) = Int((100 - 1 + 1) * Rnd + 1)
Next i
MsgBox "Stworzono tablicę i wpisano do niej losowe elementy z zakresu 1 - 100"
End Sub
pokazuje mi komunikat: Run-time error '9': Subscript out of range
w momencie kiedy jest to zwykłe makro (to tylko fragment)
Case 2
ReDim tablica(ilosc_liczb)
For i = 1 To ilosc_liczb
tablica(i) = Int((100 - 1 + 1) * Rnd + 1)
Next i
MsgBox "Stworzono tablicę i wpoisano do niej losowe elementy z zakresu 1 - 100"
wszystko działa prawidłowo
Dziękuję za wyjaśnienia do poprzedniego zadania :) dzięki pomocy tutaj z forum jedno zadanie udało mi się zrobić samodzielnie, ale na drugim utknęłam niestety |
|
napisał: Trebor postów: 1209
umieszczony: 6 maja 2012 17:48
edytowany: 6 maja 2012 17:50
|
|
Część UCase(TextBox1.Value) zamienia ciąg wpisany do Textbox1 na wielkie litery.
W następnym kroku zamieniamy X na wartość z kolumny A Replace(UCase(TextBox1.Value), "X", Cells(i, 1))
Evaluate przeprowadza obliczenia na uzyskanym ciągu.
Uzyskany wynik tak jak się domyślałaś wpisuje do kolumny B. |
|
napisał: Patinka4 postów: 8
umieszczony: 6 maja 2012 11:37
edytowany: 6 maja 2012 12:16
|
|
Dziękuję :) zadania śmigają aż miło :) jestem niesamowicie wdzięczna
a co do pytań to mam jedno
Private Sub CommandButton1_Click()
Dim i As Byte
For i = 1 To 10
Cells(i, 2) = Evaluate(Replace(UCase(TextBox1.Value), "X", Cells(i, 1)))
Next i
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
niestety nie do końca rozumiem te komendy. Wiem, że ta pierwsza dotyczy wzoru funkcji, który wpisuję w pole tekstowe. Oblicza wartość w kolumnie B i ja tam wpisuje. Dobrze rozumiem?
Ale Unload Me nic mi kompletnie nie mówi... dotyczy to rysowania wykresu?
P.S. Po analizie kodu już wiem co z tym Unload Me(potrzebowałam aż Google Tłumacza :D), ale niestety nie wiem nadal jak działa ta pierwsza część |
|
napisał: Trebor postów: 1209
umieszczony: 6 maja 2012 08:28
edytowany: 6 maja 2012 08:28
|
|
Sprawdź czy działa poprawnie.
Ponieważ nie wiem na ile znasz vba, pytaj co jest dla Ciebie niezrozumiałe. |
|
napisał: Patinka4 postów: 8
umieszczony: 6 maja 2012 06:44
|
|
Mam do zrobienia dwa zadania, domyślam się, że wcale nie są kosmicznie trudne, ale ja nie potrafię sobie z nimi poradzić.
Nie potrafię napisać odpowiedniego kodu do wykorzystanych kontrolek. Ba! Prawda jest taka, że poza wstawieniem ich niewiele więcej potrafię zrobić
Jeżeli znalazłaby się jakaś dobra dusza, która chciałaby mnie jakoś wspomóc byłabym bardzo wdzięczna :)
Zadanie 1.
Stwórz UserForm, na którym umieścisz pole tekstowe "Podaj wzór funkcji", przyciski "Rysuj" i "Close".
Do kontrolki Rysuj dopisz zdarzenie rysowania wykresu funkcji podanego w polu tekstowym "Podaj wzór funkcji". Dane x mają być pobierane z kolumny A arkusza.
Zadanie 2.
Używając UserForm i odpowiednich kontrolek stwórz aplikację, która na podstawie podanego dochodu wyliczy nalezny podatek. Przyjmij następujące zasady
opodatkowania (1) dochody do 85 528 zł - 18%minus kwota zmniejszająca podatek 556 zł 02 gr
(2) powyżej 85 528 zł - 14 839 zł 02 gr+32% nadwyżki ponad 85 528 zł
ucieszy mnie każda pomoc w zrozumieniu tych zadań i małe wytłumaczenie jak powinnam je zrobić |
|
wstecz 1 dalej wszystkich stron: 1
|
|