• DİKKAT

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

Soru Düşeyara da bütün sütunu aldıramıyorum

Katılım
21 Aralık 2019
Mesajlar
211
Excel Vers. ve Dili
Office 2016
Herkese merhabalar düşey ara ile ilgili bir sorum olacak.. 1. sıradaki formülü yazınca sadece B7 hücresini baz alıyor. B7:B1000 gibi yazınca hata veriyor bunu nasıl düzeltebilirim.

1- S3.Cells(x, 3) = WorksheetFunction.VLookup(S3.Range("B7"), S2.Range("A:CW"), 3, 0) (B7'yi baz alıyor)

2- S3.Cells(x, 3) = WorksheetFunction.VLookup(S3.Range("B7:B1000"), S2.Range("A:CW"), 3, 0) (Hata Veriyor)

3-S3.Cells(x, 3) = WorksheetFunction.VLookup(S3.cells(x,2), S2.Range("A:CW"), 3, 0) (Hata veriyor)
 
Sanırım For döngüsü içinde kullanıyorsunuz. Eğer öyleyse
For döngüsü içinde For x = 2 olduğunu varsayarsak

Kod:
S3.Cells(x, 3) = WorksheetFunction.VLookup(S3.Range("B" & x +5), S2.Range("A:CW"), 3, 0)
Sadece "B7" kısmını değiştirdim

Bu şekilde yapmalısınız.

Eğer yapamazsanız kodların tamamını ekleyin biz yapalım.
 
Muzaffer bey ilginiz için çok tşk ederim. Formülü aşağıdaki gibi yapınca problem olmadı çok sağolun. Devamında şöyle bir problemim var. Aslında ben tek tek yazmayı düşünüyordum ama belki daha kısa yolu vardır. Şimdi ben 3.sütunu aldırdım ya. Benim burada aldırmam gereken 101 adet sütun var. Bütün bu sütunlar için alt alta 101 koduda yazmam mı gerekecek yada daha kısa bir yolu var mı ??? Yani 3. sütundan 101. sütuna kadar gidecek bir veri seti

S3.Cells(x, 3) = WorksheetFunction.VLookup(S3.Range("B" & x), S2.Range("A:CW"), 3, 0)

Formülün tamam ı aşağıda ki gibi:

Sub DUSEYARA()
Dim x As Integer
Dim S1 As Worksheet, S2 As Worksheet, S3 As Worksheet, son As Integer, satir As Integer
Set S1 = Sheets("HAM-VERİ")
Set S2 = Sheets("PİVOT1")
Set S3 = Sheets("VERİ ANALİZİ")
son = S3.Cells(S3.Rows.Count, 1).End(xlUp).Row
S3.Range("C7:CW" & Rows.Count).ClearContents
For x = 7 To son
S3.Cells(x, 3) = WorksheetFunction.VLookup(S3.Range("B" & x), S2.Range("A:CW"), 3, 0)
Next
End Sub
 
Aşağıdaki kodu deneyin.

Kod:
Sub Test()
    Dim Son As Long
    Son = Sheets("VERİ ANALİZİ").Cells(Rows.Count, 1).End(xlUp).Row
    With Sheets("VERİ ANALİZİ").Range("C7:CY" & Son)
        .Formula = "=VLOOKUP('VERİ ANALİZİ'!$B7,PİVOT1!$A:$CW,Column(C1),0)"
        .Value = .Value
    End With
End Sub

Hangi sütuna kadar yapmak istiyorsanız "C7:CY" burayı ona göre değiştirin.
Eğer istediğiniz sonucu alamazsanız dosyanızı ekleyin yapalım.
 
Üstadım çok tşk ederim. Uyguladım ve doğru sonuçları aldım çok tşk ederim. Birde aynı formülü etopla için yapabilir miyim. Ben aşağıdaki formülü yazdım muhtemelen yanlış yazmışımdır sonuç vermedi. Ama yeni bir başlık mı açmayalım.

Sub ETOPLA()
Dim Son As Long
Son = Sheets("ANALİZ1").Cells(Rows.Count, 1).End(xlUp).Row
With Sheets("ANALİZ1").Range("C7:CW" & Son)
.Formula = "=SumIf('HAM-VERİ!$A$:$A$,ANALİZ1'!$B7,Column(C1)"
.Value = .Value
End With
End Sub
 
Son düzenleme:
C7'ye normal excel formülü yazıp buraya kopyalayın ona göre kod yazayım.
 
=ETOPLA('HAM-VERİ'!A:A;ANALİZ1!A7;'HAM-VERİ'!C:C)

Bu formülü ANALİZ1 sayfamda kullanıyorum. aşağı doğru 550 satırım sağa doğru da CW sütununa kadar gidecek.

Aslında yazmaya çalıştığım aşağıda ki ama sizi de fazla yormak istemediğim için ikinci kısmı üretebilirim diye düşündüm

=EĞERHATA(ETOPLA('HAM-VERİ'!$A:$A;ANALİZ1!$A7;'HAM-VERİ'!C:C) / ETOPLA('FİRMA ORTALAMA'!$A:$A;ANALİZ1!$A7;'FİRMA ORTALAMA'!C:C);"")
 
Son düzenleme:
Dosyanızı görmeden yaptığım için tahmin ederek yaptım.
Eğer istediğiniz sonucu alamazsanız dosyanızı ekleyin yapalım.

Kod:
Sub Test_2()
    Dim son As Long
    son = Sheets("ANALİZ1").Cells(Rows.Count, 1).End(xlUp).Row
    With Sheets("ANALİZ1").Range("C7:CY" & son)
        .Formula = "=SumIf('HAM-VERİ'!$A:$A,ANALİZ1!$A7,'HAM-VERİ'!C:C)"
        .Value = .Value
    End With
End Sub
 
Hocam elinize sağlık gayet düzgün çalıştı. Sadece buna bir bölme işlemi eklemek istiyorum. Ama aaşağıdaki gibi olmuyor yapamadım yani

.Formula = "=SumIf('HAM-VERİ'!$A:$A,ANALİZ1!$A7,'HAM-VERİ'!C:C)" / .Formula = "=SumIf('FİRMA ORTALAMA'!$A:$A,ANALİZ1!$A7,'FİRMA ORTALAMA'!C:C)"
 
Son düzenleme:
Test yapmadım ama bu şekilde olmalı.
Kod:
.Formula = "=SumIf('HAM-VERİ'!$A:$A,ANALİZ1!$A7,'HAM-VERİ'!C:C)/SumIf('FİRMA ORTALAMA'!$A:$A,ANALİZ1!$A7,'FİRMA ORTALAMA'!C:C)"
 
Hocam hzılı ve düzgün çalışıyor sağolun varolun. Birde şurayı düzeltme imkanı var mı ? boş hücre yada sıfır hücrelerde #SAYI/0! bunu nasıl engellerim orada işlem yapmasın gibi
 
Kod:
.Value = .Value
Satırının bir üstüne aşağıdaki satırı ekleyin
Kod:
.SpecialCells(xlCellTypeFormulas, 16).ClearContents
 
Geri
Üst