• DİKKAT

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

Sütun tanımlama hatası

  • Konbuyu başlatan Konbuyu başlatan ziya
  • Başlangıç tarihi Başlangıç tarihi
Katılım
8 Nisan 2005
Mesajlar
793
Excel Vers. ve Dili
Excel 2010 Türkçe
Kitabın E sütunundaki kod
Kod:
Range("E2").Select
    ActiveCell.FormulaR1C1 = "=INDEX(R2C3:R109C5,MATCH(RC[3],R2C3:R109C3,0),2)"
çalışıyor.

Aynı kitabın F sütunundaki kod istenilen bilgiyi gtirmiyor.
Kod:
ActiveCell.FormulaR1C1 = "=INDEX(RC[-3]:R109C5,MATCH(RC[2],RC[-3]:R109C3,0),3)"
nedenini bulamadım, H2 deki veriyi C2:C109 da arayacak , C2:E109 'un E sütunundaki veriyi getirecek

Yardım rica ediyorum
 
R1C1 stilini kullanmayın.

Yazım olarak Formula ya da FormulaLocal parametrelerini daha kolay yönetirsiniz.

Ayrıca INDEX+MATCH yerine VLOOKUP (DÜŞEYARA) kullanabilirsiniz...

Aşağıdaki kod formülleri I2 - J2 hücrelerine yazar.

C++:
Option Explicit

Sub Test()
    Range("I2").Formula = "=VLOOKUP(H2,$C$2:$E$109,2,0)"
    Range("J2").Formula = "=VLOOKUP(H2,$C$2:$E$109,3,0)"
End Sub
 
İlginç bir şekilde aynı hatalı veriyi getirdi. Yani her iki sütunda da, <span>$C$2:$E$109</span> 'un 2.nci sütun (D sütunu) verilerini getirdi.
 
Örnek dosyanzı ekleyin kontrol edelim...
 
Korhan hocam, dosya eklememe sistem izin vermiyor diye biliyorum. Kod'un tamamını yazıyorum.
Kod:
Sub RAPORNA()
'
' Makro3 Makro
' Rapor kitabından al
'
' Klavye Kısayolu: Ctrl+n
   Dim K1 As Workbook, S1 As Worksheet, Yol As String
   Dim K2 As Workbook, S2 As Worksheet, Son As Long
    
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
    Set K1 = ThisWorkbook
    Set S1 = K1.Sheets("Sayfa1")
    Yol = K1.Path
    
    Set K2 = Workbooks.Open(Yol & "\SONAYRAPORNA.xlsx")
    Set S2 = K2.Sheets("sayfa")
    
    S2.Range("A2:Y2000").Copy
    S1.Range("A2").PasteSpecial xlPasteFormats
    S1.Range("A2").PasteSpecial xlPasteValues
    
    K2.Close 0
    
    Son = S1.Cells(S1.Rows.Count, 1).End(xlUp).Row + 1
    
    
  
    S1.Range("A" & Son & ":A" & Rows.Count).EntireRow.Delete
    
    Set K1 = Nothing
    Set S1 = Nothing
    Set K2 = Nothing
    Set S2 = Nothing
    
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    
 

    'MsgBox "İADE FATURA VAR MI, KONTROL ET !", vbInformation
    
    Columns("B:B").Select
    Selection.Replace What:="-", Replacement:=".", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.NumberFormat = "dd/mm/yyyy;@"
    Range("B2").Select
    
    
    
    Range("E2").Select
    Range("E2").Formula = "=VLOOKUP(H2,$C$2:$E$109,2,0)"
     Range("E2").Select
    Selection.AutoFill Destination:=Range("E2:E2000"), Type:=xlFillDefault
    
    
    
     Range("F2").Select
     Range("F2").Formula = "=VLOOKUP(H2,$C$2:$E$109,3,0)"
     Range("F2").Select
     Selection.AutoFill Destination:=Range("F2:F2000"), Type:=xlFillDefault
     MsgBox " İADE FATURA VAR MI, KONTROL ET !", vbInformation
     End Sub
 
Altın üye olmayan üyelerimiz örnek dosyalarını harici dosya barndırma sitelerine yükleyip indirme linkini forumda paylaşabiliyorlar. Sizde bu şekilde dosya yükleyebilirsiniz.

Siz formülü E2 hücresine uyguluyorsunuz. Fakat E2 hücresi tanımlı alan $C$2:$E$109 içinde kalıyor.
 
Korhan hocam
Kodlar sizin kodlar. Gayet güzel düzgün çalışıyordu. Halt ettim, bir kolon değişikliği yapmaya kalkıştım, yüzüme gözüme bulaştırdım.
Şimdi ne mi yaptım. Eski halini kullanıyorum.
Sayenizde yıllardır şıkır şıkır çalışıyor.
İlginize teşekkür ederin.
 
Geri
Üst