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

  tytuł wątku:
Wątki dyskusji

Rejestr do pracy


otwartyotwarty rozpoczął: adeling-herman postów: 10



napisał: adeling-herman
postów: 14


umieszczony:
16 marca 2011
08:41

  
Super !!! O to mi chodziło :) Dzieki serdeczne za pomoc. Trzymaj sie
Pozdrawiam
A-H
napisał: Trebor
postów: 1209


umieszczony:
15 marca 2011
17:27

  
W dalszym ciągu nie jestem pewien czy dobrze rozumiem:
Sub przeslij()
Dim ostatnia As Long
If Range("K14") <> "" Or Range("K16") <> "" Or Range("K18") <> "" Then
If Range("K14") = "" Or Range("K16") = "" Or Range("K18") = "" Then
MsgBox "Skompletuj dane w arkuszu 1"
Else
With Sheets("Arkusz2")
ostatnia = .Columns("A:E").Find(What:="*", After:=.Cells(1, 1), _
               SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
.Cells(ostatnia, 1) = Sheets("Arkusz1").Range("K14")
.Cells(ostatnia, 2) = Sheets("Arkusz1").Range("K16")
.Cells(ostatnia, 3) = Sheets("Arkusz1").Range("K18")
.Cells(ostatnia, 4) = Application.UserName
.Cells(ostatnia, 5) = Date
End With
Sheets("Arkusz1").Range("K14,K16,K18,O21").ClearContents
End If
End If
'tutaj taki sam zestaw dla arkusza4

End Sub

napisał: adeling-herman
postów: 14


umieszczony:
15 marca 2011
10:23

edytowany:
15 marca 2011
11:38

  
nazwa pliku rozmiar
test.xls 19.00 kB

Hej,

Faktycznie - zbyt ogolnie to opisalem. Dlatego zalaczylem ten sam przyklad co na początku :)

Zależy mi na tym, żeby po kliknięciu przycisku PRZESLIJ I ZAPISZ do tabeli w Arkusz2 kopiowały sie - jak do tej pory - dane z Arkusz1 i jednocześnie dane z Arkusz4

Dwie pieczenie przy jednym ogniu :) Z góry dzięki

Pzdr
A-H
napisał: Trebor
postów: 1209


umieszczony:
14 marca 2011
16:44

  
Zdaje się, że nie łapię problemu. Sposób adresowania może być np. taki:
With Sheets("Arkusz2")
ostatnia = .Columns("A:E").Find(What:="*", After:=.Cells(1, 1), _
               SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
.Cells(ostatnia, 1) = Sheets("Arkusz1").Range("A1")
.Cells(ostatnia, 2) = Sheets("Arkusz2").Range("B1")
End With


Jeśli jednak nie o to chodzi, spróbuj opisać to ciut dokładniej.
napisał: adeling-herman
postów: 14


umieszczony:
14 marca 2011
11:53

  
Dzięki serdeczne za wytlumaczenie :)

Mam jeszcze jedną kwestię z którą chciałbym się do Ciebie zwrócić:

Jak przerobić kod jeśli chciałbym żeby kopiowały mi sie do tabeli dane z rubryk z dwóch różnych arkuszy np: z arkusza1 komórki: A1, A2, A3, a z arkusza2 komórki: B1, B2, B3 ?

Za pomoc serdeczne dzięki
A-H
napisał: Trebor
postów: 1209


umieszczony:
4 marca 2011
17:07

  
Przypuszczam, że w trakcie projektowania próbowałeś różnych formatek i zostało mnóstwo zbędnych rzeczy. Dla poprawnego działania makra które zamieściłem wystarczą cztery zaznaczone referencje od góry z załączonego obrazka. Minimum - odhacz oznaczone jako Missing. Jednak najpewniej to przepakuj wszystko co niezbędne do nowego skoroszytu.

