Tarihler arasına noktayı otomatik yazdırmak

Soru:ArkadaÅŸlar Merhaba,
Bir soruna takıldım. Excelin kendi fonksiyonlarıyla uğraştım yapamadım.
Soru ÅŸu : A1 hücresine doÄŸum yeri ve tarihi yazılacak. ÖrneÄŸin; A1 hücresine “Bursa 01011970” yazılacak. (dikkat edilirse tarihler arasına nokta koymadım) Entere basıldığı an; “Bursa 01.01.1970” ÅŸeklinde olması gerekir. Yani noktayı kendiliÄŸinden koyacak. Acaba bunu makroyla yapmak mümkün müdür?
NOT : Doğrudan hücre içerisine yazılacağı için excelin kendi formülü çözüm teşkil etmiyor.
Hepinize saygılarımı sunuyorum…
Cevap:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
Cancel = True 
ActiveCell.Replace What:=".", Replacement:="" 
ActiveCell.Value = Mid(ActiveCell, 1, Len(ActiveCell) - 9) & " " & Left(Right(Right(ActiveCell.Value, 8), 8), 2) & "." & Left(Right(Right(ActiveCell.Value, 8), 6), 2) & "." & Right(Right(ActiveCell.Value, 8), 4) 
End Sub
Kodlar: Bülent Öztürk

Görsel Olarak (hücrede tarih gibi görünür fakat biçim olarak sayıdır) bu işlemi ilgili hücrede iken ya da birden cük hücreyi seçtikten sonra Görsel olarak bu işlemi yapmak istiyorsanız ilgili hücrede iken (yada tüm sütunu seçerek);
Biçim>hücreler>sayı>isteğe uyarlanmış sekmelerinde tür kısmına;
##\.##\.####
şeklinde yapıştırın.
Tarihler arasında işlem yaptığınızda, örneğin iki tarih arasındaki gün farkını hesaplamaya çalıştığınızda işlemin tarih formatında doğru sonuç döndürmesini için ilgili hücrede iken ya da birden cük hücreyi seçtikten sonra yine
Biçim>hücreler>sayı>isteğe uyarlanmış sekmelerinde tür kısmına;
0#\.0#\.####
şeklinde yapıştırın. Ayrıca Bakınız...

With end with ifadelerinin nesne veya koleksiyonlarla kullanılması


VBA With ifadeleri, aynı nesne veya koleksiyonla ilgili karmaşık kodları basitleÅŸtirmenizi saÄŸlar. Sürekli olarak aynı nesneye gönderme yapmak yerine, bu nesneyi belirleyerek üzerinde bir dizi eylem gerçekleÅŸtirmek için bir With… End With ifadesi kullanabilirsiniz. Ortaya çıkan kodun okunması daha kolay olduÄŸu gibi, aynı zamamanda daha da hızlı çalışır. Bir with ifadesinin söz dizimi aÅŸağıdaki gibidir:

With object
 Olaylar (kodlar)
Ent with
Buradaki object, bir koleksiyonda dahil olmak üzere herhangi bir nesne olabilir. Örnek olarak bir pargrafın etkin biçemini, farklı bir biçem uygulamadan biraz süslemek için bir paragrafa uygulamak isteyebileceğiniz bir biçimlendirmeyi ele alalım. Diyelim ki farklı bir font daha büyük bir punto ve alt çizgisiz yazı karakterli uygulamaya, ancak paragrafın hala heading 1 biçemi ile belirlenmesine karar verdiğiniz. Bu biçimlendirmeyi ona aşağıdaki üç ifadeyle uygulayabirizsiniz:

Selection.Font.Name =”Arial Black”
Selection.Font.Size = 24
Selection.Font.Underline = wdUnderlineNone


Altenatif olarak bu kodu basitleştirmek için bir with ifadesi de kullanabilirsiniz.

With selection.Font
 .Name=”Arial Black”
.Size =24
.Underline = wdUnderlineNone
End with


Buradaki with ifadesi ile End with ifadesi arasındaki bütün ifadeler with ifadesi ile tanımlanan selection.font nesnesi için geçerlidir. Benzer bir biçimde, etkin seçime pragraf biçimlendirmesi uygulamak içinde bir with ifadesi kullanabilirsizin. Aşağıdaki ifadeler paragraf öncesi boşluğu, punto. Sonrası boşluğu da 12 punto yapar

With selection.ParagraphFormat
 .spaceBefore = 0
 .SpaceAfter=12
End with


Burada with ifadesi ile End with ifadesi arasındaki bütün ifadeler selection.ParagraphFormat nesnesi için geçerlidir. Aynı zamanda bu iki with ifadesini, her ikisinde de ortak olan Selection. Nesnesini kullanarak aşağıdaki şekilde birleştirebilirsizin:

With selection
 .Font.Name = “Arial Balack”
 .Font.Size = 25
 .Font.Underline= wdUnderlineNone
.ParagraphFormat
 .spaceBefore= 0
 .spaceAfetr= 12
