folder Tahribat.com Forumları
linefolder Yazılımlar / Diğer Programlar
linefolder Excel Makro Sayfa Tasima/Kopyalama



Excel Makro Sayfa Tasima/Kopyalama

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Çömez
    underzero
    underzero's avatar
    Üstün Hizmet Madalyası
    Kayıt Tarihi: 20/Ocak/2003
    Erkek

    Bir test1.xlsm isimli dosyada bulunan sayfa1 ve sayfa2 isimli sayfalari baska bir excel dosyasina test2.xlsx (makrosuz) olarak kaydetmek istiyorum.

     

    Bayaa bi kod inceledim aklimda kalanlarla ama excel üzerinde yapmak istediklerimi yapabildim (örnegin bir sayfayi oldugu gibi formuller olmadan deger ve formatiyla kopyalamak, isim degistirmek vs vs)

     

    ama iki tane excel sayfasini baska bir excel sayfasina kopyalamayi halledemedim.

     

    sayfayi tasirken sayfa ismini o günki tarih ile yazsa süper olur.

     

    Ornegin. test1.xlsm deki sayfa1 isimli sayfanin ismini tasirken sayfa1-08.03.2020 olarak degistirsin.

     

    Bir sekilde hallettim ama biraz uzun yoldan hallettim, o günkü tarih ile degistirme ve bildiginiz sayfa kopyalama makrosu bilen varsa yazarsa sevinirim


    pist bak bi ! - Ban Golu Canavari
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Çömez
    underzero
    underzero's avatar
    Üstün Hizmet Madalyası
    Kayıt Tarihi: 20/Ocak/2003
    Erkek

    ups


    pist bak bi ! - Ban Golu Canavari
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NoktaliVirgul
    NoktaliVirgul's avatar
    Kayıt Tarihi: 02/Temmuz/2007
    Erkek
    Public Sub sayfayiKopyala()
        Dim fileName
        Dim closedBook As Workbook
        Dim currentSheet As Worksheet
     
        fileName = Application.GetOpenFilename("Excel Dosyaları (*.xlsx), *.xlsx")
     
        If fileName <> False Then
            Application.ScreenUpdating = False
     
            Set currentSheet = Application.ActiveSheet
            Set closedBook = Workbooks.Open(fileName)
            currentSheet.Copy After:=closedBook.Sheets(closedBook.Worksheets.Count)
            closedBook.Worksheets(Application.ActiveSheet.Name).Name = Application.ActiveSheet.Name & "-" & Date
            closedBook.Close (True)
     
            Application.ScreenUpdating = True
        End If
    End Sub

     


    If my calculations are correct, when this baby hits eighty-eight miles per hour... you"re gonna see some serious shit.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NoktaliVirgul
    NoktaliVirgul's avatar
    Kayıt Tarihi: 02/Temmuz/2007
    Erkek

    Bu makroyu kaynak.xlsm 'e koy. Hangi sayfada çalıştırırsan o sayfayı, seçtiğin hedef.xlsx dosyasına tarih ile kopyalar.

    excel sayfa isimlerinde belli bir karakter sınırlaması var,onu aşmamaya dikkat et. kontrol koymadım. Office 2019'da test edildi onaylandı

    --

    tahmin edilen buglar:

    Eğer kaynak exceldeki kopyalanan sayfa isminde hedef excelde varsa hata verebilir. Eğer hedef dosyadaki tüm isimler kaynaktakinden farklıysa sorun çıkmaz. Çözüm için önce kaynak'taki dosya adı temp bir isim ile değiştirip o isimle kopyalanır, orjinal isme göre yeniden adlandırılır, sonra kaynak excel'deki sayfanın ismi orjinale döndürülür.

     

    NoktaliVirgul tarafından 09/Mar/20 10:01 tarihinde düzenlenmiştir

    If my calculations are correct, when this baby hits eighty-eight miles per hour... you"re gonna see some serious shit.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NoktaliVirgul
    NoktaliVirgul's avatar
    Kayıt Tarihi: 02/Temmuz/2007
    Erkek
    Public Sub sayfayiKopyala()
        Dim fileName
        Dim closedBook As Workbook
        Dim currentSheet As Worksheet
        Dim originalName As String
     
        fileName = Application.GetOpenFilename("Excel Dosyaları (*.xlsx), *.xlsx")
     
        If fileName <> False Then
            Application.ScreenUpdating = False
     
            Set currentSheet = Application.ActiveSheet
            originalName = currentSheet.Name
            currentSheet.Name = "TmpName"
            Set closedBook = Workbooks.Open(fileName)
            currentSheet.Copy After:=closedBook.Sheets(closedBook.Worksheets.Count)
            closedBook.Worksheets(Application.ActiveSheet.Name).Name = originalName & "-" & Date
            closedBook.Close (True)
            currentSheet.Name = originalName
     
            Application.ScreenUpdating = True
        End If
    End Sub
    
    

     


    If my calculations are correct, when this baby hits eighty-eight miles per hour... you"re gonna see some serious shit.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NoktaliVirgul
    NoktaliVirgul's avatar
    Kayıt Tarihi: 02/Temmuz/2007
    Erkek

    İkinci kod da bug'sız hali

    ---

    Aynı gün iki tane kopyalamak istersen isim hatası veriyor. Eğer böyle bir durum varsa tarih ve saat olarak yanına ekletmek çözebiir.


    If my calculations are correct, when this baby hits eighty-eight miles per hour... you"re gonna see some serious shit.
Toplam Hit: 1154 Toplam Mesaj: 6
excel vba excel makro