Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

automatyczna zamiana na duże litery w EXCELU

252 views
Skip to first unread message

dav...@poczta.onet.pl

unread,
Feb 27, 2003, 4:55:05 AM2/27/03
to
Czy wie ktoś może jak sformatować wszystkie komórki w excelu tak aby po
wpisaniu tekstu złożonego z małych liter zamieniał się on na tekst z dużych
liter
David

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl

PiotrB

unread,
Feb 27, 2003, 6:36:09 AM2/27/03
to
zrób makro które wszystkie komórki przemieni za pomocą funkcji
=LITERY.WIELKIE(A1)

I już

PiotrB
Użytkownik <dav...@poczta.onet.pl> napisał w wiadomości
news:4cc1.000009...@newsgate.onet.pl...

janusz

unread,
Feb 27, 2003, 7:29:22 AM2/27/03
to

Użytkownik <dav...@poczta.onet.pl> napisał w wiadomości
news:4cc1.000009...@newsgate.onet.pl...

Mozesz uzyc tego makra
zmienia nale na duze litery z zaznaczonego odszaru

Sub ZmienText()
Dim Tekst As String, Komorka As Range

For Each Komorka In Selection
If Komorka <> "" Then
Tekst = Komorka
Tekst = UCase(Tekst)
Komorka = Tekst
End If
Next Komorka

End Sub

Janusz


db...@poczta.onet.pl

unread,
Feb 27, 2003, 12:32:43 PM2/27/03
to
Mam taki dość prosty (prymitywny?) sposób. Nie wiem czy znasz VBA, jesli tak do
makr arkusza wklej taką procedurę:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Offset(-1, 0) = UCase(Target.Offset(-1, 0))
End Sub

zamieni małe litery na duże jeśli zatwierdzisz wpis enterem (i jesli
przechodznie enterem masz ustawione w dół).

Jakby co moge ci wysłac taki plik na mail.

pozdr.

pxd74

unread,
Feb 27, 2003, 2:42:31 PM2/27/03
to
Użytkownik <db...@poczta.onet.pl> napisał w wiadomości news:4cc1.00000b...@newsgate.onet.pl...

> Mam taki dość prosty (prymitywny?) sposób. Nie wiem czy znasz VBA, jesli tak do
> makr arkusza wklej taką procedurę:
>
> Private Sub Worksheet_SelectionChange(ByVal Target As Range)
> Target.Offset(-1, 0) = UCase(Target.Offset(-1, 0))
> End Sub
>
> zamieni małe litery na duże jeśli zatwierdzisz wpis enterem (i jesli
> przechodznie enterem masz ustawione w dół).

Tak, to prawda, lecz jeśli zaczniesz poruszać się po arkuszu klikając w jakieś komórki lub używając strzałek czy klawisza TAB -
skutki działania tego makra mogą być nieprzewidziane. Lepiej umieścić podobny kod w zdarzeniu Worksheet_Change jak poniżej:

Private Sub Worksheet_Change(ByVal Target As Range)
Target = UCase(Target)
End Sub

Piszę z pamięci, więc proszę o dokładne sprawdzenie działania tego makra, ponieważ nie mam pod ręką Excela, w szczególności
przypadku, gdy obiekt Target składa się z wielu komórek (np. przy wklejaniu jakiejś wartości do kilku komórek na raz). Być może
wtedy należy użyć pętli - poniższe makro wklejone do modułu powinno wtedy zadziałać:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
If Taget.Count > 1 Then
For i = 0 To Target.Count - 1
Target(i) = UCase(Target(i))
Next
Else
Target = UCase(Target)
End If
End Sub

Oczywiście jeden z powyższych kodów powinnieś umieścić w module jakiegoś arkusza. Jeśli chcesz, aby makro dotyczyło całego
skoroszytu wklej do modułu ThisWorkbook poniższe makro:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)
Dim i As Long
If Source.Count > 1 Then
For i = 0 To Source.Count - 1
Source(i) = UCase(Source(i))
Next
Else
Source = UCase(Source)
End If
End Sub

--
Pozdrowienia
px...@poczta.onet.pl

0 new messages