Firma z kluczowym systemem Excel/VBA · IT / ewidencja danych

Każdy w IT zna takie systemy. Działają od lat, są kluczowe dla firmy, a w środku przypominają mechanizm szwajcarskiego zegarka – każda komórka, formuła i makro połączone siecią tysięcy zależności. Wszyscy wiedzą, że działają, ale nikt nie ma odwagi ich tknąć, bo jeden fałszywy ruch może zniszczyć wszystko.
I wtedy przychodzi klient z pozornie prostym zadaniem: „Proszę rozbudować ten system. Chcemy dodać 1100 nowych pól do istniejących 400.” To był system ewidencji pojazdów na Excelu i VBA – ponad 60 plików, każdy po 50 arkuszy i setki unikalnych odwołań. Operacja na otwartym sercu, bez naruszania rytmu.
W takich projektach rewolucja to prosta droga do katastrofy – postawiłam na ewolucję. Zamiast ruszać istniejący kod, pisałam nowe makra wspierające rozbudowę. Zamiast ręcznie zmieniać tysiące formuł, zbudowałam mechanizm generujący nowe odwołania tylko dla dodawanych pól – stary system został nietknięty.
Część pracy była mozolna i powtarzalna, jak tworzenie dziesiątek nowych plików. Tu weszła automatyzacja – małe, sprytne automaty w VBA robiły żmudną robotę za mnie, minimalizując ryzyko błędu:
' Prosty automat, który generował dla mnie 35 nowych plików,
' tworząc idealną kopię z nowym numerem seryjnym.
Sub Utworz26_60()
For numer = 26 To 60
Set staryPlik = Workbooks.Open(sciezkaFolderu & "Plik_danych-" & (numer - 1) & ".xlsm")
staryPlik.SaveCopyAs sciezkaFolderu & "Plik_danych-" & numer & ".xlsm"
Set nowyPlik = Workbooks.Open(sciezkaFolderu & "Plik danych-" & numer & ".xlsm")
nowyPlik.Sheets("Nr Karty").Range("A5").Value = "Plik_danych-" & numer
Next numer
End Sub
Każda zmiana wdrażana iteracyjnie, testowana, zabezpieczana kopią. Powolna, precyzyjna praca – ale tylko ona gwarantowała bezpieczeństwo całości.
Pacjent przeżył i ma się świetnie. Liczby mówią same za siebie:
Nawet najbardziej „nietykalne” systemy da się rozwijać. Klucz to nie brawura, ale szacunek do istniejącej architektury i ostrożność, która pozwala dodać nowe, zachowując duszę oryginału.
Napisz, o co chodzi - nie musi być technicznie, od tego jestem ja. Odezwę się i powiem wprost, czy i jak mogę pomóc.