Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Excel, Vba] Przycisk do kopiowania kolumn i powielania

-Tomi- 27 Sie 2010 17:56 7104 19
  • #1 27 Sie 2010 17:56
    -Tomi-
    Poziom 13  

    Problem polega na tym że za pomocą przycisku " kopiuj" w arkuszu1 z danych kolumn muszę przekopiować wartości do tych samych kolumn w arkuszu 2 i 3 kolumny z arkusza 1 mają się kopiować od wiersza 9 do napisu razem.(liczba wierszy będzie się zmieniać). Natomiast w arkuszu 2 mam kolejny przycisk który mi odejmuje z arkusza 1 i 3. teraz chciałby zrobić jeszcze tak że jak te wartości się przekopiują to przycisk w arkuszu2 się powieli na pozostałe wiersze i będzie działał poprawnie. Udało mi się napisać kod do przycisku w arkuszu2 ale nie potrafię zrobić tego do przycisku w arkuszu1. W załączniku dołączam plik.

    0 19
  • #2 28 Sie 2010 16:40
    -Tomi-
    Poziom 13  

    Może ma ktoś jakiś pomysł?

    0
  • Pomocny post
    #3 28 Sie 2010 22:49
    adamas_nt
    Moderator Programowanie

    Pomysły na pewno się znajdą. Ale dlaczego za pomoc oczekujesz zapłaty (prowizja za download)?

    0
  • #4 29 Sie 2010 11:29
    -Tomi-
    Poziom 13  

    Przepraszam za punkty to było automatycznie

    0
  • Pomocny post
    #5 29 Sie 2010 17:17
    adamas_nt
    Moderator Programowanie

    Czy wiesz, że w "Arkusz2" prawdopodobnie w wyniku kopiowania, wklejania a następnie usuwania wierszy jest ponad 500 przycisków o nazwie "CommandButton1"?

    Kiedyś był już podobny temat poruszający ten problem. Kopiowanie i wstawianie wiersza z przyciskiem działa OK, ale usunięcie wierszy powoduje układanie się obiektów w stosik, z których widoczny jest tylko ten na wierzchu. Skopiowanie wiersza ze stosikiem, następnie usunięcie powoduje lawinowy przyrost obiektów.

    Należy rozważyć czy w tym przypadku lepszym rozwiązaniem nie byłoby wykorzystanie zdarzenia arkusza Np "BeforeDoubleClick" w kolumnie "L" zamiast przycisków?

    0
  • #6 29 Sie 2010 17:45
    -Tomi-
    Poziom 13  

    może nie być przycisku w arkuszu drugim chodzi mi o to żeby Np "BeforeDoubleClick" w kolumnie "L" miało takie samo działanie nie jestem dobry w programowaniu i proszę o wsparcie.

    0
  • #8 29 Sie 2010 19:16
    -Tomi-
    Poziom 13  

    Prawie jest oki z tym że jeśli np w arkuszu 2 dodam jakąś kolumnę z innymi danymi to dane już nie trafiają tam gdzie powinny. A jeśli z arkusza1 usunę wierszę i wcisnę skopiuj to w arkuszu2 to się nie zmieni a powinno.

    0
  • #9 30 Sie 2010 05:25
    adamas_nt
    Moderator Programowanie

    Cóż, w przypadku wstawienia kolumny należy skorygować makro. To nie funkcja w arkuszu, samo się nie zrobi...

    0
  • #10 05 Wrz 2010 17:29
    -Tomi-
    Poziom 13  

    Jak np. zrobić tak w przycisku żeby z arkusza1 skopiował mi dane z kolumny a od wiersza 9 do komórki w tej samej kolumnie z napisem koniec i wstawił je w arkuszu 2 w kolumnie a wiersz 3.

    0
  • #11 05 Wrz 2010 20:57
    adamas_nt
    Moderator Programowanie

    Wstawiłeś kolumnę "Próg" w "Arkusz2".
    Pytanie: co chcesz kopiować i gdzie przyciskiem [Kopiuj] w "Arkusz1" i co z tą nową kolumną?
    Powód: WSZYSTKIE Makra się wysypały...

    Uwaga na przyszłość (a może i teraźniejszość): Uzupełnij arkusze we wszystkie potrzebne kolumny a w następnej kolejności pytaj o makro.

    Uwaga2: Pomyśl, pokombinuj. Wystarczy z lekka przerobić oba makra i wszystko zadziała jak chcesz. Myślenie nie boli a czegoś się nauczysz.

    0
  • #12 05 Wrz 2010 22:31
    -Tomi-
    Poziom 13  

    Chodzi mi o to żebym za pomocą tego przycisku mógł skopiować kolumny z arkusza1 ale jak wiać w arkuszu drugim mają one trafiać w różne miejsca tzn. kolumn A z arkusza1 ma trafić w kolumnę B do Arkusza2 następnie kolumna H z arkusza1 ma trafić w kolumnę J do Arkusza2. Generalnie chodzi mi o to żebym mógł deklarować żę kolumna "x" z arkusza 1 ma trafić w kolumnę "h" z arkusza2 ale mają się kopiować tylko dane z tych kolumn które kopiuję a nie wszystkie pozostałe. Jak pisałem programowanie nie jest moją mocną stroną i dlatego proszę o pomoc .

    0
  • Pomocny post
    #13 05 Wrz 2010 23:03
    adamas_nt
    Moderator Programowanie

    Poprawiłem makra. Kod przycisku uprościłem dla jasności. Przeanalizuj zapis dot. co dokąd jest kopiowane, zawsze będziesz mógł sobie zmienić...

    0
  • #14 08 Wrz 2010 01:09
    -Tomi-
    Poziom 13  

    Dzięki Twoim wskazówką udało mi się wszystko tak jak chciałem dzięki wielkie. Mam tylko takie pytanie czy w arkuszu1 w komórce I14 obok sumy zaraz, mogę wstawić funkcję sumy pośrednie tylko tak żeby zliczały się one gdy np. dodam wiersze i zastosuję autofiltr zawsze stosowałem coś takiego

    Code:
    =SUMY.POŚREDNIE(9;O9:O15)
    i to działało lecz gdy dodałem np wiersz O16 to liczyło tylko do 15 jest możliwość zrobienia może jakiegoś makra żeby to zliczało automatycznie lub po naciśnięciu dodatkowego przycisku???

    0
  • #15 08 Wrz 2010 22:22
    adamas_nt
    Moderator Programowanie

    Szczerze mówiąc funkcję SUMY.POŚREDNIE stosowałem dotychczas przede wszystkim w tabelach pogrupowanych (każda grupa i zagnieżdżone podgrupy mają swój nagłówek) lub przy filtrze. Nie używam jej w zakresie ciągłym. Obliczenia w tym wypadku wykonuję raczej "zwykłymi" funkcjami (SUMA, SUMA.JEŻELI, LICZ.JEŻELI etc) lub którąś z tablicowych.

    Nie wiem dokładnie o co chodzi, bo w kolumnie "O" nic nie ma. Do zautomatyzowania działania można wykorzystać zdarzenie arkusza, gdzie przy kliknięciu w dowolną komórkę zdefiniowanego zakresu następowałaby zmiana argumentu formuły. Tylko co i na jakich zasadach chcesz liczyć?

    0
  • #16 08 Wrz 2010 22:46
    -Tomi-
    Poziom 13  

    Dokładniej mówiąc to w arkuszu1 kolumnę I czyli "reakcje" wynik ma być w komórce obok napisu suma. Chodzi mi o to jeśli wstawię wierszy między ostatni wiersz z danymi a komórkę razem to wstawiony wiersz nie będzie się zliczał. Chciałbym żeby w komórce obok sumy zliczały się dane od 9 wiersza w kolumnie I do ostatniego wiersza z danymi no i wynik był obok napisu suma.

    0
  • #17 08 Wrz 2010 22:48
    adamas_nt
    Moderator Programowanie

    Ale wynik jakiego działania? Suma, średnia, policz coś tam...

    Dla sumy wstaw po prostu

    Code:
    =SUMA(I9:I13)

    0
  • #18 08 Wrz 2010 22:52
    -Tomi-
    Poziom 13  

    sumy pośrednie bo jeśli będą sumy a zastosuję auto filtr to policzy wszystkie wiersze a nie wybrane a przy sumach pośrednich jak zastosuję autofiltr to policzy mi wiersze które widać

    Dodano po 1 [minuty]:

    jak dodasz wiersz to będzie już I14 a w komórce będzie funkcja licząca tylko do I13

    0
  • #19 08 Wrz 2010 22:57
    adamas_nt
    Moderator Programowanie

    [Excel, Vba] Przycisk do kopiowania kolumn i powielania

    Najpierw wpisałem zakres (i9:i13) a następnie wstawiłem wiersz...

    0
  • #20 08 Wrz 2010 23:13
    -Tomi-
    Poziom 13  

    [Excel, Vba] Przycisk do kopiowania kolumn i powielania

    Ja mam coś takiego u Ciebie jest jeszcze dodatkowy wiersz i szerokość zmniejszona do 0 ja nie mogę sobie na to pozwolić bo jak będę kopiował to ten wiersz co jest pomniejszony skopiuje się jako normalny. I dlatego chciałbym użyć tu jakiegoś makra

    0