• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

VBA ile bir x.sütunun hangi sütun olduğunun belirlenmesi

Katılım
1 Aralık 2009
Mesajlar
2
Excel Vers. ve Dili
Eng/Tr 2007
Merhabalar,

VBA kodu ile dışarıdan verilen bir sayının, hangi sütuna karşılık (harf olarak) geldiğini bulmak istiyorum.

Örneğin, 28 sayısı verildiğinde makro "AB" sonucunu versin... gibi.

Yardımcı olabilirseniz sevinirim.

İyi Çalışmalar,
 
vb ile,

Left(ActiveCell.Address(0, 0), (ActiveCell.Column < 27) + 2)

fonksiyon ile,

=CHAR(COLUMN()+64)
 
bir dönem sık kullandığım için KTF olarak mevcut. standart modüle kopyalayınız.

Kod:
Function SutHarf(sutNum As Long) As String

Dim sutAdres As String

If sutNum > 0 And sutNum <= Columns.Count Then
    sutAdres = Columns(sutNum).Address
    SutHarf = Mid(sutAdres, 2, InStr(2, sutAdres, ":") - 2)
Else
    SutHarf = "HATA! Mevcut olmayan sütun numarası!"
End If

End Function



kod içinde kullanımı:
Kod:
Sub test()

Dim sutun As String

sutun = SutHarf(457)
MsgBox sutun

End Sub
 
Merhaba,
Aşağıdaki kodla istediğiniz sütunun harf karşılığını bulabilirsiniz. "Sutun_No" kısmına istediğiniz sütunun numarasını girin.
Kod:
Sub sutunno()
Sutun_No = 256
MsgBox Split(Cells(1, Sutun_No).Address(1, 1), "$")(1)
End Sub
 
İhtiyaç durumunda, uzun denemeler sonucu yazdığım sütun adı bulan kod. Tabii excel 2003'ten sonrası için ekleme yapmak gerekiyor.

Kod:
Sub Sutun_adı()
sut = 256
If sut < 27 Then s1 = Chr(sut + 64) Else s2 = Fix((sut - 0.1) / 26): _
s1 = Chr(64 + s2) & Chr(64 + sut - (s2 * 26))
Debug.Print s1
End Sub
 
Son düzenleme:
Kod:
Function Column_Name(Col_Index As Integer) As String

    Column_Name = Split(Columns(Col_Index). _
        EntireColumn.Address(0, 0), ":")(0)

End Function
 
bir örnek daha:

Kod:
Sut_No = 1330
SutHarf = Left(Cells(1, Sut_No).Address(1, 0), InStr(1, Cells(1, Sut_No).Address(1, 0), "$") - 1)
 
Bir alternatif olarakta benden sayfanın kod bölümüne yapıştır.

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
sut = Columns.Count
sat = Rows.Count
MsgBox "Sütun sayısı " & sut & Chr(10) & _
"Satır sayısı " & sat
MsgBox "1. satırın son kolonuna geldiniz. " & Chr(10) & _
"Sütun sayısı " & sut
MsgBox "1. sütunun son satırına geldiniz. " & Chr(10) & _
"Satır sayısı " & sat
MsgBox "Satır ve Sütunun en sonuna. " & Chr(10) & _
"Satır sayısı " & sat & Chr(10) & _
"Sütun sayısı " & sut
With ActiveCell
MsgBox .Address
MsgBox .Address(False)
MsgBox .Address(, False)
MsgBox .Address(False, False)
MsgBox .Address(, Column, True, True, False)
MsgBox .Address(, Row, True, False, False)
MsgBox .Address(, True, True, False)
MsgBox .Address, vbMsgBoxRight
MsgBox .Address, vbMsgBoxRtlReading
MsgBox .Address, vbMsgBoxHelpButton
MsgBox .Cells.Value
MsgBox .Row & " .satır"
MsgBox .Column & " .sütun"
MsgBox "Satır Numarası: " & .Row & _
" - Sütun Numarası:" & .Column
End With
Dim SütunAdı As String
SütunAdı = Split(ActiveCell.Address, "$")(1)
MsgBox "Satır No" & vbTab & ": " & ActiveCell.Row & Chr(10) & _
"Sütun Adı" & vbTab & ": " & SütunAdı & Chr(10) & _
"Sütun No" & vbTab & ": " & ActiveCell.Column
Exit Sub
End Sub
 
sevdim ben bu konuyu...
:biggrin:

Kod:
Function SutunHarf(Sut_No As Long) As String
    On Error Resume Next
    SutunHarf = Application.Substitute(Application.ConvertFormula("R1C" & Sut_No, _
        xlR1C1, xlA1, 4), "1", "")
End Function
 
Çok teşekkürler, güzel örnekleriniz sayesinde sorunumu çözdüm...

Herkese iyi çalışmalar...
 
Geri
Üst