• DİKKAT

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

Parçaal Formülünün VB Karşılığı Nedir?

  • Konbuyu başlatan Konbuyu başlatan slisyum
  • Başlangıç tarihi Başlangıç tarihi
Katılım
16 Eylül 2007
Mesajlar
75
Excel Vers. ve Dili
excell 2010
PARÇAAL formülünün VB kodunu bulamadım aşağıdaki dosyada excell formüllüsü var
birdede yatayara için kullandığım VB kodu vardı ama bişeyi sanırım yanlış yazıyorum hata nerden kaynaklanıyor yardımcı olabilirmisiniz teşekkürler

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Sheets(2).[A1] = WorksheetFunction.VLookup (Sheets(2).[A1]), Sheets(1).[A1:EG56], 3, False
End Sub
 

Ekli dosyalar

O yazdığınız formül parçaal fonksiyonu değil düşeyara.
VBA da parça al fonksiyonu aşağıdaki gibidir.
A1 hücresindeki 3ncü karakteri alır.:cool:
Kod:
Sub Parca_al()
MsgBox Mid(Range("A1").Value, 3, 1)
End Sub
 
Yanlış anlattım galiba düzeltiyorum paraça al için kullandığım formül aşağıdaki bunun VbB karşılığını sormuştum
Kod:
=PARÇAAL($H$4;3;1)

ayrıca düşeyara formülü yazıp koddaki yanlışlık nedir diye sormuştum :)

birde msg box da çıkıyor hücreye yazdırırken msgbox da değilde nasıl bir kod kullanacağız
ben böyle yazdım
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("A7") = Mid(Range("A1").Value, 3, 1)
End Sub
 
Yanlış anlattım galiba düzeltiyorum paraça al için kullandığım formül aşağıdaki bunun VbB karşılığını sormuştum
Kod:
=PARÇAAL($H$4;3;1)

ayrıca düşeyara formülü yazıp koddaki yanlışlık nedir diye sormuştum :)

birde msg box da çıkıyor hücreye yazdırırken msgbox da değilde nasıl bir kod kullanacağız
B1 hücresine alınan değeri yazar.Vlookup kullanırsanzı bulamazsa hata verir kod.VBA'nın Find komutununu kullanınız.Forumda find diye arama yapınız.:cool:

Kod:
MsgBox Mid(Range("H4").Value, 3, 1)
 
Teşekkürler

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("A7") = Mid(Range("A1").Value, 3, 1)
End Sub
bu formül istediğim gibi çalışıyor ama 6 haneli sayı içi bu formülü 6 kere yazmam gerekiyor böyle 6 haneli olan 80 sayı var bunu yapmanın daha kısa yolu yokmudur
 
Teşekkürler

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("A7") = Mid(Range("A1").Value, 3, 1)
End Sub
bu formül istediğim gibi çalışıyor ama 6 haneli sayı içi bu formülü 6 kere yazmam gerekiyor böyle 6 haneli olan 80 sayı var bunu yapmanın daha kısa yolu yokmudur
Örnek dosya ekleyin.:cool:
 
Dosyanız ektedir.:cool:
Kod:
Sub ayir()
Dim k As Byte, i As Long
Sheets("Sayfa1").Select
sat = Cells(65536, "H").End(xlUp).Row
If sat < 4 Then Exit Sub
Application.ScreenUpdating = False
Range("B4:G65536").ClearContents
For i = 4 To sat
    For k = 1 To 6
        Cells(i, k + 1).Value = Mid(Cells(i, "H").Value, k, 1)
    Next
Next
Application.ScreenUpdating = True
MsgBox "İşlem tamamlanmıştır." & vbLf & _
"evrengizlen@hotmail.com", vbOKOnly + vbInformation, "E V R E N"
End Sub
 

Ekli dosyalar

çok teşekkürler tam istediğim gibi ellerinize sağlık
 
Sayın evren hocam şöyle bir ihtiyaç doğdu verdiğiniz kodlar b4 hücresinden başlıyarak işleniyor bunun için çok saolun

