niedziela, 23 marca 2014

MAKRO - Usuwanie zbędnych spacji z zaznaczonych komórek

Często zdarza mi się dostać od kogoś plik w którym ktoś na początku lub końcu komórki w tekście wpisał spacje.
Jak się ich pozbyć?

KOD


Sub usunZbedneSpacje()
On Error Resume Next
   Dim komorka As Range          ' zmienna która będzie wskazywała aktualną komórkę
   For Each komorka In Selection ' dla każdej zaznaczonej komórki rób:
                                 ' trim - usuwa białe znaki z obu lewej i prawej tekstu.
      komorka = Trim(komorka)    ' wynik zapisujemy z powrotem do tej samej komórki
   Next komorka                  ' koniec for. Czyli przejdź do następnej komórki
End Sub

KONIEC! Widzisz jakie proste?

A jeśli chcemy coś więcej....

Modyfikacje:

Potrzebujemy usunąć również podwójne spacje ze środka tekstu

wystarczy zamiast funkcji Trim użyć funkcji WorksheetFunction.Trim

czyli linijka może wyglądać tak:
        komorka = WorksheetFunction.Trim(komorka)    

Tutaj użyliśmy funkcji która dodatkowo wszystkie podwójne spacje zamienia na pojedyncze.

Jeśli chcesz usunąć wszystkie spacje z komórek.

        komorka = replace(komorka, " ", "")
Funkcja Replace działa jak znajdź i zamień. Tutaj chcemy, żeby w komórce znalazł wszystkie spacje (" ") i je zlikwidował, czyli zamienił na nic ("")

Jeśli potrzebujemy usunąć spacje z konkretnego zakresu (a nie z zaznaczenia)

Pętla For each jest tak fajna, że możesz użyć jej również w tym przypadku.
Poniżej przykład pętli, która iteruje po wszystkich komórkach z zakresu od A1 do B20 oraz w kolumnie C:

For Each komorka In Range("A1:B20,C:C")

Jeśli masz pytania / uwagi / propozycje jakie makra byłyby Ci potrzebne to pisz w komentarzach

poniedziałek, 5 sierpnia 2013

Excel - Formatowanie Warunkowe - zadanie i rozwiązanie

ZADANIE

Zadanie polega na wyróżnieniu wszystkich osób o wieku poniżej 30 lat.
a) chcemy pokolorować tylko ich wiek
b) chcemy pokolorować cały wiersz w którym jest taka osoba

Do zadania będzie potrzebna baza osób kliknij tu (xlsx) lub tu (zip)

Najwygodniej rozwiązać to zadanie używając formatowania warunkowego.
Dzięki temu po zmianie danych kolorowanie komórek również się zmieni. (będzie aktualizowało się na bieżąco)



Rozwiązanie pkt a)


To do dzieła!
  1. Zaznaczamy wszystkie komórki zawierające wiek.
  2. z karty Narzędzia Główne wybieramy Formatowanie Warunkowe -> Nowa Reguła -> Formatuj komórki zawierające
  3. wpisujemy kryteria w kolejnych kratkach (konkretnie: wartość, mniejsza niż, 30)
  4. musimy jeszcze wybrać kolor na który mają sformatować się komórki spełniające kryteria, czyli Formatuj -> karta Wypełnienie -> wybieramy kolor
  5. Klikamy OK
Możesz zobaczyć to tutaj

Rozwiązanie pkt b)

  1. Zaznaczamy całą tabelę (bez nagłówków) a nie tylko wiek.
    (bo jeśli wszyscy mieliby poniżej 30 lat, to chcemy kolorować wszystkie komórki)
  2. z karty Narzędzia Główne wybieramy Formatowanie Warunkowe -> Nowa Reguła -> Użyj formuły do określenie komórek...
  3. wpisujemy formułę: =$E2 < 30
    Formułę piszemy tak, żeby była prawdziwa jeśli komóreka ma być kolorowana, w przeciwnym razie ma dać w wyniku fałsz.
    Formuła ma być napisana dla lewej górnej komórki (aktywnej) czyli w naszym przypadku dla A2
    A po co znaczek $ ?
    musimy wstawić go przed E, ponieważ Excel kopiując komórki powinien zawsze sprawdzać wiek (kolumnę E). Jeśli zabrakło by $ to Excel Dla liczb porządkowych działałoby prawidłowo, ale dla kolejnych kolumn przesuwałby kryteria w prawo (dla imion sprawdzałby zawód (kolumna F), a dla nazwisk kolumnę G)
  4. nie zapomnij o zdefiniowaniu formatowania komórek (ja wybrałem kolor niebieski)
Możesz zobaczyć to tutaj

Excel - Zamiana dat na prawdziwe daty - rozwiązanie

Zadanie

Często spostyjanmy się z sytuacją, gdy osoba która miała wpisać daty wprowadza je nieprawidłowo do Excela.
Problem w tym, że format daty do którego jesteśmy przyzwyczajeni np. 27.02.2013 nie jest akceptowany przez Excela. Program traktuje takie daty jako tekst, czyli nie różni się niczym od ab.cd.efgh

Chcielibyśmy znaleźć sposób na szybką zamianę takich dat na prawdziwe daty.

Rozwiązanie

Posłużymy się tutaj narzędziem tekst jako kolumny z karty Dane.
W tym celu: Zobacz film
  1. zaznaczamy kolumnę z datami
  2. Z karty Dane wybieramy narzędzie tekst jako kolumny
  3. Zaznaczamy opcję rozdzielany i klikamy Dalej
  4. Odznaczamy wszystkie opcje ( bo nie chcemy rozdzielać tej kolumny) i klikamy dalej
  5. Zaznaczamy opcję Data i wybieramy DRM (czyli kolejność w jakiej zapisane są nasze "prawie daty")
  6. Jeżeli chcemy mieć daty w innej kolumnie to w polu miejsce docelowe zaznaczamy komórkę w której mają się zacząć pojawiać daty
  7. Klikamy Zakończ.
    Prawdziwe daty powinny wyrównać się do prawej strony komórki, a tekst do lewej