End with


Ayrıca aşağıdaki örnekte olduğu gibi with ifadelerini iç içe de geçirebilirsiniz. Bu örnekte iç içe geçirmenin kullanılması (düzgün çalışsa da) şart değildir ama başka durumlarda onu gerekli bulabilirsiniz.

With selection
 .Font.Name = “Arial Balack”
 .Font.Size = 25
 .Font.Underline= wdUnderlineNone
End with


With.ParagraphFormat
 .spaceBefore= 0
 .spaceAfetr= 12
End with
End with

İPUCU: VBA kullanmayı öğrenirken bir with ifadesi oluşturmanın en kolay yolu, makro kaydediciyi üzerinde çalışmak istediğiniz nesnelere erişim yöntemini ve üzerlerinde gerçekleştiriğiniz eylemleri kaydetmek için kullanmaktır. Bunu yaptıktan sonra kodu visual Basic Editörde düzenleyin ve bu eylemleri gerçekleştirmek için kaydedilmiş olan kodun daha basit bir sürümünü kullanan with ifadesi oluşturun.

MsgBox özellikleri

‘cdrom sürücüleri msgboxta gösterir
Function FileOrFolderName(InputString As String, _
    ReturnFileName As Boolean) As String

Dim i As Integer, FolderName As String, FileName As String
    i = 0
    While InStr(i + 1, InputString, Application.PathSeparator) > 0
        i = InStr(i + 1, InputString, Application.PathSeparator)
    Wend
    If i = 0 Then
        FolderName = CurDir
    Else
        FolderName = Left(InputString, i - 1)
    End If
    FileName = Right(InputString, Len(InputString) - i)
    If ReturnFileName Then
        FileOrFolderName = FileName
    Else
        FileOrFolderName = FolderName
    End If
End Function

Sub TestFileOrFolderName()

    MsgBox FileOrFolderName(ThisWorkbook.FullName, False), , _
        "This Workbook Foldername:"
    MsgBox FileOrFolderName(ThisWorkbook.FullName, True), , _
        "This Workbook Filename:"
End Sub

‘Hücre DeÄŸerinin Msgbox ta gösterilmesi
Sub goster()
Dim veri As String
veri = Cells(8, 5).Value '8. satır 5. sütun
MsgBox ("Şu Anda E8 Hücresinde" + vbNewLine + veri _
+ vbNewLine + "DeÄŸeri var")
'vbNewline bir alt satıra indirir.
'chr(13)+chr(10) da yazılabilir
End Sub

‘İkili mesaj kutusu (evet hayır)
Sub Düğme1_Tıklat()

Dim Mesaj As String
Mesaj = MsgBox("www.kod.gen.tr", vbYesNo)
If Mesaj = vbYes Then
    MsgBox ("Evet Düğmesine Tıkladınız"), , "www.kod.gen.tr"
Else
    MsgBox ("Hayır Düğmesini Tıkladınız"), , "www.kod.gen.tr"
End If
End Sub

Mesaj kutularına ikon eklemek
Sub Düğme1_Tıklat()
'İkonlar için kullanılabilecek Seçinekler
'Vbquestion (Soru İkonu)
'vbInformation
'VbExclamation (Dikkat Ünlem İkonu)
'VbCritical (çarpı ikonu Tehlike)
Dim Mesaj As String
Mesaj = MsgBox("www.kod.gen.tr", vbYesNo + vbQuestion)’resimler burada
If Mesaj = vbYes Then
    MsgBox ("Evet Düğmesine Tıkladınız"), , "www.kod.gen.tr"
Else
    MsgBox ("Hayır Düğmesini Tıkladınız"), , "www.kod.gen.tr"
End If
End Sub

Mesaj kutularındaki satırları alt alta yazdırmak
Sub MessageBox3()
' Birdan fazla satırlı msgbox. vbCrLf alt satıra indirir
    Dim strMessage As String
    strMessage = "Kategorilerle Vba Cd'si" & vbCrLf & "www.kod.gen.tr" & vbCrLf & "A.Aşkın KÜÇÜKKAYA"
    MsgBox strMessage
End Sub

Hücre aralıklarını mesaj kutusunda göstermek
Sub Test()
'Sayfa1.hücreB2:J2 aralığını mesaj kutusunda gösterimi
Dim Email As String, Subj As String
Dim Msg As String, url As String
Dim Vin As String
Dim r As Integer, x As Double
For r = 2 To 2

Email = Cells(r, 1)
' Mesajın Konusu
Subj = "Sayfanızdaki yazılar"

Dim cell As Range
Dim strbody As String
For Each cell In ThisWorkbook.Sheets("Sayfa1").Range("B1:J1")
strbody = strbody & cell.Value & " , "

Dim cell2 As Range
Dim grades As String
For Each cell2 In ThisWorkbook.Sheets("Sayfa1").Range("B2:J2")
grades = grades & cell.Value & " , "

