DIR komutu hata veriyor! (Acil)

Katılım
25 Nisan 2008
Mesajlar
43
Excel Vers. ve Dili
2003 İngilizce
Merhaba,

Ben makrom ile yeni çalışma kitabları eklemek istiyorum. Ama çalışma kitablarınında isimlerini değişken oolarak atadım.

For i=1 to 30

Workbooks.Add

Filename = Mid(S1.Cells(i, "D").Value, 6, 1)

ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\user\My Documents\2008\04\30\" & [Filename]

dosya = Dir(dizin & "*[filename]*.xml*")

daha sonra da bu değişkeni içeren ilgili dizindeki dosyaları bulmak istiyorum. Kodu yukarıdaki gibi yazdığımda bulamıyor!! Neden olabilir? Kodu nasıl düzeltebilirim?
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Aşağıdaki şekilde denermisiniz?:cool:
aslıda dizin stringinizde görsem iyi olurdu.:cool:
dosya = Dir(dizin & filename & ".xml*")
 
Katılım
25 Nisan 2008
Mesajlar
43
Excel Vers. ve Dili
2003 İngilizce
Aşağıdaki şekilde denermisiniz?:cool:
aslıda dizin stringinizde görsem iyi olurdu.:cool:
dosya = Dir(dizin & filename & ".xml*")
dizin = "C:\Documents and Settings\user\My Documents\2008\04\30\"

dizin stringimde yukarıdaki gibi...