ama şimdi yaptığımız tabloda J4 ten O386 kadar Bir alanda işlemesi gerekiyor

kodlar üzerinde oynama yapmaya çalıştım şu satırı Range("B4:G65536").ClearContents

Range("J4:O65536").ClearContents yaptım hala B sutunundan başlayarak sayıları bölüyor bunun nedeni nedir.

Kod:
Sub ayir()
Dim k As Byte, i As Long
Sheets("Sayfa1!J2").Select
sat = Cells(65536, "H").End(xlUp).Row
If sat < 4 Then Exit Sub
Application.ScreenUpdating = False
Range("B4:G65536").ClearContents
For i = 4 To sat
    For k = 1 To 6
        Cells(i, k + 1).Value = Mid(Cells(i, "H").Value, k, 1)
    Next
Next
Application.ScreenUpdating = True
MsgBox "İşlem tamamlanmıştır." & vbLf & _
"evrengizlen@hotmail.com", vbOKOnly + vbInformation, "E V R E N"
End Sub

ve aynı excell sayfasında 8 değişik yerde daha bunu yapmam lazım sizin gibi

Sub ayir()

end sub

arasına yazarsam çalışmıyor illaki

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

bu şekilde başlatmam gerekiyor nedenini açıklarsanız çok sevinirim
 
Sayın evren hocam şöyle bir ihtiyaç doğdu verdiğiniz kodlar b4 hücresinden başlıyarak işleniyor bunun için çok saolun

ama şimdi yaptığımız tabloda J4 ten O386 kadar Bir alanda işlemesi gerekiyor

kodlar üzerinde oynama yapmaya çalıştım şu satırı Range("B4:G65536").ClearContents

Range("J4:O65536").ClearContents yaptım hala B sutunundan başlayarak sayıları bölüyor bunun nedeni nedir.

Kod:
Sub ayir()
Dim k As Byte, i As Long
Sheets("Sayfa1!J2").Select
sat = Cells(65536, "H").End(xlUp).Row
If sat < 4 Then Exit Sub
Application.ScreenUpdating = False
Range("B4:G65536").ClearContents
For i = 4 To sat
    For k = 1 To 6
        Cells(i, k + 1).Value = Mid(Cells(i, "H").Value, k, 1)
    Next
Next
Application.ScreenUpdating = True
MsgBox "İşlem tamamlanmıştır." & vbLf & _
"evrengizlen@hotmail.com", vbOKOnly + vbInformation, "E V R E N"
End Sub

ve aynı excell sayfasında 8 değişik yerde daha bunu yapmam lazım sizin gibi

Sub ayir()

end sub

arasına yazarsam çalışmıyor illaki

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

bu şekilde başlatmam gerekiyor nedenini açıklarsanız çok sevinirim

:cool:
Kod:
Sub ayir()
Dim k As Byte, i As Long
Sheets("Sayfa1").Select
sat = Cells(65536, "H").End(xlUp).Row
If sat < 4 Then Exit Sub
Application.ScreenUpdating = False
Range("J4:O65536").ClearContents
For i = 4 To sat
    For k = 1 To 6
        Cells(i, k + 9).Value = Mid(Cells(i, "H").Value, k, 1)
    Next
Next
Application.ScreenUpdating = True
MsgBox "İşlem tamamlanmıştır." & vbLf & _
"evrengizlen@hotmail.com", vbOKOnly + vbInformation, "E V R E N"
End Sub
 
Hocam saol kurcalarken ikinci modülü oluşturdum ayır butonunu kopyalayıp makro ata dedim ayır 2 olarak isimlendirdiğim koda atadım yanlız kendim buton oluşturunca orada makro ata diye bir kısım çıkmıyor yoksa başka bir yöntemlemi atanıyor
 
Hocam Tamam Buldum Buton değilde çizim nesnelerini çizip sağ tıkladığımda makro ata yazısı geliyor yardımlarınız için çok saolun iyi akşamlar
 
Geri
Üst