Linia
ostatnia = .Columns("A:E").Find(What:="*", After:=.Cells(1, 1), _
               SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row


służy do znajdowania ostatniego zajętego wiersza w kolumnach od A do E. Gdy do takiego nr wiersza dodamy 1, otrzymamy nr wiersza w którym będziemy zapisywać dane. Jednak ten sposób ma pewne wady. Najważniejsze to gdy będziemy szukać w zakresie, w którym nie ma danych otrzymamy błąd. Gdy w przeszukiwanym zakresie będzie włączone filtrowanie mamy szanse wyszukać ostatni widoczny wiersz co może doprowadzić do problemów.
napisał: adeling-herman
postów: 14


umieszczony:
4 marca 2011
09:05

edytowany:
4 marca 2011
09:21

  
Hehe, dziwne.

Podpialem ten sam kod w pracy i działa !!! :D
Hula az milo :)

Ale w domu, na moim kompie nie idzie. Jak byście mieli jakis pomysl dlaczego nie chodzi na moim pryw kompie, dajcie znac (poprzedni post).

Jeszcze raz dzięki za pomoc :)

Pzdr

PS.

Mam jeszcze takie pytanie natury technicznej-powiedz mi co oznancza zmienna "ostatnia" której użyłeś ? Chciałbym to lepiej rozumieć, żeby móc używać tego kodu do innych projektów.
napisał: adeling-herman
postów: 14


umieszczony:
3 marca 2011
22:06

  
nazwa pliku rozmiar
App1.jpg 138.77 kB

@Trebor

Dzięki Ci dobry człowieku :)
RObie wszystko tak jak napisales, a mimo to zwraca mi komunikat "cant find project or library" i zaraz potem wyświetla sie okno jak w załączniku. Jestem niemal pewien ze dobrze wkleilem kod, w całości jak go napisales pod przycisk Przeslij. Czy wiesz moze co moze byc nie tak ?

Dzięki

Pzdr
A-H
napisał: Trebor
postów: 1209


umieszczony:
3 marca 2011
17:55

  
Pod przycisk prześlij podepnij poniższy kod
Sub przeslij()
Dim ostatnia As Long
If Range("K14") = "" Then MsgBox "Wpisz cenę gazu": Exit Sub: MsgBox "Dane nie zapisane"
If Range("K16") = "" Then MsgBox "Wpisz cenę elektry": Exit Sub: MsgBox "Dane nie zapisane"
If Range("K18") = "" Then MsgBox "Wpisz cenę oleju": Exit Sub: MsgBox "Dane nie zapisane"
If Range("O21") = "" Then MsgBox "Twoje dane": Exit Sub: MsgBox "Dane nie zapisane"

With Sheets("Arkusz2")
ostatnia = .Columns("A:E").Find(What:="*", After:=.Cells(1, 1), _
               SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
.Cells(ostatnia, 1) = Range("K14")
.Cells(ostatnia, 2) = Range("K16")
.Cells(ostatnia, 3) = Range("K18")
.Cells(ostatnia, 4) = Range("O21")
.Cells(ostatnia, 5) = Date
End With

Range("K14,K16,K18,O21").ClearContents

End Sub



Z grubsza powinno spełniać podstawowe funkcje
napisał: adeling-herman
postów: 14


umieszczony:
3 marca 2011
13:50

  
nazwa pliku rozmiar
Integration.xls 70.50 kB

Witajcie,

Muszę zrobić w pracy rejestr, taką quasi-bazę danych cen kilku produktów: gazu, oleju napędowego, energii elektrycznej i nazwisko osoboy wprowadzjącej dane.
Chodzi o to, żeby te dane (cena gazu, oleju, energii i nazwisko) przekopiowało się do arkusza2 i zapisywało się jedno pod drugim, tzn. że kliknięcie przycisku Prześlij w formularzu zapisywało by kolejne wiersze w arkuszu2 po sprawdzeniu który wiersz jest pierwszym pustym itd itd.

Zrobilem juz do tego część makr, tzn. przesyłanie danych i czyszczenie formularza, no i moim zdaniem może być, ale nie mogę sobie poradzić z tym zapisywaniem jedno pod drugim :/ Gdyście pomogli byłoby super :) Z góry dzięki.

Pzdr
Adeling-Herman


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z