• DİKKAT

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

sekmeye dosyanın kendi ismini verme

Katılım
25 Ocak 2006
Mesajlar
763
Excel Vers. ve Dili
2019 tr
Kod:
Path = ThisWorkbook.Path & "\FORMFRT\"
Filename = Dir(Path & "*.xlsx")
  Do While Filename <> ""
  Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
     For Each Sheet In ActiveWorkbook.Sheets
     ActiveSheet.Name = ActiveSheet.Range("w1")
     Sheet.Copy After:=ThisWorkbook.Sheets(1)
  Next Sheet
     Workbooks(Filename).Close
     Filename = Dir()
  Loop
 
 
Dim intI As Integer, intJ As Integer
 For intI = 1 To Sheets.Count
   For intJ = 1 To Sheets.Count - 1
     If UCase(Sheets(intJ).Name) > UCase(Sheets(intJ + 1).Name) Then
        Sheets(intJ).Move After:=Sheets(intJ + 1)
     End If
   Next
 Next
Application.ScreenUpdating = True

bekle = ""
MsgBox "Birleştirme Tamamlandı", vbInformation
End Sub

kodda aşağıdaki

ActiveSheet.Name = ActiveSheet.Range("w1")

kısımda gözüktüğü gibi w1 den sorgu yapıp bu hücredeki ismi sekmeye veriyor. bense sayfaya eklenen excel dosyasının adını bu sekmeye vermesini istiyorum. nasıl yapmalıyım sizce.

diğer bir sorum ise çok önemli olmasa da birleştirilen excel dosyaları sondaki kod sayesinde oluyor ama ç harfi ile başlayanları sona atıyor, oysaki daha önlerde olması gerekiyor. bu dediğim çok önemli değil ama önceki konu önemli. kolay gelsin...
 
İlgili satırı aşağıdaki ile değiştirin.:cool:
Kod:
ActiveSheet.Name = ThisWorkbook.Name
 
İlgili satırı aşağıdaki ile değiştirin.:cool:
Kod:
ActiveSheet.Name = ThisWorkbook.Name
klasör içinden alıp birleştirdiği dosyaların adı olacaktı. bunu yazınca birleştirmek için açtığım excelin adını veriyor ve sekmede yanlarına sırayla numara koyuyor.
Path = ThisWorkbook.Path & "\FORMFRT\" bu klasörde farklı adda çokca dosya var. bunların adını sekmelere verecekti.
 
Böyle deneyin.:cool:
Kod:
ActiveSheet.Name = ActiveWorkbook.Name
 
Böyle deneyin.:cool:
Kod:
ActiveSheet.Name = ActiveWorkbook.Name
denemiştim olmamıştı. sorun karakterlermiş. / karakterleri vs var. bazı karakterler sıkıntı yaratıyor. bu kodun devamına verilecek isimlerde : / \ ? * karakterleri varsa bunları - olarak yaz diyebilir miyiz?

edit: ismin sonunda .xlsx de ekliyor. dolayısı ile 31 karakterden uzun oluyor. hücre içinde karakteri ayarlamış olsam da sonuna 5 karakter eklemiş olduğundan sorun çıkıyor. uzantıyı almaması için ne yapmalıyım...
 
Son düzenleme:
denemiştim olmamıştı. sorun karakterlermiş. / karakterleri vs var. bazı karakterler sıkıntı yaratıyor. bu kodun devamına verilecek isimlerde : / \ ? * karakterleri varsa bunları - olarak yaz diyebilir miyiz?

edit: ismin sonunda .xlsx de ekliyor. dolayısı ile 31 karakterden uzun oluyor. hücre içinde karakteri ayarlamış olsam da sonuna 5 karakter eklemiş olduğundan sorun çıkıyor. uzantıyı almaması için ne yapmalıyım...
Buyurun.:cool:
Kod:
Dim sayfaadi As String
sayfaadi = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 5)
ActiveSheet.Name = Replace(Replace(Replace(Replace(Replace(sayfaadi, ":", "-"), "/", "-"), "\", "-"), "?", "-"), "*", "-")
 
Geri
Üst