• DİKKAT

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

Bir Butonu 1den fazla kez kullanmak

  • Konbuyu başlatan Konbuyu başlatan zuzzu
  • Başlangıç tarihi Başlangıç tarihi
Katılım
28 Şubat 2011
Mesajlar
57
Excel Vers. ve Dili
Excel 2007
Arkadaslar merhaba,

Sub CommandButton1_Click()

Dim wk As Workbook
Set wk = Workbooks.Add(xlWBATWorksheet) ' 1 Sayfasi olan yeni Excel aciyor

Dim ws As Worksheet
Set ws = wk.ActiveSheet ' aktif sayfayi secip ardindan kopyalam islemi yapiliyor.

' Veri Kopyalama Kodlari
'....
'....

End Sub


seklinde yazdigim kodlar var. CommandButton1'e basildiginda 1 tane sayfasi olan yeni bir excel workbook acilip, veri kopyalama islemi yapiliyor.

Bu CommandButton1'e 2. kez tikladigimda, daha önceden actigi 1 sayfaya sahip excel workbook'unda Sayfa1'in yanina Sayfa2'yi olusturup, veri kopyalama isini yapmasini istiyorum. 3. kez basarsam da, Sayfa3'ü olustursun ve kopyalama isini gerceklestirsin.

Nerelere hangi kodlari eklemem gerekiyor? Yardimci olabilirseniz sevinirim. :-)
 
Selamlar,

Veri aktarma işlemi bittikten sonra yeni dosyanızı masaüstüne mesela "DENEME.xls" olarak kayıt edebilirsiniz.

Bu aşamadan sonra kodla masaüstünde "DENEME.xls" isimli dosyanın var olup olmadığını kontrol edersiniz. Eğer varsa dosyayı açıp içine yeni boş bir excel sayfası ekleyip veri aktardıktan sonra dosyayı kayıt edip kapatırsınız. Eğer dosya masaüstünde yoksa yeni bir excel kitabı oluşturup verilerinizi aktarıp dosyayı kayıt edip kapatırsınız.

Eğer bu bahsettiklerim sizin için uygunsa aşağıdaki kodu kullanabilirsiniz.

Kod:
Option Explicit
 
Private Sub CommandButton1_Click()
    Dim DOSYA_YOLU, WK As Workbook, WS As Worksheet
    
    DOSYA_YOLU = CreateObject("WScript.Shell").SpecialFolders(0)
    
    If Dir(DOSYA_YOLU & "\DENEME.xls") <> "" Then
        Set WK = Workbooks.Open(DOSYA_YOLU & "\DENEME.xls")
        Set WS = WK.Sheets.Add(After:=Sheets(WK.Sheets.Count))
    
        ' Veri Kopyalama Kodlari
        '....
        '....
        
        Application.DisplayAlerts = False
        WK.SaveAs DOSYA_YOLU & "\DENEME.xls"
        WK.Close
    
    Else
    
        Set WK = Workbooks.Add(xlWBATWorksheet) ' 1 Sayfasi olan yeni Excel aciyor
        Set WS = WK.ActiveSheet ' aktif sayfayi secip ardindan kopyalam islemi yapiliyor.
        
        ' Veri Kopyalama Kodlari
        '....
        '....
        
        WK.SaveAs DOSYA_YOLU & "\DENEME.xls"
        WK.Close
    End If
End Sub
 
Korhan Bey merhaba,

Yanitiniz icin tesekkür ederim.

Ancak statik bir sekilde dosyayi kaydetmek istemiyorum. Masaüstüne kaydetmemem lazim.

Zaten benim bir veri bankam var. Belirli kriterlere göre, dosyalarin icine girip Olusturulan yeni exceldeki Sayfa1in verilerini arsive ekleyecek.

O acidan belirli bir adres yerine sadece, butona ilk basinca Book1.xlsx acmasi, eger 2. kez basilirsa Book1.xlsx'in 2. sayfasina eklemesi. Sizin kodlarinizi nasil uyarlayabilirim?
 
Sanirim yeni actigim Excel dosyasina bir isim vermem gerekli, yoksa bilgisayarda baska Book1 acik varsa o zaman hata verebilir.

Yeni bir dosya ekleyip adina Plot.xlsx koyabilirim.
 
Selamlar,

Yeni dosyaya isim verebilmeniz için kaydetmeniz gerekiyor. Eğer sadece iki excel dosyası açık olacaksa kodu değiştirebiliriz. Aksi durumda kaydetmekten başka çareniz görünmüyor.
 
Butona basinca, Plot.xlsx dosyasi olustursun
1. sayfasina verileri kopyalasin.

2. kez butona basilinca, Plot.xlsx'e yeni sayfa ekleyip oraya kopyalasin

Sayfalar olusturulup kopyalama islemi bittikten sonra, sheetleri baska bir dosyanin icine kopyalaticam

ve en sonunda da Plot.xlsx dosyasini silsin.

Bunu nasil uyarlayabilirim?
 
Geri
Üst