1 sayfadan 1. sayfa

Başka Sayfadaki Verileri Bulup Yeni Sayfaya Yazdırmak.

İletiTarih: 14 Şub 2020 11:39
itouchcanmedia
Arkadaşlar detayları örnek dosyada anlattım. Benim için daha doğrusu babamın dükkanında kullanmak için bize çok lazım olan bir kod isteğimiz var. Yardımcı olursanız çok seviniriz.

Cevap: Başka Sayfadaki Verileri Bulup Yeni Sayfaya Yazdırmak

İletiTarih: 14 Şub 2020 12:08
OmerFaruk72
Kod: Tümünü seç
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If ActiveCell.Column <> 1 Then Exit Sub
Bul = ActiveCell.Offset(0, 10)
If Bul = "" Then Exit Sub
Set sh1 = Worksheets("depo ürün listesi")
Set sh2 = Worksheets("sonuç")
sh2.Cells = ""
son = sh1.Cells(1, 1).End(xlDown).Row
For i = 1 To son

    If sh1.Cells(i, 1) = Bul Then
    k = k + 1
        sh2.Cells(k, 1) = sh1.Cells(i, 1)
        sh2.Cells(k, 2) = sh1.Cells(i, 2)
        sh2.Cells(k, 3) = sh1.Cells(i, 3)
        sh2.Cells(k, 4) = sh1.Cells(i, 4)
        sh2.Cells(k, 5) = sh1.Cells(i, 5)
    End If
    sh2.Activate
Next i
End Sub

Cevap: Başka Sayfadaki Verileri Bulup Yeni Sayfaya Yazdırmak

İletiTarih: 14 Şub 2020 14:44
itouchcanmedia
ömerfaruk bey çok ama çok teşekkürler. örnek dosya için harika çalıştı ancak ben bir hata yapmışım (aslında düşünemedim) şöyleki;
Orjinal dosyamdaki "depo ürün listesi" sayfasında veriyi "A" sütununda aramamalı, veriyi "CM" sütununda aramalı ve bulduğu satırlardaki CN,CO,CP,CQ,CR verilerini de alıp sonuç sayfasına yazmalı. bu nedenle hata verdi sanırım. kodu nasıl düzenlemeliyim. bir iki saattir uğraşıyorum çözemedim henüz.

Cevap: Cevap: Başka Sayfadaki Verileri Bulup Yeni Sayfaya Ya

İletiTarih: 14 Şub 2020 14:46
itouchcanmedia
OmerFaruk72 yazdı:
Kod: Tümünü seç
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If ActiveCell.Column <> 1 Then Exit Sub
Bul = ActiveCell.Offset(0, 10)
If Bul = "" Then Exit Sub
Set sh1 = Worksheets("depo ürün listesi")
Set sh2 = Worksheets("sonuç")
sh2.Cells = ""
son = sh1.Cells(1, 1).End(xlDown).Row
For i = 1 To son

    If sh1.Cells(i, 1) = Bul Then
    k = k + 1
        sh2.Cells(k, 1) = sh1.Cells(i, 1)
        sh2.Cells(k, 2) = sh1.Cells(i, 2)
        sh2.Cells(k, 3) = sh1.Cells(i, 3)
        sh2.Cells(k, 4) = sh1.Cells(i, 4)
        sh2.Cells(k, 5) = sh1.Cells(i, 5)
    End If
    sh2.Activate
Next i
End Sub



ömerfaruk bey çok ama çok teşekkürler. örnek dosya için harika çalıştı ancak ben bir hata yapmışım (aslında düşünemedim) şöyleki;
Orjinal dosyamdaki "depo ürün listesi" sayfasında veriyi "A" sütununda aramamalı, veriyi "CM" sütununda aramalı ve bulduğu satırlardaki CN,CO,CP,CQ,CR verilerini de alıp sonuç sayfasına yazmalı. bu nedenle hata verdi sanırım. kodu nasıl düzenlemeliyim. bir iki saattir uğraşıyorum çözemedim henüz.

