Kapalı excel dosyasından veri alıp,açık olan excel sayfasında işlem yapma.

Katılım
8 Aralık 2006
Mesajlar
218
Excel Vers. ve Dili
Excel 2002
Türkçe
Altın Üyelik Bitiş Tarihi
15.06.2020
Herkese iyi çalışmalar,
ekte verdiğim sıkıştırılmış dosyada, deneme ve ana liste isminde 2 tane excel dosyası var.Ana liste tüm malzemelerin bulunduğu liste ve D:\ konumunda kapalı olarak bulunacak.
ikinci excel dosyası olan deneme isimli dosyasında, sarf işlemleri, güncelleme listesi ve silinen listesi isminde 3 adet sayfa var.bu sayfaların formatına uygun olarak yapmak istediklerim şunlar.
1-Misal güncelleme listesine 10 adet malzeme kodu ekleyip bir butona basınca, bu 10 adet malzeme kodunu kapalı olarak d:\ konumundaki malzeme kodlarıyla karşılaştırsın,verdiğim kodların karşılıkları varsa karşısındaki satırda bulunan; ölçü birimi,miktar,rezerve,fiili müsait,sipariş,kullanımda gibi verileri sarf listesindeki aynı kodlu malzemenin; ölçü birimi,miktar,rezerve,fiili müsait,sipariş,kullanımda verilerini güncellemesini istiyorum.
karışık olduğunu düşündğüm için bir sonraki aşamasını yazmıyorum.bu şekliyle anlaşılmadıysa bire bir örnek vererek anlatmaya çalışacağım.
teşekkür ederim.
 

Ekli dosyalar

bycakir

Altın Üye
Katılım
1 Aralık 2017
Mesajlar
220
Excel Vers. ve Dili
Microsoft Office 365 ProPlus
Altın Üyelik Bitiş Tarihi
18-01-2025
dosyayı sıkıştırmadan yukleyebilirmisiniz. şirket bilgisayarım rar indirmeye izin vermiyor.
 
Katılım
8 Aralık 2006
Mesajlar
218
Excel Vers. ve Dili
Excel 2002
Türkçe
Altın Üyelik Bitiş Tarihi
15.06.2020
dosyaları rar sız yükledim.
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,438
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

Kod:
Option Explicit

Sub Verileri_Guncelle()
    Dim S1 As Worksheet, S2 As Worksheet, S3 As Worksheet
    Dim Baglanti As Object, Dosya As String, Veri As Object, Satir As Long
    Dim Son As Long, X As Long, Bul As Range, Sutun As Integer, Y As Integer
    
    Set S1 = Sheets("SARF LİSTESİ")
    Set S2 = Sheets("GÜNCELLEME LİSTESİ")
    Set S3 = Sheets("SİLİNEN LİSTESİ")
    
    Set Baglanti = CreateObject("AdoDb.Connection")
    Dosya = ThisWorkbook.Path & Application.PathSeparator & "ANA LİSTE.xls"
    
    Select Case Val(Application.Version)
        Case Is < 12
            Baglanti.Open "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & Dosya & ";Extended Properties=""Excel 8.0;HDR=No"""
        Case Is > 11
            Baglanti.Open "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" & Dosya & ";Extended Properties=""Excel 12.0;Hdr=No"""
    End Select
    
    Son = S2.Cells(Rows.Count, 2).End(3).Row
    
    On Error Resume Next
    
    For X = 2 To Son
        If S2.Cells(X, 2).Value <> "" Then
            Set Veri = Baglanti.Execute("Select * From [Sayfa1$] Where F3 ='" & S2.Cells(X, 2).Value & "'")
            Set Bul = S1.Range("X:X").Find(S2.Cells(X, 2).Value, , , xlWhole)
            If Not Bul Is Nothing Then
                If Not Veri.EOF Then
                    Sutun = 25
                    For Y = 3 To Veri.Fields.Count - 1
                        S1.Cells(Bul.Row, Sutun).Value = Veri.Fields(Y)
                        Sutun = Sutun + 1
                    Next
                Else
                    Satir = S3.Cells(Rows.Count, "B").End(3).Row + 1
                    S3.Range("B" & Satir & ":E" & Satir).Value = S1.Range("U" & Bul.Row & ":X" & Bul.Row).Value
                    S1.Range("U" & Bul.Row & ":X" & Bul.Row).ClearContents
                End If
            End If
        End If
    Next
    
    Baglanti.Close
    
    Set Bul = Nothing
    Set Veri = Nothing
    Set Baglanti = Nothing
    Set S1 = Nothing
    Set S2 = Nothing
    Set S3 = Nothing
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Katılım
8 Aralık 2006
Mesajlar
218
Excel Vers. ve Dili
Excel 2002
Türkçe
Altın Üyelik Bitiş Tarihi
15.06.2020
hocam verdiğiniz kodu yazıp çalıştır dediğimde aşağıdaki hatayı veriyor,bilginize
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,438
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Koda versiyon kontrolü ile ilgili ekleme yaptım. Tekrar deneyiniz.
 
Katılım
8 Aralık 2006
Mesajlar
218
Excel Vers. ve Dili
Excel 2002
Türkçe
Altın Üyelik Bitiş Tarihi
15.06.2020
Korhan Ayhan hocam,
son düzeltme yaptığınız kod istediğim gibi çalışıyor, teşekkür ederim.zaten geçen zaman içinde defalarca denedim problem yok.
Ana Listenin formatında yakın zamanda bir değişiklik olmaz.Fakat Deneme dosyasında bir değişiklik olursa nasıl adepte edebilirim?Değişiklik dediğimde,deneme listesine yeni sütun eklenirse yada sütun silinirse sonuçları etkiliyor.Gerekli değişiklik için, verdiğiniz kodun belli satırlarındamı değişiklik gerekiyor yoksa kodun genelindemi değişiklik gerekiyor?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,438
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Yeni sütunun nereye eklendiği bu durumda önem arz ediyor.

Malzeme kodu "X" sütununda aranıyor.

Kod içinde "Sutun" adında bir değişken var. Onu değiştirerek ayarlama yapabilirsiniz.
 
Katılım
8 Aralık 2006
Mesajlar
218
Excel Vers. ve Dili
Excel 2002
Türkçe
Altın Üyelik Bitiş Tarihi
15.06.2020
Teşekkürler hocam,vermiş olduğunuz kod yapmakta olduğum işimi o kadar kolaylaştırdıki anlatamam.
 
Üst