ID tematu: 27908
 |
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
|
|
|
 |
|
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:
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
|
|
|
 |
|
EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email
|
|
|
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
|
| |
| |