Dodaj do ulubionych

VBA Excel - pytanie o kod

IP: *.bmly.cable.ntl.com 07.04.09, 21:50
Hejka,

Ponizej zamieszczam krotki kod VBA. Potrzebuje zmienic jedna rzecz -
zaznaczone linijki, niestety nie potrafie wpasc na wlasciwy sposob. Generalnie
chodzi o to, zeby Excel automatycznie kopiowal dane z roznych arkuszy do
jednego glownego. Niestety nie wiem jak zrobic zeby zaczynal od pierwszego
wolnego wiersza w kolumnie C (aczkolwiek nie moze byc to mniejsze nic C6, np
C5). Jak widac w kodzie uzylem funkcji, ktora zaznacza ostatni wypelniony
wiersz, poczym naciskam strzalke w dol, niestety Excel widzi to jako
zaznaczenie konkretnej komorki a nie przesuniecie w dol.

Jakis pomysl jak to zrobic, badz inny sposob by excel kopiowal dane z tabeli z
roznych arkuszy do jednego miejsce. Jednakze te dane w miare uplywu czasu beda
uaktualnianie i bedzie ich przybywalo wiec nie moze sie to odnosic do
orkeslonego zakresu komorek?

Poki co wydaje mi sie ze to co mam na dole dziala poza jednym wspomnianym
szczegolem.

Bede wdzieczny za pomoc!!!


Sub Macro10()
'
' Macro10 Macro
' Macro recorded 07/04/2009 by Marcin
'

'
Sheets("SHEET ONE").Select
Range("C6").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("MASTER ").Select
Range("C6").Select
ActiveSheet.Paste
Sheets("SHEET TWO").Select
Range("C6").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("MASTER ").Select
Range("C6").Select
Selection.End(xlDown).Select
Range("C12").Select <-
Obserwuj wątek
    • Gość: M.M. Re: VBA Excel - pytanie o kod IP: *.bmly.cable.ntl.com 07.04.09, 21:52
      Za szybko wklejalem :((

      Nie ma problemy z linijka do wklejania danych tylko z ta zaznaczona nad nia oraz
      Selection.End(xlDown).Select

      Sorry!
      • Gość: Gość Re: VBA Excel - pytanie o kod IP: *.acn.waw.pl 08.04.09, 00:21
        Pierwszą wolna komórkę można określić za pomocą takiej np funkcji:
        wolnakomorka(kolumna, początkowy_rząd, końcowy_rząd)

        Np wolnakomorka("A",1,32768)

        Function wolnakomorka(column As String, firstRow As Integer, lastRow As Integer) As String
        Dim kom As Range
        Dim myAddress As String
        myAddress = column & firstRow & ":" & column & lastRow
        For Each kom In Range(myAddress)
        If IsEmpty(kom.Value) Then
        wolnakomorka = CStr(kom.Address)
        Exit Function
        End If
        Next kom
        End Function
        • mr.illusion Re: VBA Excel - pytanie o kod 08.04.09, 14:39
          re up:

          Wielkie dzieki za pomoc. Niestety albo ja cos robie zle albo ta
          formula nie dziala do konca jakbym potrzebowal.

          Kiedy uzywam samej formuly, podaje mi ona tylko adres pierwszej
          wolnej komorki np $a$5 aczklowiek jej nie znaznacza, czyli to co
          potrzebuje!

          Kiedy wklejam ta formule do zamieszczonego powyzej kodu, mako
          przestaje dzialac przy tej formule. Nie wyskakuje zaden komunikat
          bledu, wykonywane sa wszystkie czynnosci do tej formuly a potem
          koniec. Moze cos zle robie?

          Bede bardzo zobowiazany za pomoc.

          Thx!!

          W taki sposob wstawilem ja do kodu makra:


          .
          .
          .
          Selection.End(xlDown).Select
          wolnakomorka("A",1,32768)
          ActiveSheet.Paste
          .
          .
          • Gość: Gość Re: VBA Excel - pytanie o kod IP: *.acn.waw.pl 08.04.09, 15:35
            > Selection.End(xlDown).Select
            > wolnakomorka("A",1,32768)
            > ActiveSheet.Paste

            Taki zapis niestety kompletnie nie ma sensu :)
            Może inaczej, umieść tą funkcję w module:

            Public Function wolnakomorka(column As String, firstRow As Integer, lastRow As
            Integer, sel As Boolean) As String
            Dim kom As Range
            Dim myAddress As String
            myAddress = column & firstRow & ":" & column & lastRow
            For Each kom In Range(myAddress)
            If IsEmpty(kom.Value) Then
            wolnakomorka = CStr(kom.Address)
            If sel Then Range(wolnakomorka).Select
            Exit Function
            End If
            Next kom
            End Function

            i skorzystaj z niej w swoim kodzie, żeby zaznaczyć pierwszą wolną komórkę. Np
            wolnakomorka "A", 1, 100, True
            (spowoduje wyszukanie wolnej komorki w kolumnie A, w zaresie rzędów od 1 do 100,
            i umieszczenie kursora w tej komorce.
            • Gość: M.M. Re: VBA Excel - pytanie o kod IP: *.bmly.cable.ntl.com 08.04.09, 21:58
              Dziala i to zaj*biscie!!!

              Naprawde wielkie dzieki, sam bym tego nie zrobil. Nie tylko napisales skrypt ale
              jeszcze wytlumaczyles jak go uzyc.

              Jestes GOSC :))

              THX!!!

Nie masz jeszcze konta? Zarejestruj się


Nakarm Pajacyka