Dosyaları getirmiyor.

Katılım
28 Şubat 2007
Mesajlar
34
Excel Vers. ve Dili
Office 2010 Türkçe
Değerli arkadaşlar Ek'teki dosyanın içinde Dizindeki dosyaları Aktar_2 modülünde bir sorun var. Bu modülde yapması gereken C7 hücresi ile mesela C17 hücresi arasında belirtilmiş dosyaları getirmesi ve toplamlarınıda form dosyasına alması gerekiyor. yani Dizindeki dosyaları Aktar_1 modülü ile aynı işi yapması lazım ama sadece getireceği dosyaları belirteceğim kriter yeri farklı. Ama dosyaları getirmiyor. bu konuda tecrübeli arkadaşlar bir bakabilirse sevinirim.
 

Ekli dosyalar

  • 64.2 KB Görüntüleme: 17

Korhan Ayhan

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

Sanırım benim hazırladığım kodlar. Doğru çalışması için C7 hücresinden itibaren adını yazdığınız dosyaların A2 hücresinde belirtilen klasör altında olması gerekmektedir.
 
Katılım
28 Şubat 2007
Mesajlar
34
Excel Vers. ve Dili
Office 2010 Türkçe
Selamlar,

Sanırım benim hazırladığım kodlar. Doğru çalışması için C7 hücresinden itibaren adını yazdığınız dosyaların A2 hücresinde belirtilen klasör altında olması gerekmektedir.
Evet Korhan bey sizin yazdığınız kodlar. "dizindeki dosyaları aktar 1" çalışıyor. Fakat "dizindeki dosyaları aktar 2" çalışmıyor. Ama ilk gönderdiğinizde çalışıyordu. Şimdi ise 3-4 dosya belirtiyorum dizin doğru , içinde istediğim dosyalarda var ama dosyaları getirmiyor. işlem bitmiş gibi başlığı değiştirmeyi unutmayın iletisini veriyor. Form sayfasının içide boş oluyor.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,800
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
madül 2 deki kodun
DOSYA_YOLU = [A2]
' belirttiği dosya adlarına göre tek tek getirttim.
If [A2] = "" Then
MsgBox "Lütfen dizin adını giriniz !", vbCritical, "Dikkat !"
[A2].Select
Exit Sub: End If


yerine aşağıdaki gibi yapılırsa ve dosyalar proğram çalıştığı dosyanın yanına kanursa daha iyi olmaz mı A2 hücresine gerek kalmaz



DOSYA_YOLU = ActiveWorkbook.Path
 
Son düzenleme:
Katılım
28 Şubat 2007
Mesajlar
34
Excel Vers. ve Dili
Office 2010 Türkçe
değerli arkadaşlar ek'teki dosyanın içinde dizindeki dosyaları aktar_2 modülünde bir sorun var. Bu modülde yapması gereken c7 hücresi ile mesela c17 hücresi arasında belirtilmiş dosyaları getirmesi ve toplamlarınıda form dosyasına alması gerekiyor. Yani dizindeki dosyaları aktar_1 modülü ile aynı işi yapması lazım ama sadece getireceği dosyaları belirteceğim kriter yeri farklı. Ama dosyaları getirmiyor. Bu konuda tecrübeli arkadaşlar bir bakabilirse sevinirim.
güncel....
 

Korhan Ayhan

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

Mesajımda da belirttiğim gibi (101,105...) şeklinde yazdığınız dosyaların A2 hücresindeki (C:\200812\) klasörün altında olması gerekmektedir. Aksi durumda kod çalışmayacaktır.

Yada sonuca ulaşabilmek için Sn. halit3 beyin belirttiği şekilde kullanmanız gerekiyor.
 
Katılım
28 Şubat 2007
Mesajlar
34
Excel Vers. ve Dili
Office 2010 Türkçe
Selamlar,

Mesajımda da belirttiğim gibi (101,105...) şeklinde yazdığınız dosyaların A2 hücresindeki (C:\200812\) klasörün altında olması gerekmektedir. Aksi durumda kod çalışmayacaktır.