Yanıtınız için teşekkürler...Ancak denedim olmadı :(

dosya = Dir(dizin & "*filename*" & ".xml*")

şeklinde de denedim. olmadı. Dosya adım yani filename örneğin "1" oldu yani

filename = 1

çalışma kitabı oluşturuldu.

dizindeki .xml dosyalarımın adları

0000_1_rates
0414_1_rates şeklinde... ben de bu alt çizgideki 1'i arattırmak istiyorum. O zaman dosya adı

dosya=dir(dizin & "*_filename_*" & "*.xml") olmalı?

Bunu da denedim bunu da kabul etmedi :(
 
Son düzenleme:

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Filename = Mid(S1.Cells(i, "D").Value, 6, 1)
Burada aldığınız değer uzantısı ile berabermi yoksa sadece adımı var?
 
Katılım
25 Nisan 2008
Mesajlar
43
Excel Vers. ve Dili
2003 İngilizce
Filename = Mid(S1.Cells(i, "D").Value, 6, 1)
Burada aldığınız değer uzantısı ile berabermi yoksa sadece adımı var?
aradığım hücrede sadece ad var. Şöyle ki:

0000_1_rates gibi.

Ben buradaki 1 değerini alıp Filename adlı stringe atıyorum (Filename string olarak tanımladım). Sonra bu isimde bir çalışma kitabı oluşturuyorum.

Sonra da verdiğim dizinde bu değeri (örnekteki 1'i mesela) içeren dosya adlarını arıyorum. Dosya adları

0000_1_rates
0414_1_rates... şeklinde. O yüzden komutu;

dosya = Dir(dizin & "*_Filename_*" & "*.xml")

olarak da denedim ama olmadı. Filename'i değişken olarak kabul etmiyor mu?
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Olmuyor dan kastınız nedir?:cool:
 
Katılım
25 Nisan 2008
Mesajlar
43
Excel Vers. ve Dili
2003 İngilizce
Olmuyor dan kastınız nedir?:cool:
dosya = Dir(dizin & "*_Filename_*" & "*.xml")

While dosya <> ""

DoEvents

........................
........................
........................

Wend


şeklinde bir kodum var. Dosya oluşmadığı için bu kodu sürekli atlıyor ve makroyu sonlandırıyor.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Dosya yoksa oluşturmak istiyorsanız.Aşağıdaki şekilde kullanmalısınız.:cool:
Kod:
While dosya = ""
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Kodu aşağıdaki şekli ile deneyiniz.:cool:
Kod:
dosya = Dir(dizin & Filename & ".xml")
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Olmadı üzgünüm başka fikrin var mı? filename'i değişken olarak mı kabul etmiyor acaba?
Bu durumda dizin yanlış veya filename yanlış veya 2side yanlış
Filename'i değişken olarak kabul eder.İsterseniz msgbox filename yazarak filename değişkeni içersindeki değeri öğrenebilirsiniz.:cool:
 
Katılım
25 Nisan 2008
Mesajlar
43
Excel Vers. ve Dili
2003 İngilizce
Bu durumda dizin yanlış veya filename yanlış veya 2side yanlış
Filename'i değişken olarak kabul eder.İsterseniz msgbox filename yazarak filename değişkeni içersindeki değeri öğrenebilirsiniz.:cool:
Dizin tekrar kontrol ettim doğru görünüyor. Msgbox filename'de değişken doğru görünüyor. Ama ben değişkendeki değeri içeren bir dosya arıyorum.

Dosya adı "0000_1_rates.xml" şeklinde ve filename değişkeni de "_1_" ise ben bu değişkeni içeren "0000_1_rates.xml" dosyasını bulsun istiyorum. Buna göre kodu nasıl yazmalıyım?
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Dizin içersindeki 5,6 ve 7nci karakterleri "_1_" olan dosyaların listesinimi istiyorsunuz?
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Aşağıdaki kodu kullanınız.:cool:
Kod:
Dim dizin, dosya, dsy, dosyalar As String
dizin = "C:\Documents and Settings\user\My Documents\2008\04\30\"
dosya = Dir(dizin & "*.*")
Do While dosya <> ""
    If Len(dosya) >= 7 Then
        dsy = Mid(dosya, 5, 3)
        If dsy = "_1_" Then
            dosyalar = dosyalar & dosya & vbLf
        End If
    End If
Loop
MsgBox dosyalar
 
Katılım
25 Nisan 2008
Mesajlar
43
Excel Vers. ve Dili
2003 İngilizce
Aşağıdaki kodu kullanınız.:cool:
Kod:
Dim dizin, dosya, dsy, dosyalar As String
dizin = "C:\Documents and Settings\user\My Documents\2008\04\30\"
dosya = Dir(dizin & "*.*")
Do While dosya <> ""
    If Len(dosya) >= 7 Then
        dsy = Mid(dosya, 5, 3)
        If dsy = "_1_" Then
            dosyalar = dosyalar & dosya & vbLf
        End If
    End If
Loop
MsgBox dosyalar
Burada yer alan "_1_" aslında filename değişkeninin aldığı bir değer. Dolayısıyla ben kodda yer alan "_1_" yerine filename yazabilirim di mi?
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Burada yer alan "_1_" aslında filename değişkeninin aldığı bir değer. Dolayısıyla ben kodda yer alan "_1_" yerine filename yazabilirim di mi?
Benim önceki mesajda verdiğim kodları denedinizmi?çalışıyormu?MsgBox'ta listeleme yapması lazımdı.:cool:
 
Katılım
25 Nisan 2008
Mesajlar
43
Excel Vers. ve Dili
2003 İngilizce
Benim önceki mesajda verdiğim kodları denedinizmi?çalışıyormu?MsgBox'ta listeleme yapması lazımdı.:cool:
Evet çalışıyor teşekkür ederim fikir için. Ancak loop tan kurtulamıyor. Aynı kodu tekrarlıyor.

Ayrıca ben

dosya = Dir(dizin & "*.xml")

komutundan sonra

MsgBox dosya

komutu ekledim. Dosya içeriğinde tek bir dosya buldu. Oysa o dizinde 4 tane .xml dosyası var. Neden 1 tane buldu??
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Evet çalışıyor teşekkür ederim fikir için. Ancak loop tan kurtulamıyor. Aynı kodu tekrarlıyor.

Ayrıca ben

dosya = Dir(dizin & "*.xml")

komutundan sonra

MsgBox dosya

komutu ekledim. Dosya içeriğinde tek bir dosya buldu. Oysa o dizinde 4 tane .xml dosyası var. Neden 1 tane buldu??
Evet kodu eksik yazmışım.
Alttaki kodları çalıştırınız.:cool:
Kod:
Dim dizin, dosya, dsy, dosyalar As String
dizin = "C:\Documents and Settings\user\My Documents\2008\04\30\"
dosya = Dir(dizin & "*.*")
Do While dosya <> ""
    If Len(dosya) >= 7 Then
        dsy = Mid(dosya, 5, 3)
        If dsy = "_1_" Then
            dosyalar = dosyalar & dosya & vbLf
        End If
    End If
   [B][COLOR="Red"]dosya = Dir[/COLOR][/B]
Loop
MsgBox dosyalar
 
Üst