| Author |
Message
|
piotr1110 Poziom 6

Joined: 29 Jul 2009 Posts: 18 Location: Warszawa
|
#1
29 Jul 2009 11:29 Excel makra wklejania |
|
|
|
Witam,
W arkuszu 1 mam listę materiałów KolumnaA- index kolumnaB -nazwa (kilkaset pozycji) KolumnaC - wartości.
Chciałbym aby do arkusza 2 (z arkusza 1) wklejały się tylko pozycje o kodzie początek 93* nazwie "FOLIA" oraz wartości z kolumnyC zmienione z jednostki mb na kg (w zależności od indexu np. 93-001 = C/72, 93-002 = C/15, 93-003 = C/13
|
|
| Back to top |
|
 |
adamas_nt Poziom 22

Joined: 26 Jan 2008 Posts: 2273 Location: Nowy Tomyśl
|
#2
29 Jul 2009 12:45 Re: Excel makra wklejania |
|
|
|
Może w ten sposób...
| Filename: |
piotr1110(1).xls |
 Download |
| Contents: |
|
| Filesize: |
42 KB |
| Punkty: |
0 |
|
|
| Back to top |
|
 |
Google

|
#
29 Jul 2009 12:45 |
|
|
|
|
|
| Back to top |
|
 |
piotr1110 Poziom 6

Joined: 29 Jul 2009 Posts: 18 Location: Warszawa
|
#3
29 Jul 2009 15:58 Re: Excel makra wklejania |
|
|
|
Mógłby porosić o gotowca do wlejenia:
index to zakres A8:A600
nazwa to zakres B8:B600
warości1 to zakres FW8:FW600
warości2 to zakres FX8:FX600
warości3 to zakres FY8:FY600
warości4 to zakres FZ8:FZ600
|
|
| Back to top |
|
 |
adamas_nt Poziom 22

Joined: 26 Jan 2008 Posts: 2273 Location: Nowy Tomyśl
|
#4
29 Jul 2009 18:08 Re: Excel makra wklejania |
|
|
|
| piotr1110 wrote: |
| Mógłby porosić o gotowca |
Nie ma sprawy. Ale:
1. Jest dla Ciebie okazja złapać o co w tych pętlach chodzi (kombinuj, pytaj).
2. Jeśli chcesz gotowca, wpisz kilka wierszy danych do arkusza w układzie, jaki masz w oryginale (+ podpowiedź o co chodzi) i wrzuć na forum w postaci załącznika bez prowizji. Zaoszczędzi to wszystkim czasu, unikniemy pomyłek i niedomówień (nie wiem jak inni, ale pojęcia zielonego nie mam co też może być w zakresach: "wartości2", "wartości3" i co z tym zrobić)
|
|
| Back to top |
|
 |
piotr1110 Poziom 6

Joined: 29 Jul 2009 Posts: 18 Location: Warszawa
|
#5
30 Jul 2009 14:54 Re: Excel makra wklejania |
|
|
|
napisałem: zależności od indexu np. 93-001
dlaczego w module jest 92001?
Wartości 2, Warości 3, to zużycie foli w kolejnych kwartałach
Dodano po 19 [minuty]:
jak zapisać index 93-020-001
|
|
| Back to top |
|
 |
Google

|
#
30 Jul 2009 14:54 |
|
|
|
|
|
| Back to top |
|
 |
adamas_nt Poziom 22

Joined: 26 Jan 2008 Posts: 2273 Location: Nowy Tomyśl
|
#6
30 Jul 2009 15:58 Re: Excel makra wklejania |
|
|
|
Musiałoby być cos takiego, sprawdź
| Code: |
Sub CopyCount()
Const wrt01 As Single = 72
Const wrt02 As Single = 15
Const wrt03 As Single = 13
Dim i As Integer, licznik As Integer, ark As String
ark = "Arkusz2" ' nazwa arkusza docelowego
licznik = 2 'pierwszy wiersz ark docelowego
Sheets(ark).Range("A2:C" & Range("A2").End(xlDown).Row).ClearContents 'czysc zakres
For i = 8 To 600 'tu ustawiasz Nr wierszy zakresu źródłowego
If Left(Cells(i, 1), 2) = "93" And LCase(Left(Cells(i, 2), 5)) = "folia" Then
'jeżeli kod zaczyna sie od "93" oraz
'5 pierwszych znaków nazwy, zamienionych na małe litery = "folia"
'przypisanie: arkusz.komórka docelowa = komórka źródłowa
Select Case Right(Cells(i, 1), 2) 'sprawdzam dwa ostatnie znaki
'i w zależności jakie są ich wartości dzielimy przez stałą zadeklarowaną na początku
Case "01": Sheets(ark).Cells(licznik, "C") = Cells(i, "FW") / wrt01
Sheets(ark).Cells(licznik, "D") = Cells(i, "FX") / wrt01
Sheets(ark).Cells(licznik, "E") = Cells(i, "FY") / wrt01
Sheets(ark).Cells(licznik, "F") = Cells(i, "FZ") / wrt01
Case "02": Sheets(ark).Cells(licznik, "C") = Cells(i, "FW") / wrt02
'i tu przepisujesz jak dla pierwszego, zmieniasz tyko dzielnik
Case "03": Sheets(ark).Cells(licznik, "C") = Cells(i, "FW") / wrt03
'i jeszcze raz dla następnego warunku
Case Else: Sheets(ark).Cells(licznik, "C") = ""
'tu też możesz nie musisz. Uruchamiany gdy nie jest spełniony zaden
'z warunków
End Select
Sheets(ark).Cells(licznik, "A") = Cells(i, "A") 'indeks
Sheets(ark).Cells(licznik, "B") = Cells(i, "B") 'nazwa
licznik = licznik + 1
End If
Next
Sheets(ark).Select
End Sub |
Opisałem tak, że powinieneś się połapać. Nie pisałem przypisania dla następnych warunków, bo bez tego i tak jest długa a jak sam widzisz jest to dość oczywiste.
Odnośnie indeksów: Makro sprawdza tylko dwa pierwsze i dwa ostatnie znaki. Długość (czyli co jest w środku) nie ma znaczenia.
|
|
| Back to top |
|
 |
piotr1110 Poziom 6

Joined: 29 Jul 2009 Posts: 18 Location: Warszawa
|
#7
31 Jul 2009 08:09 Re: Excel makra wklejania |
|
|
|
93-020-001
93-021-001
Tak wyglądają kody dlatego środek jest kluczowy.
Jest ich około 6 różnych. a pozostałe dzielę przez 72,5, tylko nie wiem
jak zapisać kody pozostałe tzn. mające początek 93* próbowałem gwiazdkę ale nie działa.
|
|
| Back to top |
|
 |
adamas_nt Poziom 22

Joined: 26 Jan 2008 Posts: 2273 Location: Nowy Tomyśl
|
#8
31 Jul 2009 08:23 Re: Excel makra wklejania |
|
|
|
Można rozwinąć warunki instrukcji Select Case. Mamy:
Select Case Right(Cells(i, 1), 2) 'sprawdzam dwa ostatnie znaki
Można Np:
Select Case Right(Cells(i, 1), 7) 'sprawdzam siedem znaków od prawej
i wtedy:
Case "020-001": polecenie(a) dzielenia przez wrt1
Case "021-001": polecenie(a) dzielenia przez wrt1a
itd
Case Else : polecenie(a) 'TU wszystkie inne rozpoczynające się od "93" zgodnie z If Left(Cells(i, 1), 2) = "93" podanym na początku pętli.
I wszystkie kody powinny być w tym (xx-xxx-xxx) formacie.
Tylko nie jestem pewien, czy o to chodzi...
|
|
| Back to top |
|
 |
Google

|
#
31 Jul 2009 08:23 |
|
|
|
|
|
| Back to top |
|
 |
piotr1110 Poziom 6

Joined: 29 Jul 2009 Posts: 18 Location: Warszawa
|
#9
31 Jul 2009 12:15 Re: Excel makra wklejania |
|
|
|
I wszystkie kody powinny być w tym (xx-xxx-xxx) formacie.
ale wtedy wyskakuje błąd albo ucina otatnie dwa znaki
|
|
| Back to top |
|
 |
adamas_nt Poziom 22

Joined: 26 Jan 2008 Posts: 2273 Location: Nowy Tomyśl
|
#10
31 Jul 2009 17:01 Re: Excel makra wklejania |
|
|
|
| adamas_nt wrote: |
| wpisz kilka wierszy danych do arkusza w układzie, jaki masz w oryginale (+ podpowiedź o co chodzi) i wrzuć na forum w postaci załącznika bez prowizji. Zaoszczędzi to wszystkim czasu, unikniemy pomyłek i niedomówień |
|
|
| Back to top |
|
 |
piotr1110 Poziom 6

Joined: 29 Jul 2009 Posts: 18 Location: Warszawa
|
#11
03 Aug 2009 07:15 Re: Excel makra wklejania |
|
|
|
A B FW
8 93-020-001 FOLIA 100 /13,1
9 93-021-001 FOLIA 1 100 /66,0
10 93-022-001 FOLIA 2 100 /11,8
11 93-086-001 FOLIA 3 100 /72,5
12 93-096-001 FOLIA 3 100 /72,5
|
|
| Back to top |
|
 |