vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest piątek, 17 maja 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

Baza danych - VBA


otwartyotwarty rozpoczął: limpus postów: 4



napisał: limpus
postów: 24


umieszczony:
2 lutego 2007
14:37

  
Witam

Bardzo dziękuję za makro - chodzi znakomicie.

z poważaniem
marek
napisał: Trebor
postów: 1209


umieszczony:
2 lutego 2007
10:44

edytowany:
2 lutego 2007
10:44

  
Czy taki kod będzie wystarczający?
Sub test()
Dim ostatnia As String ' ostatnia pełna komórka
Dim wiersz As Long
Dim kolumna As Long
Dim pierwsza As String 'adres pierwszej komórki do skopiowania
Dim druga As String 'adres drugiej komórki do skopiowania
Dim min As Double
Dim maks As Double
min = 2470000
maks = 3575000
ostatnia = Cells.Find(What:="*", _
After:=Cells(1, 1), SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

ostatnia = Cells(ostatnia, Cells.Find(What:="*", _
After:=Cells(1, 1), SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column).Address


For kolumna = 1 To Range(ostatnia).Column
    For wiersz = 2 To Range(ostatnia).Row
        If Cells(wiersz, kolumna) > min Then pierwsza = Cells(wiersz, kolumna).Address: Exit For
    Next wiersz
    If pierwsza <> "" Then
    For wiersz = Range(pierwsza).Row To Range(ostatnia).Row
        If Cells(wiersz, kolumna) >= maks Then
        druga = Cells(wiersz, kolumna).Offset(-1, 0).Address
        Range(pierwsza, druga).Copy Sheets("Arkusz2").Cells(1, kolumna)
        Exit For
        End If
    Next wiersz
    End If
    
        pierwsza = ""
        druga = ""

Next kolumna
End Sub


Pozdrawiam
napisał: jalamas
postów: 316


umieszczony:
1 lutego 2007
22:51

  
Nie rozumiem co znaczy wklejanie ????
Zobacz AdvancedFilter (dla kolumny) z opcją kopiuj w inne miejsce (xlFilterCopy).
Nagraj sobie makro, podejrzyj.
napisał: limpus
postów: 24


umieszczony:
1 lutego 2007
18:45

  
Witam

Znowu po przerwie zwracam się z prośbą o pomoc w napisaniu makra, które wykonywałoby takie zadanie:
W Arkuszu 1 mam dane liczbowe z zakresu 1 do 24040016 pogrupowane w 100 kolumnach od A do CV. Liczby w kolumnach są ułożone w sposób losowy ale od najmniejszego do największego. Ilość wierszy w każdej kolumnie jest jednakowa i wynosi 15505. Ale w wierszu pierwszym w każdej kolumnie jest nagłówek, który nie powinien być brany pod uwagę. Zadaniem makra jest wybrać z każdej kolumny część danych, które są większe od 2.470.000 a mniejsze od 3.575.000. i Przekopiować je do Arkusza 2 do analogicznych kolumn (ale bez nagłówka).
Czyli z kolumny A z zawartych danych wybiera zadany zakres komórek i wkleja je do Arkusz 2 do kolumny A i zawsze wklejanie rozpoczyna od wiersza pierwszego. I tak podobnie z pozostałymi kolumnami. Jeśli np. w pierwszej kolumnie pierwsza liczba znalazła się na pozycji np. 100 to ja nie potrafię przy wklejaniu pozbyć się tych wierszy z przodu tak by zawsze wklejanie następowało w pierwszym wierszu danej kolumny. Dane zakresu podałem takie, ale będą się zmieniały i chodzi o to bym potem w kodzie VBA zmienić ten zakres.

z poważaniem
marek


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z