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

Wstawianie kolumny w określonym miejscu w excelu w kodzie vba

wielgot 23 Kwi 2014 12:27 2136 14
  • #1 23 Kwi 2014 12:27
    wielgot
    Poziom 7  

    Witam, mam pewien problem, którego samodzielenie nie potrafie rozwiązać. Mam w arkuszu excela w jednym wierszu, w poszczególnych komórach daty, które odpowiadaja poszczególnym datą reprezentujacycm soboty, niedziele i swieta w danym roku kalendarzowym. W te dni pracuje pewna grupa pracowników. Pod każda data zaznaczam, czy pracownik pracował, czy tez nie.
    Chiałbym mieć mozliwość dodania kolumny w okreslonym miejscu na podstawie daty podawanej przez inputbox. Czyli zachodzi koniecznośc wprowadzenia dodatkowego dnia, kiedy pracownicy musza pracować, a daty tej nie ma w wykazie. Po wprowadzeniu tej daty w inputboxie excel powinien wstawić kolumnę z data w okreslonej komórce. Ta kolumna powinna byc wstawiona pomiedzy inne daty tz. jedna bezpośrednio mniejszą, a druga większa.
    Wiem jak wstawiac wiersze w vba ale nie wiem jak zrealizować zapis który po wprowadzeniu daty w inputboxie sam wyszuka odpowiednie miejsce i wstawi kolumne z datą.

    0 14
  • Szkolenia elektronika Udemy
  • Pomocny post
    #2 23 Kwi 2014 14:05
    marcinj12
    Poziom 40  

    Pokombinuj z tym:

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • Pomocny post
    #3 23 Kwi 2014 14:58
    cbrman
    Poziom 27  

    Przetestuj poniższe makro:

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • Szkolenia elektronika Udemy
  • #4 24 Kwi 2014 07:52
    wielgot
    Poziom 7  

    Bardzo dziekuję za pomoc, działa, choć chciałbym by wstawiało ta kolumne pomiedzy te gdzie ta data sie mieści czyli pomiedzy datę bezpośrednio mniejsza i wiekszą.

    0
  • #5 28 Maj 2014 10:09
    wielgot
    Poziom 7  

    Mam jeszcze jeden problem. Wasze podpowiedzi były super i dzieki, ale jak zrobic by po dodaniu juz kolumny w odpowiednim miejscu na podstawie podanej daty excel wstawiał w tej kolumnie w wierszu 2 formułę sumujaca dla tej kolumny wartosci od wiersza 4 do 3000.
    poniżej podaje pracujacy juz kod

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #6 28 Maj 2014 13:27
    JRV
    Specjalista - VBA, Excel

    Witaj
    "=Sum(Range(Cells(4, lCol), Cells(3000, lCol)))"

    0
  • #7 30 Maj 2014 08:03
    wielgot
    Poziom 7  

    Bardzo dziekuje za podpowiedź, ale niestety nie zadziałało. Po wstawieniu podpowiedzianej formuły błędów nie ma, ale zamiast działajacej formuły we wstawionej w komórce w wierszu 2 pojawia sia #NAZWA? i po wprowadzeniu kursora na ta komórke mam przenieniony zapis "=Sum(Range(Cells(4, lCol), Cells(3000, lCol)))"

    0
  • Pomocny post
    #8 30 Maj 2014 08:56
    JRV
    Specjalista - VBA, Excel

    Przepraszam ....
    Cells(2, lCol).Offset(, 1).FormulaR1C1 = "=Sum(R4C" & lCol & ":R3000C" & lCol & ")"

    0
  • #9 30 Maj 2014 09:16
    wielgot
    Poziom 7  

    Bardzo dziekuję, super działa

    Dodano po 12 [minuty]:

    Ma jeszcze jedno pytanie. W tym arkuszu o którym cały czas piszę w wierszu drugim sa dodawane dynamicznie kolumny an podstawie wprowadzonej przez inputbox daty. Ta data jest wprowadzona w wierszu 3 tej kolumny, a wierszu 4 tej kolumny jest wprowadzana formuła sumowania wartości od wiersza 4 do 3000. jak wygladałby koc VB by zliczać sumy poszczególnych dni w miesiacu?

    0
  • #10 30 Maj 2014 12:42
    JRV
    Specjalista - VBA, Excel

    Coś jestem trochę mylić, proszę plik na przykład

    0
  • #12 30 Maj 2014 15:58
    JRV
    Specjalista - VBA, Excel

    wielgot napisał:
    by zliczać sumy poszczególnych dni w miesiacu?

    W których miesiącach? Ich tam co najmniej widoczne 5.
    Dla każdego pracownika?
    Gdzie to wkleić?(E, F, G, H)

    0
  • #13 04 Cze 2014 07:49
    wielgot
    Poziom 7  

    W pliku sa juz sumy dla każdego dnia, sa one w wierszu 2. Chodzi o to by sumował w miesiacu, ale problem w tym ze dniówki sa dodawane przez kod gdy trzeba i by program rozpoznawała te z ka\zdego miesiaca danego roku i sumował

    0
  • #14 08 Paź 2015 16:21
    peter_o
    Poziom 10  

    pozwolę dołączyć się do tematu,
    potrzebuję napisać kod vba tak aby dodawał nową kolumnę za komórką gdy w jej nagłówku znajdzie literę D (nagłówki kolumn mają nazwy D0, D42, D50 itd...)bardzo Was proszę o pomoc.

    0
  • #15 08 Paź 2015 18:45
    JRV
    Specjalista - VBA, Excel

    Przy zalozeniu - naglowki w wiersze 1:

    Code:
    For kol = Cells(1, Columns.Count).End(xlToLeft).Column To 1 Step -1
    
        If Cells(1, kol) Like "D*" Then
            Columns(kol + 1).Insert
        End If
    Next

    0