Next
Next
' Mesajı oluştur
Range("A1").Select
Msg = ""
Msg = "Sevgili " & Cells(r, 1) & "," & vbCrLf & vbCrLf _
& "Aşağıda sizin belirttiğiniz aralığa ait yazılar bulunmaktadır." & vbCrLf & vbCrLf _
& strbody & ", " & grades & ", " & Cells(r, 2).Text & ", " _
& Cells(r, 3).Text & ", " & Cells(r, 4).Text & ", " _
& Cells(r, 5).Text & ", " & Cells(r, 6).Text & ", " _
& Cells(r, 7).Text & ", " & Cells(r, 8).Text & ", " _
& Cells(r, 9).Text & ", " & vbCrLf & Cells(r, 10).Text & ", " _
& Cells(r, 11).Text & vbCrLf & "Eric Duchin" & " www.kod.gen.tr"

MsgBox Subj & Chr(13) & Msg
Next
End Sub

Belirtilen süre doğrultusunda mesaj kutusu çalışır
Sub test()
'mesaj kutusu 10 saniye sonra çalışır
If Application.Wait(Now + TimeValue("0:00:10")) Then
    MsgBox "Zaman Sona Erdi"
End If
End Sub

Çalışma kitabınız kapatılınca mesaj kutusu açılır
Private Sub Workbook_Deactivate()
‘Kodları ThisWorkbook’a yazınız
'Kapanışta Selam
MsgBox ("Yine Bekleriz" & vbCrLf & "Güle Güle"), , "http://www.kod.gen.tr"
End Sub

Çalışma kitabınız ilk açıldığında mesaj kutusu açılır
Private Sub Workbook_Open()
'açılışta selam
MsgBox ("Merhaba HoÅŸgeldiniz" & vbCrLf & "Kolay Gelsin"), , "http://www.kod.gen.tr"
End Sub
www.kod.gen.tr domaini bizdeyken hazırlamış olduğumuz örnek dosyaların üzerinde bu sitenin ismi yazmaktadır. şu anda yayında olan kod.gen.tr sitesiyle bir bağlantımız veya bağımız bulunmamaktadır.

Excel menü Çubuklarının gizlenmesi, aktif edilmesi

Excel çalışma kitabımızı bazen kişiselliştirmek isteriz. Örneğin çalışma kitabımızın altındaki sayfa isimlerinin olduğu menü çubuğunu 3. kullanıcalırdan gizlemek istediğimizde "ActiveWindow.DisplayWorkbookTabs = False" kodunu kullanmamız işimizi görecektir.

Açılışta menüleri gizleyen kodlar
Sub Auto_open()
    Application.DisplayFullScreen = True
    Application.CommandBars("Full Screen").Visible = False
    Application.CommandBars("Formatting").Visible = False
    Application.CommandBars("Standard").Visible = False
    ActiveWindow.DisplayHeadings = False
    ActiveWindow.DisplayOutline = False
    ActiveWindow.DisplayZeros = False
    ActiveWindow.DisplayHorizontalScrollBar = False
    ActiveWindow.DisplayVerticalScrollBar = False
    ActiveWindow.DisplayWorkbookTabs = False
    Application.DisplayFormulaBar = False
    Application.DisplayStatusBar = False
    ActiveWindow.DisplayHeadings = False 'satır ve sütunu kaldırır
 End Sub
  
 End Sub
Kapanışta menüleri gösteren kodlar

Sub Auto_close()
    Application.DisplayFullScreen = False 'ekranı tam ekran yapar
    Application.CommandBars("Full Screen").Visible = False
    Application.CommandBars("Formatting").Visible = True 'biçimlendirme araç çubuğu
    Application.CommandBars("Standard").Visible = True 'standar araç çubuğu
    Application.DisplayFormulaBar = True
    ActiveWindow.DisplayHeadings = False
    ActiveWindow.DisplayOutline = True
    ActiveWindow.DisplayZeros = False
    ActiveWindow.DisplayHorizontalScrollBar = False
    ActiveWindow.DisplayVerticalScrollBar = False
    ActiveWindow.DisplayWorkbookTabs = False
    Application.DisplayFormulaBar = False 'formul çubuğunu görünür yapar
    Application.DisplayStatusBar = False
    
    
    ActiveWindow.DisplayHeadings = False 'satır ve sütunu kaldırır
 End Sub
excelvbaexcel vba,

Excel 2007′de Özet tablo oluÅŸturmak

Excel 2007′de Özet tablo oluÅŸturmak için, görsel anlatımdan yararlanabilirsiniz.

Buradan izleyin…

Hücre olayları. Excelde Şifreleme

SelectionChange; hücrede işlem yapılsın veya yapılması başka bir hücreye geçildiğinde meydana gelen olaydır. Kodlar Thisworkbook event'ine yazılacaktır

Event (Olaylar)

Çalışma sayfası ve çalışma kitabı ile ilgili olaylar pdf dosyası.
Pdf formatındaki dosyayı indirmek için tıklayınız...