Cevap: Başka Sayfadaki Verileri Bulup Yeni Sayfaya Yazdırmak

İletiTarih: 14 Şub 2020 14:52
itouchcanmedia
uyarıyı bu satırda veriyor;

If sh1.Cells(i, 1) = Bul Then

Cevap: Cevap: Başka Sayfadaki Verileri Bulup Yeni Sayfaya Ya

İletiTarih: 14 Şub 2020 15:49
OmerFaruk72
Kod: Tümünü seç
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If ActiveCell.Column <> 1 Then Exit Sub
Bul = ActiveCell.Offset(0, 10)
If Bul = "" Then Exit Sub
Set sh1 = Worksheets("depo ürün listesi")
Set sh2 = Worksheets("sonuç")
sh2.Cells = ""
son = sh1.Cells(1, 91).End(xlDown).Row
For i = 1 To son

    If sh1.Cells(i, 91) = Bul Then
    k = k + 1
        sh2.Cells(k, 1) = sh1.Cells(i, 91)
        sh2.Cells(k, 2) = sh1.Cells(i, 92)
        sh2.Cells(k, 3) = sh1.Cells(i, 93)
        sh2.Cells(k, 4) = sh1.Cells(i, 94)
        sh2.Cells(k, 5) = sh1.Cells(i, 95)
        sh2.Cells(k, 6) = sh1.Cells(i, 96)
    End If
    sh2.Activate
Next i
End Sub

Cevap: Cevap: Cevap: Başka Sayfadaki Verileri Bulup Yeni Say

İletiTarih: 14 Şub 2020 16:47
itouchcanmedia
OmerFaruk72 yazdı:
Kod: Tümünü seç
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If ActiveCell.Column <> 1 Then Exit Sub
Bul = ActiveCell.Offset(0, 10)
If Bul = "" Then Exit Sub
Set sh1 = Worksheets("depo ürün listesi")
Set sh2 = Worksheets("sonuç")
sh2.Cells = ""
son = sh1.Cells(1, 91).End(xlDown).Row
For i = 1 To son

    If sh1.Cells(i, 91) = Bul Then
    k = k + 1
        sh2.Cells(k, 1) = sh1.Cells(i, 91)
        sh2.Cells(k, 2) = sh1.Cells(i, 92)
        sh2.Cells(k, 3) = sh1.Cells(i, 93)
        sh2.Cells(k, 4) = sh1.Cells(i, 94)
        sh2.Cells(k, 5) = sh1.Cells(i, 95)
        sh2.Cells(k, 6) = sh1.Cells(i, 96)
    End If
    sh2.Activate
Next i
End Sub



Ömer bey çok ama çok teşekkür ederim tamamdır. :)

Cevap: Başka Sayfadaki Verileri Bulup Yeni Sayfaya Yazdırmak

İletiTarih: 14 Şub 2020 17:08
itouchcanmedia
Tek sorun biraz yavaş hesaplıyor. binlerce veri olduğu için sanırım "false" komutunu kullandım çok az daha hızlandı ama yinede uzun sürüyor yaklaşık 1 dakika. Bu konuda yapabileceğimiz birşey var mı acaba?

Cevap: Cevap: Cevap: Cevap: Başka Sayfadaki Verileri Bulup Y

İletiTarih: 18 Şub 2020 08:42
OmerFaruk72
Kod: Tümünü seç
For i = 1 To son
    If sh1.Cells(i, 91) = Bul Then
    k = k + 1
        sh2.Cells(k, 1) = sh1.Cells(i, 91)
        sh2.Cells(k, 2) = sh1.Cells(i, 92)
        sh2.Cells(k, 3) = sh1.Cells(i, 93)
        sh2.Cells(k, 4) = sh1.Cells(i, 94)
        sh2.Cells(k, 5) = sh1.Cells(i, 95)
        sh2.Cells(k, 6) = sh1.Cells(i, 96)
    End If
    sh2.Activate
Next i


Bu kısmı FIND komutuyla düzenleyip denerseniz çok daha hızlı çalışacaktır