• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

masaüstü dosya yolu kodunda hata

zulfuernek

Altın Üye
Katılım
24 Haziran 2017
Mesajlar
761
Excel Vers. ve Dili
türkçe
Set WinScrObj = CreateObject("WScript.Shell") 'sabit masaüstü yolu değilse bu iki satırı en başa yapıştır
MyFolder = WinScrObj.SpecialFolders("DeskTop") 'sabit masaüstü yolu değilse bu iki satırı en başa yapıştır


Workbooks.Open Filename:=MyFolder & "\KTMH.xls", Origin:=xlWindows


yukarıdaki kodda dosya yolunda hata veriyor. farklı bilgisayarlarda giriş yaptığım için masaüstü yolu sabit değil bu nedenle yukarıdaki kodu uyguluyorum ancak hata veriyor. kodda hatamı yapıyorum acaba
 
Verdiği hata mesajı nedir?

Her bilgisayarın masaüstünde KTMH.xls isimli dosya var mı?

,Origin:=xlWindows ifadesini silip, öyle deneyin.

.
 
her iki değişikliğide yaptım. evet her masaüstünde ktmh iisimli dosya mevcut. burda ufak bir değişiklik yapabilirmiyiz. yani belirli bir xls dosyasını değilde masaüstündeki herhangi bir xls dosya yolunu seçmesi için pencere açılsa.

verdiiği hata şu : Workbooks.Open Filename:=MyFolder & "\KTMH.xls", Origin:=xlWindows

bu satırı sarı çizgili yapıyor. herhangi bir uyarı mesajı vermiyor. sadece kodda bir yerler yanlışmış gibi sarı zeminle çiziyor
 
Aşağıdaki prosedurun çalışmasını inceleyin.

Kaynak : http://www.excel.web.tr/derres/zeki/anasayfa.htm

Kod:
Sub FilePicker()
    Dim fd As FileDialog, ret As Long, sFile
    
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    
   [COLOR=darkgreen] ' Açılışta geçerli dizin.[/COLOR]
    fd.InitialFileName = CreateObject("wscript.shell").specialfolders("desktop")
    
   [COLOR=darkgreen] ' Çoklu seçim geçerli[/COLOR]
    fd.AllowMultiSelect = False

   [COLOR=darkgreen] ' Pencere başlığına verilecek isim.[/COLOR]
    fd.Title = "::.. Zülfü Ernek ..::"
  
   [COLOR=darkgreen] ' Sonraki çağırım için filitreyi temizle[/COLOR]
    fd.Filters.Clear
    
   [COLOR=darkgreen] ' Filitreleri ekle[/COLOR]
    fd.Filters.Add "Excel dosyaları(*.xls; *.xlsx; *.xlsm)", "*.xls; *.xlsx; *.xlsm", 1
    fd.Filters.Add "Tüm dosyalar(*.*)", "*.*", 2
    
  [COLOR=darkgreen]  ' Varsayılan filitre[/COLOR]
    fd.FilterIndex = 1
    
    [COLOR=darkgreen]' Diyaloğu aç.[/COLOR]
    ret = fd.Show
    
    [COLOR=DarkGreen]' İptal tuşuna basılırsa.[/COLOR]
    If Not ret = -1 Then Exit Sub

    If fd.SelectedItems.Count > 1 Then
        For Each vFile In fd.SelectedItems
            Workbooks.Open vFile
        Next
    Else
        Workbooks.Open fd.SelectedItems(1)
    End If

End Sub

.
 
zeki hocam emeğine sağlık. çok teşekkür ederim tam istediğim gibi oldu. ancak burda sizden ufak bir ayrıntıyı soracağım. pencere bağşlığı dediğimiz olay nedir. adımın ve soyadımın yazdığı kısım. ne işe yarıyor. veya bu satırı eklemesek bir sakıncası olur mu?
 
zeki hocam bir diğer sorum şu olacak seçtiğimiz xls dosyasını açıyor. burda seçerek açtığımız xls dosyasındaki veriyi olduğu gibi kopyaladıktan sonra açılan xls dosyasını kapatması için nasıl bir ekleme yapabilirim. bendeki kodla birleştirince kopyalamada hata yaşadım.
 
zeki hocam emeğine sağlık. çok teşekkür ederim tam istediğim gibi oldu. ancak burda sizden ufak bir ayrıntıyı soracağım. pencere bağşlığı dediğimiz olay nedir. adımın ve soyadımın yazdığı kısım. ne işe yarıyor. veya bu satırı eklemesek bir sakıncası olur mu?

Pencere başlığına etiketinizi yapabilirsiniz. Olmasa da olur.

zeki hocam bir diğer sorum şu olacak seçtiğimiz xls dosyasını açıyor. burda seçerek açtığımız xls dosyasındaki veriyi olduğu gibi kopyaladıktan sonra açılan xls dosyasını kapatması için nasıl bir ekleme yapabilirim. bendeki kodla birleştirince kopyalamada hata yaşadım.

Kopyalama kodunuz bilinmiyor ama, "ActiveWorkBook" gibi kullanım kargaşa çıkarabilir. Bunun yerine açık çalışma kitaplarını örneğin "wb1", "wb2" gibi değişkenlere alın.

Açılan dosyayı değişkene aşağıdaki gibi alabilirsiniz:

Kod:
Set wb = Workbooks.Open(fd.SelectedItems(1))
[COLOR=DarkGreen]'Örnek : wb.Sheets(1).Range("A1").Copy wb2.Sheets(1).Range("A1")[/COLOR]
 
zeki hocam xls dosyası açmada kusursuz çalışıyor. fakat txt dosyası açarken bir sorun var. txt dosyasını düz metin olarak açıyor. oysaki ben sütunlar halinde açmasını istiyorum aşağıdaki kod txt dosyasını açarken sütunlara ayırıyor ancak bu koda uygulayamadım nereye hangisini eklemem gerkeli acaba sütunlara ayıran kod aşağıdadır:

Workbooks.OpenText Filename:="C:\Users\Elazığ\Desktop\BCH.TXT", Origin:= _
1254, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), _
Array(6, 9), Array(8, 1), Array(22, 1), Array(30, 9), Array(37, 1), Array(41, 9), Array(86, _
1), Array(96, 1), Array(117, 9)), TrailingMinusNumbers:=True
 
Geri
Üst