Kodlardaki Hata! Hk.

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,860
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Selamlar
Ekteki dosyada kapalı dosya seçerek (Burada Data dosyası) veri çekerken InputBox ile Hücre aralıklarını belirtiyorum. Ama kodlar hata veriyor. Sorunun kaynağını bulamadım.

Teşekkürler
 

Ekli dosyalar

Katılım
2 Temmuz 2014
Mesajlar
145
Excel Vers. ve Dili
2021 Türkçe, 64bit
dosyanızı dış siteye yükleyebilir misiniz?
normal üye olduğumdan dosyayı indiremiyorum.
 

Erkan Akayay

Altın Üye
Katılım
8 Aralık 2006
Mesajlar
405
Excel Vers. ve Dili
Ofis 365 TR 64 Bit
Altın Üyelik Bitiş Tarihi
21-11-2028
Set kopya = Application.InputBox("Kopyalamak İstediğiniz Hücreyi Giriniz..!", Type:=8)
 
Katılım
2 Temmuz 2014
Mesajlar
145
Excel Vers. ve Dili
2021 Türkçe, 64bit
siz kopya değişkenini range olarak tanımlamışsınız, oysa inputbox basit bir değer gönderir o nedenle atamayı aşağıdaki gibi tanımlayıp dener misiniz
Set kopya = ActiveSheet.Range(InputBox("Kopyalamak İstediğiniz Hücre Aralığını Giriniz..!", Default:="A2"))
burada ActiveSheet yerine sayfa adı da yazılabilir
 

Erkan Akayay

Altın Üye
Katılım
8 Aralık 2006
Mesajlar
405
Excel Vers. ve Dili
Ofis 365 TR 64 Bit
Altın Üyelik Bitiş Tarihi
21-11-2028
Range olarak tanımlamışısınız. Hata vermez, çalışıyor. Aşğıdaki linkten kontrol edebilirsiniz.
Application.InputBox method (Excel) | Microsoft Learn
Ama kodunuzda daha ciddi bir hata var.
Alan seçmeden dosyayı açmanız gerekmiyormu?
Diğer bir konu ise kapalı dosya ise buna neden gerek duydunuz? Biraz fanteziye kaçmışsınız sanki.
 

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,860
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
siz kopya değişkenini range olarak tanımlamışsınız, oysa inputbox basit bir değer gönderir o nedenle atamayı aşağıdaki gibi tanımlayıp dener misiniz
Set kopya = ActiveSheet.Range(InputBox("Kopyalamak İstediğiniz Hücre Aralığını Giriniz..!", Default:="A2"))
burada ActiveSheet yerine sayfa adı da yazılabilir
Sayın: @haliliyas
değişkenleri de düzelttim, Yine hata verdi
 

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,860
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Range olarak tanımlamışısınız. Hata vermez, çalışıyor. Aşğıdaki linkten kontrol edebilirsiniz.
Application.InputBox method (Excel) | Microsoft Learn
Ama kodunuzda daha ciddi bir hata var.
Alan seçmeden dosyayı açmanız gerekmiyormu?
Diğer bir konu ise kapalı dosya ise buna neden gerek duydunuz? Biraz fanteziye kaçmışsınız sanki.
Üstad
doğru söylüyorsunuz, Ama ihtiyaç halinde yapabilmek adına öğrenmek istediğimden kaynaklanıyor
 

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,860
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Sayın: @Erkan Akayay
Sayın: @haliliyas

Aşağıdaki kodlarla Sorun çözüldü.
İlgi ve alakalarınızdan dolayı çok teşekkür ederim.

Kod:
Sub KapaliDosyadanVeriCek()
Dim kopya As Variant: Dim yapistir As Variant: Dim kaynak As Variant
            Range("A2:E" & Rows.Count).Clear
            With Application.FileDialog(msoFileDialogOpen)
            .Filters.Clear
            .Filters.Add "Microsoft Excel", "*.xls;*.xlsx;*.xlsm;*.xlsb"
            .AllowMultiSelect = False
            .Show
           
            If .SelectedItems.Count = 0 Then
                  MsgBox "Veri çekmek istediğiniz Excel dosyasını seçiniz..!", vbInformation
                  Exit Sub
            End If
           
            kopya = InputBox("Kopyalamak İstediğiniz Hücre Aralığını Giriniz.", Default:="A2")
            yapistir = InputBox("Yapıştırmak İstediğiniz Hücreyi Giriniz.", Default:="A2")
     
            Application.Workbooks.Open .SelectedItems(1)
            Set kaynak = Application.ActiveWorkbook
     
            kaynak.ActiveSheet.Range(kopya).Copy ThisWorkbook.ActiveSheet.Range(yapistir)
            kaynak.Close False
            Set kaynak = Nothing
     
      End With
End Sub
 
Katılım
2 Temmuz 2014
Mesajlar
145
Excel Vers. ve Dili
2021 Türkçe, 64bit
amacınız kapalı dosyadan veri almaksa bunu ADO ile yapabilirsiniz
 

Erkan Akayay

Altın Üye
Katılım
8 Aralık 2006
Mesajlar
405
Excel Vers. ve Dili
Ofis 365 TR 64 Bit
Altın Üyelik Bitiş Tarihi
21-11-2028
Kod:
kopya = InputBox("Kopyalamak İstediğiniz Hücre Aralığını Giriniz.", Default:="A2")
            yapistir = InputBox("Yapıştırmak İstediğiniz Hücreyi Giriniz.", Default:="A2")
    
            Application.Workbooks.Open .SelectedItems(1)
Sayfayı açmadan hangi aralığı kopya ile tanıtıyorsunuz?
 
Katılım
2 Temmuz 2014
Mesajlar
145
Excel Vers. ve Dili
2021 Türkçe, 64bit
kitabı açmadan sadece belli hücrelerdeki veriyi almak için aşağıdaki kod kullanılabilir, veri msgbox ile gösteriliyor ama siz onu istediğiniz değişkene atayabilirsiniz

Kod:
   kopya = Range(InputBox("Kopyalamak İstediğiniz Hücre Aralığını Giriniz..!", Default:="A2")).Address(ReferenceStyle:=xlR1C1)
   Adres = "'" & Replace(.SelectedItems(1), Dir(.SelectedItems(1)), "[" & Dir(.SelectedItems(1))) & "]Sayfa1'!" & kopya
           MsgBox ExecuteExcel4Macro(Adres)
 

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,860
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
kitabı açmadan sadece belli hücrelerdeki veriyi almak için aşağıdaki kod kullanılabilir, veri msgbox ile gösteriliyor ama siz onu istediğiniz değişkene atayabilirsiniz

Kod:
   kopya = Range(InputBox("Kopyalamak İstediğiniz Hücre Aralığını Giriniz..!", Default:="A2")).Address(ReferenceStyle:=xlR1C1)
   Adres = "'" & Replace(.SelectedItems(1), Dir(.SelectedItems(1)), "[" & Dir(.SelectedItems(1))) & "]Sayfa1'!" & kopya
           MsgBox ExecuteExcel4Macro(Adres)
olabilir tabi ki
 

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,860
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Kod:
kopya = InputBox("Kopyalamak İstediğiniz Hücre Aralığını Giriniz.", Default:="A2")
            yapistir = InputBox("Yapıştırmak İstediğiniz Hücreyi Giriniz.", Default:="A2")
   
            Application.Workbooks.Open .SelectedItems(1)
Sayfayı açmadan hangi aralığı kopya ile tanıtıyorsunuz?
Üstad
Sanırım dosya arkada açılıyor. Ondan sonra aralığı girebiliyoruz.
 
Üst