• DİKKAT

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

Parçaal Fonksiyonu

Katılım
14 Nisan 2013
Mesajlar
764
Excel Vers. ve Dili
Office Excel 2016 TR
Home & Business
Merhaba,

Kod:
Sub Parca_Al()

 ActiveCell.FormulaR1C1 = "=MID(RC[-5],6,10)"

End Sub

Makroyu çalıştırdığımızda yukarıdaki 6 ve 10 değerlerini soran bir pencere ayarlama şansımız var mıdır?
 
Merhaba.

Formülü F sütununa uygulayacağınızı ve parçası alınacak hücrenin A sütununda olduğunu düşündüm ( RC[-5] dolayısıyla ).
Alt taraftan sayfa adına fareyle sağ tıklayın ve açılan VBA ekranında sağ taraftaki boş alana yapıştırın.

F sütununda bir hücre (aynı satırda A sütunu dolu ise) seçildiğinde kod otomatik olarak çalışır ve sayısal değerleri sorar.
Doğrudan değeri isterseniz kırmızı satırı silin, formülü istiyorsanız mavi satırı silin.
.
Kod:
[FONT="Arial Narrow"][B]Private Sub Worksheet_SelectionChange(ByVal Target As Range)[/B]
If Intersect(Target, [COLOR="Red"]Range("F1:F" & [A65536].End(3).Row)[/COLOR]) Is Nothing Then Exit Sub
If Cells(Target.Row, 1) = "" Then Exit Sub
Call Parca_Al
[B]End Sub

Sub Parca_Al()[/B]
On Error GoTo 100
10: ilk = Application.InputBox("Başlangıç sayısı giriniz.", "Sayı", "6", Type:=1)
If ilk > Len(Cells(ActiveCell.Row, ActiveCell.Column - 5)) Then
    MsgBox "Hedef hücrenin uzunluğundan daha küçük bir sayı yazılmalıdır...": GoTo 10
End If
20: sayı = Application.InputBox("Karakter sayısı giriniz.", "Sayı", 1, Type:=1)
If sayı < 0 Then GoTo 20
If ActiveCell.Column - 5 < 0 Then
    MsgBox "Formül uygulaması için F sütunundan bir hücre seçilmiş olmalıdır."
    Exit Sub
End If
If ilk = False Or sayı = False Then Exit Sub
[COLOR="red"]With Range("F1:F" & [A65536].End(3).Row)
    .FormulaR1C1 = "=MID(RC[-5]," & ilk & "," & sayı & ")"
    .Value = .Value
End With
[/COLOR]
100
[B]End Sub[/B][/FONT]
 
Son düzenleme:
Resmen sanat çizmişsiniz teşekkürler :)

Yalnız bir ricam olcak, benim yukarıda verdiğim makroyu uygulayınca, hücrede formül kalıyordu. Bende o formülü kopyalayıp aşağı doğru çoğaltıyordum.
Bunu nasıl yapıcaz
 
Son düzenleme:
Merhaba.

Önceki cevabım tam okunmamış demekki.
Cevabımdaki kod bölümünden önceki kırmızıyla renklendirdiğim satırı tekrar okumanızı öneririm.
Sorunuzun cevabı orada var.

Ayrıca sorunuz bir örnek belge ile desteklenmemiş olduğundan önceki cevabımda aşağıdaki cümle yer aldı.

"Formülü F sütununa uygulayacağınızı ve parçası alınacak hücrenin A sütununda olduğunu düşündüm (RC[-5] dolayısıyla)."

Yani neticede kod/formülün hangi hücre/hücre aralığı için uygulanacağı bile net değil.

Sorularınızı (cevaplarımın altındaki İMZA bölümünde belirttiğim gibi)
gerçek belgenizle aynı yapıda örnek belge ile desteklemenizi bir kez öneriyorum.
.
 
Son düzenleme:
örnek dosyada makro uygulandıktan sonra alt satırlara da uygulamak istiyorum fakat tek tek değil
 

Ekli dosyalar

Önceki cevabımdaki kod'da yeniden düzenleme yaptım.
Sayfayı yenileyerek tekrar deneyiniz.

Yeni haliyle 1'inci satırdan, A sütunundaki son dolu satıra kadarki satırlara kadarki alanda olmak ve
seçilen satır A sütununda veri olmak koşuluyla, F sütununda bir hücre seçildiğinde kod çalışarak,
F1'den itibaren A sütunundaki son dolu satıra kadar işlem yapar.
.
 
Geri
Üst