İyi Günler Değerli Sayın Hocalarım. Bir hususta, yardımınıza ihtiyacım var lütfen. Çalışma kitabımdan belirli klasördeki dosyalara yeni sayfa oluşturup kayıt yaptığım çalışmam var. kodlarında bir işlemi dolaylı yoldan yapıyorum. Bu işlemi kısaltmam lazım. Aşağıya eklediğim kodlarla, şu koşula göre kayıt yapıyorum; eğer ARAÇ KAYITLARI klasöründeki dosyaların Sayfa1 sayfasının a1 hücresi çalışma kitabımdaki araç kayıtları sayfası s1 hücresine eşitse o dosyanın içine yeni sayfa oluşturup kodlarda devam eden işlemleri yapıyorum. Yani burda belirli klasördeki hangi dosyanın içine kayıt yapması gerektiğini belirtiyorum. Benim istediğim kayıt yapacağı dosyayı bulması için dosyanın içindeki sayfa1 sayfasına bakmaktansa, klasördeki dosyaların hangisinin ismi çalışma kitabımdaki araç kayıtları sayfasının s1 hücresine eşitse o dasyanın içine kayıt yapsın. Çok şey denedim ama doğru ifadeyi bulamadım.Değiştirmek istediğim kod bu;
If Dosyam.Sheets("Sayfa1").Range("a1") = kitap.Sheets("ARAÇ KAYIT").Range("s1") Then
If Dosyam.Sheets("Sayfa1").Range("a1") = kitap.Sheets("ARAÇ KAYIT").Range("s1") Then
Kod:
Sub Kaydet()
Application.ScreenUpdating = False
Set S1 = Sheets("ARAÇ KAYIT")
Set S2 = Sheets("ÖRNEK TASLAK")
Set s3 = Sheets("ARAÇ LİSTESİ")
Dim evn As Object, klasoradi As String, kitap As Workbook
Dim i As Integer, Dosyam As Workbook
Set kitap = ThisWorkbook
ad = S1.Cells(1, "S").Value
ad1 = S1.Cells(4, "B") & "_" & S1.Cells(5, "B").Value
ad2 = S1.Cells(4, "B") & "_" & S1.Cells(5, "B").Value & "_" & S1.Cells(2, "V").Value
klasoradi = "ARAÇ KAYITLARI"
Set evn = CreateObject("scripting.filesystemobject")
Set dosyalar = evn.getfolder(ThisWorkbook.Path & Application.PathSeparator & klasoradi)
For Each klasor In dosyalar.Files
Set Dosyam = Application.Workbooks.Open(klasor.Path)
Set Dosyami = GetObject(klasor.Path)
For i = 1 To Dosyam.Sheets.Count
If Dosyam.Sheets("Sayfa1").Range("a1") = kitap.Sheets("ARAÇ KAYIT").Range("s1") Then
S2.Cells.Copy
With Dosyam.Sheets
Dosyam.Sheets.Add After:=Dosyam.Sheets(Dosyam.Sheets.Count)
Dosyam.Sheets(Dosyam.Sheets.Count).Name = ad1
Dosyam.Sheets(Dosyam.Sheets.Count).Paste
Dosyam.Sheets(Dosyam.Sheets.Count).Range("a1").Select
Application.CutCopyMode = False
x = s3.Cells(Rows.Count, "A").End(3).Row + 1
s3.Cells(x, "A") = S1.[B2]
s3.Cells(x, "B") = S1.[B3]
s3.Cells(x, "C") = S1.[B4]
s3.Cells(x, "D") = S1.[B5]
s3.Hyperlinks.Add Anchor:=s3.Cells(x, "B"), Address:= _
"ARAÇ KAYITLARI\" & ad & ".xlsx", SubAddress:="'" & ad1 & "'!A1", TextToDisplay:=S1.Cells(3, "B").Value
With s3.Cells(x, "B").Font
.Size = 16
.Underline = xlUnderlineStyleNone
End With
Dosyam.Close True
S2.Visible = False
End With
Exit Sub
End If
Next i
Dosyam.Close True
Next klasor
Set evn = Nothing: Set kitap = Nothing: Set Dosyam = Nothing
Application.ScreenUpdating = True
End Sub