Belirlediğim verilerin klasör, DosyaAdı olarak kaydı

Katılım
21 Nisan 2006
Mesajlar
72
Forumlarla aramama rağmen bu konuyla ilgili örneklere ulaşamadım , var fakat varolanlarda klasör nasıl yaratılır belirtilmemiş.O yüzden eğer bu konu daha önce açılmış ise özür dileyerek yapmak istediğim şeyi izah etmek isterim.

Ben sayfamın S8 hanesinde bulunan verinin (06-241 ve her seferinde 1 sayı artan) düğmeye her tıklandığında o hanede bulunan o verinin adıyla bir klasör ve o klasörün içinde aynı isimle excel dosyası açılmasını istiyorum.

Misal C:\Veriyedekleri\06-241\06-241.xls

C:\Veriyedekleri\06-242\06-242.xls
.
.
. ... gibi

Teşekkür ederim
Saygılarımla
 
Katılım
20 Şubat 2006
Mesajlar
188
Excel Vers. ve Dili
Office 2003 Tr
Kod:

Sub W()
If MsgBox("Yedek almak istiyor musunuz?", vbYesNo + vbQuestion, "Y E D E K L E M E") = vbNo Then Exit Sub
dosya = Range("S8").Value & ".xls"
ThisWorkbook.SaveAs ("C:\" & dosya)
End Sub
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Eğer S8 hücresinde 06-240 gibi bir değer varsa, aşağıdaki kod her çalıştırıldığında 06-241, 06-242 ... gibi artarak sizin istediğinizi yapar.

Eğer yanlış anlamadıysam, klasörlerin içinde yeni boş Excel dosyalarının oluşturulmasını istiyorsunuz.

Kod:
Sub Test()
    Dim No As Long
    Dim strName As String, strFolder As String
    Dim MyWb As Workbook
    No = Mid(Range("S8"), InStr(1, Range("A1"), "-") + 1, 98)
    strName = Replace(Range("S8"), No, No + 1)
    Range("S8") = strName
    If Dir("C:\veriyedekleri", vbDirectory) = Empty Then MkDir "C:\veriyedekleri"
        strFolder = "C:\veriyedekleri\" & strName
        If Dir(strFolder, vbDirectory) = Empty Then
            MkDir strFolder
            If Dir(strFolder & Application.PathSeparator & strName & ".xls") = Empty Then
            Set MyWb = Workbooks.Add
            MyWb.SaveAs strFolder & Application.PathSeparator & strName & ".xls"
            MyWb.Close
        End If
    End If
End Sub
 
Katılım
21 Nisan 2006
Mesajlar
72
Haluk' Alıntı:
Eğer S8 hücresinde 06-240 gibi bir değer varsa, aşağıdaki kod her çalıştırıldığında 06-241, 06-242 ... gibi artarak sizin istediğinizi yapar.

Eğer yanlış anlamadıysam, klasörlerin içinde yeni boş Excel dosyalarının oluşturulmasını istiyorsunuz.
Teşekkür ederim ilgi ve yardımlarınızdan dolayı ,
Dosyam boş değil makroyu koyduğum dosyanın yedeği niteliğinde olacak.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
why35' Alıntı:
....

Dosyam boş değil makroyu koyduğum dosyanın yedeği niteliğinde olacak.
Kod:
Sub Test2()
    Dim No As Long
    Dim strName As String, strFolder As String
    No = Mid(Range("S8"), InStr(1, Range("A1"), "-") + 1, 98)
    strName = Replace(Range("S8"), No, No + 1)
    Range("S8") = strName
    If Dir("C:\veriyedekleri", vbDirectory) = Empty Then MkDir "C:\veriyedekleri"
        strFolder = "C:\veriyedekleri\" & strName
        If Dir(strFolder, vbDirectory) = Empty Then
            MkDir strFolder
            If Dir(strFolder & Application.PathSeparator & strName & ".xls") = Empty Then
            ThisWorkbook.SaveCopyAs strFolder & Application.PathSeparator & strName & ".xls"
        End If
    End If
End Sub
 
Katılım
21 Nisan 2006
Mesajlar
72
vermiş olduğunuz kodları denediğimde

No = Mid(Range("S8"), InStr(1, Range("A1"), "-") + 1, 98)

kısmının hata verdiğini farkettim.
sizce sorun ne olabilir
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
S8 hücresine ilk önce (bir kereye mahsus) elle 06-240 gibi bir değer yazın.

Daha sonra kodu çalıştırın.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Ekli dosyayı inceleyin ....

Dosyanın yedeği alınırken, bu işi yapan kod modulü ve buton da yedek dosyadan silinmektedir.
 
Katılım
21 Nisan 2006
Mesajlar
72
Sayın Haluk Bey

Çok teşekkür ederim zahmet edip dosya haline getirmişsiniz ve tam olarak benim istediğim gibi olmuş ellerinize sağlık fakat
çalıştırdığımda

Set VBComp = ActiveWorkbook.VBProject.VBComponents("ModBackUp")

kısmında "Visiul Basic projesine programlı olarak erişim güvenli değil" hata mesajı çıktı.
Ne yapmam gerek.
Saygılarımla
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Excel'de güvenlik ayarlarına bakın....

"Visual Basic Projelerine erişime güven...." gibilerinden birşey olması lazım.

Bunu onaylayın.
 
Katılım
21 Nisan 2006
Mesajlar
72
Haluk Bey çok teşekkür ederim yardımlarınızdan dolayı , güvenlik kısmınıda bulup onayladıktan sonra vermiş olduğunuz kod sorunsuz çalıştı.
Gerçekten bu bilgi benim inanılmaz işime yaradı.
Paylaşmış olduğunuz bilginiz,zamanınız ve şahsiyetinize sonsuz saygılar dilerim.
Barış Toğan
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Barış bey, rica ederim.

İşinize yaradığına sevindim.
 
Katılım
21 Nisan 2006
Mesajlar
72
Merhaba Arkadaşlar ,

Sayın Haluk bey yaklaşık 1 yıl önce bu forumda oluşan sorunuma yanıt bulmuş ve bana gerçekten cok yardımcı olmuştunuz.Şimdi bu konunun devamı olarak , vermiş olduğunuz koda ilave olarak yedek alınırken istediğim sayfaların kayıt edilmesini nasıl saglarım.
Yani bu kod ile varolan sayfanın yeni hali bir klasore teker teker atan sayılarla kopyalanıyordu , ama bu kopyalama işlemi yapılırken ben tüm sayfaları değil "sayfa1" ve "sayfa2" nin kopyalanmasını istiyorum.
Evet aradan uzun zaman geçti anımsamakta zorlanabilirsiniz.Ama bu konuda yardımcı olacağina eminim.Teşekkür ederim.

Saygılarımla
 
Üst