Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 27908 Skopiuj do schowka Licznik wewnętrznych ID
Autor Wiadomość
michael146 
świeżak


Posty: 1
Wysłany: 2012-02-08, 13:14   Licznik wewnętrznych ID

Witajcie,

Ciekawe forum - będę tu częściej na pewno.
W pracy dużo excela używam, ale jest jeszcze dużo rzeczy, które stanowią dla mnie barierę.
Interesuje mnie zrobienie czegoś takiego.
W pracy w 3 osoby uzupełniamy pewien plik, mnóstwo kolumn, jedna z nich to Internal ID.
Idea jest taka, że każdy z nas będzie wpisywał swoje inicjały i numer, zaczynając od 1.
Czyli np. jeden wers to XX1, drugi YY1, trzeci to ZZ2, nastepny XX22 i tak dalej w dowolnej kolejności może być XX1, XX2, XX3, YY1, XX4, YY2 - i tak dalej w zalezności kto będzie uzupełniał plik i kiedy.

Chciałbym stworzyć taką formułkę, że jak na przykład wpisze w komórkę XX - to żeby excel sprawdził jakie XX pojawiały się wcześniej w tej samej kolumnie i od razu dodał 1. Więc na przykład jeśli ostatnią wartością było XX7, a ja wpiszę XX to chciałbym, żeby excel wyświetlił wartośc XX8. Analogicznie dla YY i ZZ.
Jest coś takiego w ogóle możliwe w excelu do zrobienia?
Z makro u mnie kiepsko - dopiero się uczę.

Jeśli wyrazilem sie zbyt lakonicznie to dajcie znać ;)

Pozdrawiam.
ID posta: 147875 Skopiuj do schowka
 
 

EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email

Wormsek 
Excel Expert



Zaproszone osoby: 1
Pomógł: 586 razy
Posty: 2657
Wysłany: 2012-02-08, 14:48   

W VBA można takie coś do modułu arkusza:
Kod:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range
    Dim w As Long
    Dim ile As Long
    Set rng = Intersect(Target, Columns("A"))
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With
    If Not rng Is Nothing Then
        If Not IsEmpty(Target) Then
            w = Target.Row
            If w > 1 Then
                ile = Application.CountIf(Range("A1:A" & w - 1), Target & "*")
                Target = Target & ile + 1
            Else
                Target = Target & 1
            End If
        End If
    End If
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
    Set rng = Nothing
End Sub


Tylko, że jest to dość śliski temat, bo jak jeden będzie wpisywał PAA a drugi PA to PA potraktuje jakby to był PAA.

Ale nie wiem czy jest sens sięgać do VBA, skoro to można zrobić formułami. Czyli w kolumnie pomocniczej każdy wpisuje swój podpis (niech będzie to kolumna G powiedzmy). I teraz tak:
1. W komórce A1 wpisujemy:
Kod:
=G1&"1"

W komórce A2:
Kod:
=JEŻELI($G2="";"";$G2&(LICZ.JEŻELI($G$1:G1;$G2)+1))

I tą formułę przeciągasz w dół i teraz każdy dopisuje inicjały w kolumnie G, a w A się ładnie numerują.
_________________
Pozdro
Worm

FAQ - Najczęściej zadawane pytania.
JAK KORZYSTAĆ Z SZUKAJKI
Słownik funkcji
ID posta: 147894 Skopiuj do schowka
 
 

EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email

Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum