kapalı excel den gelen veriyi for ile yerleştirme ?

Katılım
19 Mayıs 2022
Mesajlar
69
Excel Vers. ve Dili
vba
Merhaba arkadaşlar bir kapalı excel dosyasındaki verileri direk çekiyorum burada sorun yok. Tek sorun for döngüsü ile verileri karşılaştırıp yazdırmak.

Dim ds, a
Set ds = CreateObject("Scripting.FileSystemObject")
a = ds.FileExists(ThisWorkbook.Path & "\" & Range("S2").Value & "\" & ActiveCell.Value & "E.xls")
If a = True Then

Range("O7:O35").Value = "" ' temizle

Dim conn As Object, rs As Object, yol As String, dosya
Set conn = CreateObject("Adodb.Connection")
Set rs = CreateObject("Adodb.Recordset")
conn.Open "Provider=microsoft.ace.oledb.12.0;data source=" & ThisWorkbook.Path & "\" & Range("S2").Value & "\" & ActiveCell.Value & "E.xls" & ";extended properties=""excel 12.0;hdr=yes;imex=1"""

rs.Open "Select * from [Sayfa1$D2:D35]", conn, 1, 1
Range("O7").CopyFromRecordset rs
rs.Close: conn.Close

Else
MsgBox ActiveCell.Value & " 'isimde bir dosya yok"

End If


şöyle yapmak istiyorum ; kapalı sayfada D sutunundaki veriyi açık sayfadaki O sutunundaki aynı veriyi bulma bulunan verileri D nin yanındaki yani E sutunundaki bilgileri açık sayfadaki aynı verinin yanına yani O sutunun yanındaki P karşısına kopyalasın. Biraz karışık anlattım sanırım :(
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
681
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
İki dosyadan da örnek ekleyiniz
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
681
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Katılım
19 Mayıs 2022
Mesajlar
69
Excel Vers. ve Dili
vba
Burası olabilir
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
681
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
@blackkugu deneyiniz.

CSS:
Sub NotGetir()
    Dim dosya_yolu As String, dosya_adı As String
    Dim wb As Workbook
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim son_satir As Long, i As Long
    
    dosya_yolu = ThisWorkbook.Path & "\2023\"
    dosya_adı = "kapali.xlsx"
    
    Set wb = Workbooks.Open(dosya_yolu & dosya_adı)
    Set ws1 = ThisWorkbook.Sheets("Sayfa1")
    Set ws2 = wb.Sheets(1)
    
    son_satir = ws1.Cells(Rows.Count, "O").End(xlUp).Row
    
    For i = 7 To son_satir
        If ws2.Range("D:D").Find(ws1.Range("O" & i).Value) Is Nothing Then
            MsgBox "Dosyada " & ws1.Range("O" & i).Value & " bulunamadı."
        Else
            ws1.Range("P" & i).Value = ws2.Range("E" & _
              ws2.Range("D:D").Find(ws1.Range("O" & i).Value).Row).Value
        End If
    Next i
    wb.Close SaveChanges:=False
End Sub
 
Katılım
19 Mayıs 2022
Mesajlar
69
Excel Vers. ve Dili
vba
@blackkugu deneyiniz.

CSS:
Sub NotGetir()
    Dim dosya_yolu As String, dosya_adı As String
    Dim wb As Workbook
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim son_satir As Long, i As Long
   
    dosya_yolu = ThisWorkbook.Path & "\2023\"
    dosya_adı = "kapali.xlsx"
   
    Set wb = Workbooks.Open(dosya_yolu & dosya_adı)
    Set ws1 = ThisWorkbook.Sheets("Sayfa1")
    Set ws2 = wb.Sheets(1)
   
    son_satir = ws1.Cells(Rows.Count, "O").End(xlUp).Row
   
    For i = 7 To son_satir
        If ws2.Range("D:D").Find(ws1.Range("O" & i).Value) Is Nothing Then
            MsgBox "Dosyada " & ws1.Range("O" & i).Value & " bulunamadı."
        Else
            ws1.Range("P" & i).Value = ws2.Range("E" & _
              ws2.Range("D:D").Find(ws1.Range("O" & i).Value).Row).Value
        End If
    Next i
    wb.Close SaveChanges:=False
End Sub

eline sağlık tam aradığım gibi oldu çok tşk ederim.
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
681
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Rica ederim, kolay gelsin.
 
Üst