Yada sonuca ulaşabilmek için Sn. halit3 beyin belirttiği şekilde kullanmanız gerekiyor.
Sizi çok iyi anladım. Onuda denedim ama olmadı. Ancak problem dosyaların dizin altında olmamasından veya dizin isminin (a2) hatalı olmasından kaynaklamıyor. Neden derseniz. örneğin A2 hücresinde gösterdiğim dizinin içini boşalttığımda " Aktarılacak dosya bulunamadı" diyor. Veya C sütununa hiç bir dosya adı belirtmezsem "Lütfen dosya adı belirtiniz" de diyor. yani dosyaları bulamamasından veya dizin adından kaynaklanmadığına eminim. Bir delil olarakta şunu örnek vereyim. Mesela C sütununa getirmesini istediğim dosyayı 101 ve 102 olarak yani 2 adet dosya belirtir ve kodları çalıştırırsam "Veriler aktarılmıştır Lütfen Başlığı değiştiriniz." mesajının gelmesi 1 sn. sürüyorsa, 101,102,103,....120 gibi 20 adet dosya belirtirsem 4-5 sn. sürüyor. yani dosyaları bulamamasından kaynaklanmadığına eminim. dediğim gibi Veriler Aktarılmıştır Lütfen başlığı değiştirmeyi unutmayın mesajı geliyor ama sayfa olarak hiçbiri eklenmemiş ve Form sayfasına hiç bir değer gelmemiş halde bunu diyor.
 
Son düzenleme:

Korhan Ayhan

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

Kodu aşağıdaki şekilde değiştirip denermisiniz. Değişiklik yaptığım kısımları kırmızı renkle belirginleştirdim.

Kod:
Sub DİZİNDEKİ_DOSYALARI_AKTAR_2()
    Application.ScreenUpdating = False
    Dim AKTARILACAK_DOSYA As Workbook
    Dim ANA_DOSYA As Workbook
    Dim DOSYA_YOLU As String
    Set ANA_DOSYA = ThisWorkbook
    Set SAYFA = ANA_DOSYA.Sheets("KRİTER")
    
    SAYFA.Select
    DOSYA_YOLU = [A2]
    
    If [A2] = "" Then
    MsgBox "Lütfen dizin adını giriniz !", vbCritical, "Dikkat !"
    [A2].Select
    Exit Sub: End If
    
    [COLOR=red]If WorksheetFunction.CountA([C6:C65536]) = 1 Then[/COLOR]
    MsgBox "Lütfen dosya adı giriniz !", vbCritical, "Dikkat !"
    [C2].Select
    Exit Sub: End If
    
    For X = ANA_DOSYA.Sheets.Count To 4 Step -1
    Application.DisplayAlerts = False
    Sheets(X).Delete
    Application.DisplayAlerts = True
    Next
    
    Sheets("FORM").[B7:AA30].ClearContents
    
    If CreateObject("Scripting.FileSystemObject").GetFolder(DOSYA_YOLU).Files.Count = 0 Then GoTo Son
    
    For X = 7 To [C65536].End(4).Row
    DOSYA_VARMI = Dir(DOSYA_YOLU & "\" & SAYFA.Cells(X, [COLOR=red]3[/COLOR]) & ".xls")
    If DOSYA_VARMI <> "" Then
    Workbooks.Open (DOSYA_YOLU & "\" & SAYFA.Cells(X, [COLOR=red]3[/COLOR]) & ".xls")
    Set AKTARILACAK_DOSYA = ActiveWorkbook
    AKTARILACAK_DOSYA.Sheets(1).Copy After:=ANA_DOSYA.Sheets(ANA_DOSYA.Sheets.Count)
    ActiveSheet.Name = AKTARILACAK_DOSYA.Name
    AKTARILACAK_DOSYA.Close False
    Set AKTARILACAK_DOSYA = Nothing
    End If
    Next
    
    SAYFA.Select
    [A1].Select
    
    TOPLAMLARI_AL
    
    Set ANA_DOSYA = Nothing
    Set SAYFA = Nothing
    Application.ScreenUpdating = True
    MsgBox "Veriler aktarılmıştır." & Chr(10) & "Lütfen Başlığı Değiştirmeyi Unutma!", vbInformation, "ÇOK ŞÜKÜR !"
    Exit Sub
Son:
    [A1].Select
    Set ANA_DOSYA = Nothing
    Set SAYFA = Nothing
    Application.ScreenUpdating = True
    MsgBox "Veri aktarılacak dosya bulunamamıştır !", vbExclamation, "DİKKAT !"
End Sub
 
Katılım
28 Şubat 2007
Mesajlar
34
Excel Vers. ve Dili
Office 2010 Türkçe
Korhan bey üst satırdaki düzeltmei zaten yapmıştım ama düzelmemişti. Fakat
DOSYA_VARMI = Dir(DOSYA_YOLU & "\" & SAYFA.Cells(X, 3) & ".xls")
If DOSYA_VARMI <> "" Then
Workbooks.Open (DOSYA_YOLU & "\" & SAYFA.Cells(X, 3) & ".xls")

şeklindeki düzeltme işe yaradı. Elinize emeğinize sağlık. Çok teşekkür ederim. Sorun düzelmiştir.
 
Üst